Files
personal_site/frontend/node_modules/@aws-cdk/toolkit-lib/lib/util/version-range.js
T

58 lines
7.5 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.rangeFromSemver = rangeFromSemver;
exports.stripCaret = stripCaret;
const semver = require("semver");
const toolkit_error_1 = require("../toolkit/toolkit-error");
function rangeFromSemver(ver, targetType) {
const re = ver.match(/^([^\d]*)([\d.]*)[^\s]*$/);
if (!re || !semver.valid(re[2])) {
throw new toolkit_error_1.ToolkitError('not a semver or unsupported range syntax');
}
const prefixPart = re[1];
const verPart = re[2];
switch (targetType) {
// NuGet normally installs the lowest version in the range
// That's okay for aws-cdk-lib where we always specify the lowest version
// For constructs, we rather want people to use the highest version
// The only way to do this is to specify this as <MAJOR>.*
// see https://learn.microsoft.com/en-us/nuget/concepts/package-versioning
case 'major.*':
switch (prefixPart) {
case '':
// if there's no prefix and the remaining is a valid semver, there's no range specified
return ver;
case '^':
return `${semver.major(verPart)}.*`;
default:
throw new toolkit_error_1.ToolkitError(`unsupported range syntax - ${prefixPart}`);
}
case 'bracket':
switch (prefixPart) {
case '':
// if there's no prefix and the remaining is a valid semver, there's no range specified
return ver;
case '^':
return `[${verPart},${semver.major(verPart) + 1}.0.0)`;
default:
throw new toolkit_error_1.ToolkitError(`unsupported range syntax - ${prefixPart}`);
}
case 'pep':
switch (prefixPart) {
case '':
// if there's no prefix and the remaining is a valid semver, there's no range specified
return `==${ver}`;
case '^':
return `>=${verPart},<${semver.major(verPart) + 1}.0.0`;
default:
throw new toolkit_error_1.ToolkitError(`unsupported range syntax - ${prefixPart}`);
}
}
}
/**
* Strips a leading caret ^, if present
*/
function stripCaret(ver) {
return ver.startsWith('^') ? ver.slice(1) : ver;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi1yYW5nZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInZlcnNpb24tcmFuZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFPQSwwQ0E2Q0M7QUFLRCxnQ0FFQztBQTNERCxpQ0FBaUM7QUFDakMsNERBQXdEO0FBTXhELFNBQWdCLGVBQWUsQ0FBQyxHQUFXLEVBQUUsVUFBcUI7SUFDaEUsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQ2pELElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDaEMsTUFBTSxJQUFJLDRCQUFZLENBQUMsMENBQTBDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBQ0QsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pCLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV0QixRQUFRLFVBQVUsRUFBRSxDQUFDO1FBQ25CLDBEQUEwRDtRQUMxRCx5RUFBeUU7UUFDekUsbUVBQW1FO1FBQ25FLDBEQUEwRDtRQUMxRCwwRUFBMEU7UUFDMUUsS0FBSyxTQUFTO1lBQ1osUUFBUSxVQUFVLEVBQUUsQ0FBQztnQkFDbkIsS0FBSyxFQUFFO29CQUNMLHVGQUF1RjtvQkFDdkYsT0FBTyxHQUFHLENBQUM7Z0JBQ2IsS0FBSyxHQUFHO29CQUNOLE9BQU8sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ3RDO29CQUNFLE1BQU0sSUFBSSw0QkFBWSxDQUFDLDhCQUE4QixVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZFLENBQUM7UUFDSCxLQUFLLFNBQVM7WUFDWixRQUFRLFVBQVUsRUFBRSxDQUFDO2dCQUNuQixLQUFLLEVBQUU7b0JBQ0wsdUZBQXVGO29CQUN2RixPQUFPLEdBQUcsQ0FBQztnQkFDYixLQUFLLEdBQUc7b0JBQ04sT0FBTyxJQUFJLE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFDLENBQUMsT0FBTyxDQUFDO2dCQUN2RDtvQkFDRSxNQUFNLElBQUksNEJBQVksQ0FBQyw4QkFBOEIsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUN2RSxDQUFDO1FBQ0gsS0FBSyxLQUFLO1lBQ1IsUUFBUSxVQUFVLEVBQUUsQ0FBQztnQkFDbkIsS0FBSyxFQUFFO29CQUNMLHVGQUF1RjtvQkFDdkYsT0FBTyxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUNwQixLQUFLLEdBQUc7b0JBQ04sT0FBTyxLQUFLLE9BQU8sS0FBSyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFDLENBQUMsTUFBTSxDQUFDO2dCQUN4RDtvQkFDRSxNQUFNLElBQUksNEJBQVksQ0FBQyw4QkFBOEIsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUN2RSxDQUFDO0lBQ0wsQ0FBQztBQUNILENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLFVBQVUsQ0FBQyxHQUFXO0lBQ3BDLE9BQU8sR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0FBQ2xELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBzZW12ZXIgZnJvbSAnc2VtdmVyJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5cbi8vIGJyYWNrZXQgLSBodHRwczovL2RvY3Mub3JhY2xlLmNvbS9taWRkbGV3YXJlLzEyMTIvY29yZS9NQVZFTi9tYXZlbl92ZXJzaW9uLmh0bSNNQVZFTjQwMVxuLy8gcGVwIC0gaHR0cHM6Ly93d3cucHl0aG9uLm9yZy9kZXYvcGVwcy9wZXAtMDQ0MC8jdmVyc2lvbi1zcGVjaWZpZXJzXG5leHBvcnQgdHlwZSBSYW5nZVR5cGUgPSAnYnJhY2tldCcgfCAnbWFqb3IuKicgfCAncGVwJyA7XG5cbmV4cG9ydCBmdW5jdGlvbiByYW5nZUZyb21TZW12ZXIodmVyOiBzdHJpbmcsIHRhcmdldFR5cGU6IFJhbmdlVHlwZSkge1xuICBjb25zdCByZSA9IHZlci5tYXRjaCgvXihbXlxcZF0qKShbXFxkLl0qKVteXFxzXSokLyk7XG4gIGlmICghcmUgfHwgIXNlbXZlci52YWxpZChyZVsyXSkpIHtcbiAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdub3QgYSBzZW12ZXIgb3IgdW5zdXBwb3J0ZWQgcmFuZ2Ugc3ludGF4Jyk7XG4gIH1cbiAgY29uc3QgcHJlZml4UGFydCA9IHJlWzFdO1xuICBjb25zdCB2ZXJQYXJ0ID0gcmVbMl07XG5cbiAgc3dpdGNoICh0YXJnZXRUeXBlKSB7XG4gICAgLy8gTnVHZXQgbm9ybWFsbHkgaW5zdGFsbHMgdGhlIGxvd2VzdCB2ZXJzaW9uIGluIHRoZSByYW5nZVxuICAgIC8vIFRoYXQncyBva2F5IGZvciBhd3MtY2RrLWxpYiB3aGVyZSB3ZSBhbHdheXMgc3BlY2lmeSB0aGUgbG93ZXN0IHZlcnNpb25cbiAgICAvLyBGb3IgY29uc3RydWN0cywgd2UgcmF0aGVyIHdhbnQgcGVvcGxlIHRvIHVzZSB0aGUgaGlnaGVzdCB2ZXJzaW9uXG4gICAgLy8gVGhlIG9ubHkgd2F5IHRvIGRvIHRoaXMgaXMgdG8gc3BlY2lmeSB0aGlzIGFzIDxNQUpPUj4uKlxuICAgIC8vIHNlZSBodHRwczovL2xlYXJuLm1pY3Jvc29mdC5jb20vZW4tdXMvbnVnZXQvY29uY2VwdHMvcGFja2FnZS12ZXJzaW9uaW5nXG4gICAgY2FzZSAnbWFqb3IuKic6XG4gICAgICBzd2l0Y2ggKHByZWZpeFBhcnQpIHtcbiAgICAgICAgY2FzZSAnJzpcbiAgICAgICAgICAvLyBpZiB0aGVyZSdzIG5vIHByZWZpeCBhbmQgdGhlIHJlbWFpbmluZyBpcyBhIHZhbGlkIHNlbXZlciwgdGhlcmUncyBubyByYW5nZSBzcGVjaWZpZWRcbiAgICAgICAgICByZXR1cm4gdmVyO1xuICAgICAgICBjYXNlICdeJzpcbiAgICAgICAgICByZXR1cm4gYCR7c2VtdmVyLm1ham9yKHZlclBhcnQpfS4qYDtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKGB1bnN1cHBvcnRlZCByYW5nZSBzeW50YXggLSAke3ByZWZpeFBhcnR9YCk7XG4gICAgICB9XG4gICAgY2FzZSAnYnJhY2tldCc6XG4gICAgICBzd2l0Y2ggKHByZWZpeFBhcnQpIHtcbiAgICAgICAgY2FzZSAnJzpcbiAgICAgICAgICAvLyBpZiB0aGVyZSdzIG5vIHByZWZpeCBhbmQgdGhlIHJlbWFpbmluZyBpcyBhIHZhbGlkIHNlbXZlciwgdGhlcmUncyBubyByYW5nZSBzcGVjaWZpZWRcbiAgICAgICAgICByZXR1cm4gdmVyO1xuICAgICAgICBjYXNlICdeJzpcbiAgICAgICAgICByZXR1cm4gYFske3ZlclBhcnR9LCR7c2VtdmVyLm1ham9yKHZlclBhcnQpKzF9LjAuMClgO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoYHVuc3VwcG9ydGVkIHJhbmdlIHN5bnRheCAtICR7cHJlZml4UGFydH1gKTtcbiAgICAgIH1cbiAgICBjYXNlICdwZXAnOlxuICAgICAgc3dpdGNoIChwcmVmaXhQYXJ0KSB7XG4gICAgICAgIGNhc2UgJyc6XG4gICAgICAgICAgLy8gaWYgdGhlcmUncyBubyBwcmVmaXggYW5kIHRoZSByZW1haW5pbmcgaXMgYSB2YWxpZCBzZW12ZXIsIHRoZXJlJ3Mgbm8gcmFuZ2Ugc3BlY2lmaWVkXG4gICAgICAgICAgcmV0dXJuIGA9PSR7dmVyfWA7XG4gICAgICAgIGNhc2UgJ14nOlxuICAgICAgICAgIHJldHVybiBgPj0ke3ZlclBhcnR9LDwke3NlbXZlci5tYWpvcih2ZXJQYXJ0KSsxfS4wLjBgO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoYHVuc3VwcG9ydGVkIHJhbmdlIHN5bnRheCAtICR7cHJlZml4UGFydH1gKTtcbiAgICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFN0cmlwcyBhIGxlYWRpbmcgY2FyZXQgXiwgaWYgcHJlc2VudFxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaXBDYXJldCh2ZXI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiB2ZXIuc3RhcnRzV2l0aCgnXicpID8gdmVyLnNsaWNlKDEpIDogdmVyO1xufVxuIl19