renovate
Version:
Automated dependency updates. Flexible so you don't need to be.
171 lines • 7.05 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.api = exports.supportedRangeStrategies = exports.supportsRanges = exports.urls = exports.displayName = exports.id = void 0;
exports.isValid = isValid;
const regex_1 = require("../../../util/regex");
const string_1 = require("../../../util/string");
const npm_1 = require("../npm");
const pep440_1 = require("../pep440");
const pattern_1 = require("./pattern");
const transform_1 = require("./transform");
exports.id = 'rez';
exports.displayName = 'rez';
exports.urls = ['https://github.com/nerdvegas/rez'];
exports.supportsRanges = true;
exports.supportedRangeStrategies = [
'bump',
'widen',
'pin',
'replace',
];
function equals(a, b) {
try {
return npm_1.api.equals((0, transform_1.padZeroes)(a), (0, transform_1.padZeroes)(b));
}
catch /* istanbul ignore next */ {
return pep440_1.api.equals(a, b);
}
}
function getMajor(version) {
try {
return npm_1.api.getMajor((0, transform_1.padZeroes)(version));
}
catch /* istanbul ignore next */ {
return pep440_1.api.getMajor(version);
}
}
function getMinor(version) {
try {
return npm_1.api.getMinor((0, transform_1.padZeroes)(version));
}
catch /* istanbul ignore next */ {
return pep440_1.api.getMinor(version);
}
}
function getPatch(version) {
try {
return npm_1.api.getPatch((0, transform_1.padZeroes)(version));
}
catch /* istanbul ignore next */ {
return pep440_1.api.getPatch(version);
}
}
function isGreaterThan(a, b) {
try {
return npm_1.api.isGreaterThan((0, transform_1.padZeroes)(a), (0, transform_1.padZeroes)(b));
}
catch /* istanbul ignore next */ {
return pep440_1.api.isGreaterThan(a, b);
}
}
function isLessThanRange(version, range) {
return (npm_1.api.isVersion((0, transform_1.padZeroes)(version)) &&
!!npm_1.api.isLessThanRange?.((0, transform_1.padZeroes)(version), (0, transform_1.rez2npm)(range)));
}
function isValid(input) {
return npm_1.api.isValid((0, transform_1.rez2npm)(input));
}
function isStable(version) {
return npm_1.api.isStable((0, transform_1.padZeroes)(version));
}
function isVersion(input) {
return npm_1.api.isVersion((0, transform_1.padZeroes)((0, transform_1.rez2npm)(input)));
}
function matches(version, range) {
return (npm_1.api.isVersion((0, transform_1.padZeroes)(version)) &&
npm_1.api.matches((0, transform_1.padZeroes)(version), (0, transform_1.rez2npm)(range)));
}
function getSatisfyingVersion(versions, range) {
return npm_1.api.getSatisfyingVersion(versions, (0, transform_1.rez2npm)(range));
}
function minSatisfyingVersion(versions, range) {
return npm_1.api.minSatisfyingVersion(versions, (0, transform_1.rez2npm)(range));
}
function isSingleVersion(constraint) {
return ((constraint.trim().startsWith('==') &&
isVersion(constraint.trim().substring(2).trim())) ||
isVersion(constraint.trim()));
}
function sortVersions(a, b) {
return npm_1.api.sortVersions((0, transform_1.padZeroes)(a), (0, transform_1.padZeroes)(b));
}
function getNewValue({ currentValue, rangeStrategy, currentVersion, newVersion, }) {
const pep440Value = pep440_1.api.getNewValue({
currentValue: (0, transform_1.rez2pep440)(currentValue),
rangeStrategy,
currentVersion,
newVersion,
});
if (pattern_1.exactVersion.test(currentValue)) {
return pep440Value;
}
if (pep440Value && pattern_1.inclusiveBound.test(currentValue)) {
return (0, transform_1.pep4402rezInclusiveBound)(pep440Value);
}
if (pep440Value && pattern_1.lowerBound.test(currentValue)) {
if (currentValue.includes('+')) {
return (0, transform_1.npm2rezplus)(pep440Value);
}
return pep440Value;
}
if (pep440Value && pattern_1.upperBound.test(currentValue)) {
return pep440Value;
}
const matchAscRange = pattern_1.ascendingRange.exec(currentValue);
if (pep440Value && matchAscRange?.groups) {
// Replace version numbers but keep rez format, otherwise we just end up trying
// to convert every single case separately.
const lowerBoundAscCurrent = matchAscRange.groups.range_lower_asc;
const upperBoundAscCurrent = matchAscRange.groups.range_upper_asc;
const lowerAscVersionCurrent = matchAscRange.groups.range_lower_asc_version;
const upperAscVersionCurrent = matchAscRange.groups.range_upper_asc_version;
const [lowerBoundAscPep440, upperBoundAscPep440] = pep440Value.split(', ');
const lowerAscVersionNew = (0, string_1.coerceString)((0, regex_1.regEx)(pattern_1.versionGroup).exec(lowerBoundAscPep440)?.[0]);
const upperAscVersionNew = (0, string_1.coerceString)((0, regex_1.regEx)(pattern_1.versionGroup).exec(upperBoundAscPep440)?.[0]);
const lowerBoundAscNew = lowerBoundAscCurrent.replace(lowerAscVersionCurrent, lowerAscVersionNew);
const upperBoundAscNew = upperBoundAscCurrent.replace(upperAscVersionCurrent, upperAscVersionNew);
const separator = currentValue.includes(',') ? ',' : '';
return lowerBoundAscNew + separator + upperBoundAscNew;
}
const matchDscRange = pattern_1.descendingRange.exec(currentValue);
if (pep440Value && matchDscRange?.groups) {
// Replace version numbers but keep rez format, otherwise we just end up trying
// to convert every single case separately.
const upperBoundDescCurrent = matchDscRange.groups.range_upper_desc;
const lowerBoundDescCurrent = matchDscRange.groups.range_lower_desc;
const upperDescVersionCurrent = matchDscRange.groups.range_upper_desc_version;
const lowerDescVersionCurrent = matchDscRange.groups.range_lower_desc_version;
const [lowerBoundDescPep440, upperBoundDescPep440] = pep440Value.split(', ');
const upperDescVersionNew = (0, string_1.coerceString)((0, regex_1.regEx)(pattern_1.versionGroup).exec(upperBoundDescPep440)?.[0]);
const lowerDescVersionNew = (0, string_1.coerceString)((0, regex_1.regEx)(pattern_1.versionGroup).exec(lowerBoundDescPep440)?.[0]);
const upperBoundDescNew = upperBoundDescCurrent.replace(upperDescVersionCurrent, upperDescVersionNew);
const lowerBoundDescNew = lowerBoundDescCurrent.replace(lowerDescVersionCurrent, lowerDescVersionNew);
// Descending ranges are only supported with a comma.
const separator = ',';
return upperBoundDescNew + separator + lowerBoundDescNew;
}
return null;
}
function isCompatible(version) {
return isVersion(version);
}
exports.api = {
equals,
getMajor,
getMinor,
getPatch,
getNewValue,
getSatisfyingVersion,
isCompatible,
isGreaterThan,
isLessThanRange,
isSingleVersion,
isStable,
isValid,
isVersion,
matches,
minSatisfyingVersion,
sortVersions,
};
exports.default = exports.api;
//# sourceMappingURL=index.js.map