UNPKG

renovate

Version:

Automated dependency updates. Flexible so you don't need to be.

65 lines 2.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.api = exports.supportsRanges = exports.urls = exports.displayName = exports.id = void 0; const regex_1 = require("../../../util/regex"); const generic_1 = require("../generic"); exports.id = 'devbox'; exports.displayName = 'devbox'; exports.urls = []; exports.supportsRanges = false; const validPattern = (0, regex_1.regEx)(/^((\d|[1-9]\d*)(\.(\d|[1-9]\d*)){0,2})$/); const versionPattern = (0, regex_1.regEx)(/^((\d|[1-9]\d*)(\.(\d|[1-9]\d*)){2})$/); class DevboxVersioningApi extends generic_1.GenericVersioningApi { _parse(version) { const matches = validPattern.exec(version); if (!matches) { return null; } const release = matches[0].split('.').map(Number); return { release }; } isValid(version) { if (version === 'latest') { return true; } return this._parse(version) !== null; } isVersion(version) { if (version === 'latest') { return false; } const matches = versionPattern.exec(version); return !!matches; } matches(version, range) { return this.isVersion(version) && this.equals(version, range); } _compare(version, other) { const parsed1 = this._parse(version); const parsed2 = this._parse(other); // Treat "latest" as * and always return equal if (other === 'latest' && parsed1) { return 0; } // If either version is invalid, return unequal if (!(parsed1 && parsed2)) { return 1; } // support variable length compare const length = Math.max(parsed1.release.length, parsed2.release.length); for (let i = 0; i < length; i += 1) { // 2.1 and 2.1.0 are equivalent const part1 = parsed1.release[i]; const part2 = parsed2.release[i]; // if part1 or part2 is undefined, we should treat them as equal // e.g. 1.0.0 === 1.0 if (part1 !== undefined && part2 !== undefined && part1 !== part2) { return part1 - part2; } } return 0; } } exports.api = new DevboxVersioningApi(); exports.default = exports.api; //# sourceMappingURL=index.js.map