UNPKG

@sizium/api

Version:

REST API for Sizium. Get the actual size of any local or remote package

1,595 lines (1,594 loc) 81.2 kB
import { App } from "backan"; const name = "@sizium/api"; const version = "2.0.4"; const description = "REST API for Sizium. Get the actual size of any local or remote package"; const homepage = "https://docs.sizium.pigeonposse.com/guide/api"; var re = { exports: {} }; var constants; var hasRequiredConstants; function requireConstants() { if (hasRequiredConstants) return constants; hasRequiredConstants = 1; const SEMVER_SPEC_VERSION = "2.0.0"; const MAX_LENGTH = 256; const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */ 9007199254740991; const MAX_SAFE_COMPONENT_LENGTH = 16; const MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6; const RELEASE_TYPES = [ "major", "premajor", "minor", "preminor", "patch", "prepatch", "prerelease" ]; constants = { MAX_LENGTH, MAX_SAFE_COMPONENT_LENGTH, MAX_SAFE_BUILD_LENGTH, MAX_SAFE_INTEGER, RELEASE_TYPES, SEMVER_SPEC_VERSION, FLAG_INCLUDE_PRERELEASE: 1, FLAG_LOOSE: 2 }; return constants; } var debug_1; var hasRequiredDebug; function requireDebug() { if (hasRequiredDebug) return debug_1; hasRequiredDebug = 1; const debug = typeof process === "object" && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error("SEMVER", ...args) : () => { }; debug_1 = debug; return debug_1; } var hasRequiredRe; function requireRe() { if (hasRequiredRe) return re.exports; hasRequiredRe = 1; (function(module, exports) { const { MAX_SAFE_COMPONENT_LENGTH, MAX_SAFE_BUILD_LENGTH, MAX_LENGTH } = requireConstants(); const debug = requireDebug(); exports = module.exports = {}; const re2 = exports.re = []; const safeRe = exports.safeRe = []; const src = exports.src = []; const safeSrc = exports.safeSrc = []; const t = exports.t = {}; let R = 0; const LETTERDASHNUMBER = "[a-zA-Z0-9-]"; const safeRegexReplacements = [ ["\\s", 1], ["\\d", MAX_LENGTH], [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH] ]; const makeSafeRegex = (value) => { for (const [token, max] of safeRegexReplacements) { value = value.split(`${token}*`).join(`${token}{0,${max}}`).split(`${token}+`).join(`${token}{1,${max}}`); } return value; }; const createToken = (name2, value, isGlobal) => { const safe = makeSafeRegex(value); const index = R++; debug(name2, index, value); t[name2] = index; src[index] = value; safeSrc[index] = safe; re2[index] = new RegExp(value, isGlobal ? "g" : void 0); safeRe[index] = new RegExp(safe, isGlobal ? "g" : void 0); }; createToken("NUMERICIDENTIFIER", "0|[1-9]\\d*"); createToken("NUMERICIDENTIFIERLOOSE", "\\d+"); createToken("NONNUMERICIDENTIFIER", `\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`); createToken("MAINVERSION", `(${src[t.NUMERICIDENTIFIER]})\\.(${src[t.NUMERICIDENTIFIER]})\\.(${src[t.NUMERICIDENTIFIER]})`); createToken("MAINVERSIONLOOSE", `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.(${src[t.NUMERICIDENTIFIERLOOSE]})\\.(${src[t.NUMERICIDENTIFIERLOOSE]})`); createToken("PRERELEASEIDENTIFIER", `(?:${src[t.NONNUMERICIDENTIFIER]}|${src[t.NUMERICIDENTIFIER]})`); createToken("PRERELEASEIDENTIFIERLOOSE", `(?:${src[t.NONNUMERICIDENTIFIER]}|${src[t.NUMERICIDENTIFIERLOOSE]})`); createToken("PRERELEASE", `(?:-(${src[t.PRERELEASEIDENTIFIER]}(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`); createToken("PRERELEASELOOSE", `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`); createToken("BUILDIDENTIFIER", `${LETTERDASHNUMBER}+`); createToken("BUILD", `(?:\\+(${src[t.BUILDIDENTIFIER]}(?:\\.${src[t.BUILDIDENTIFIER]})*))`); createToken("FULLPLAIN", `v?${src[t.MAINVERSION]}${src[t.PRERELEASE]}?${src[t.BUILD]}?`); createToken("FULL", `^${src[t.FULLPLAIN]}$`); createToken("LOOSEPLAIN", `[v=\\s]*${src[t.MAINVERSIONLOOSE]}${src[t.PRERELEASELOOSE]}?${src[t.BUILD]}?`); createToken("LOOSE", `^${src[t.LOOSEPLAIN]}$`); createToken("GTLT", "((?:<|>)?=?)"); createToken("XRANGEIDENTIFIERLOOSE", `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`); createToken("XRANGEIDENTIFIER", `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`); createToken("XRANGEPLAIN", `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})(?:\\.(${src[t.XRANGEIDENTIFIER]})(?:\\.(${src[t.XRANGEIDENTIFIER]})(?:${src[t.PRERELEASE]})?${src[t.BUILD]}?)?)?`); createToken("XRANGEPLAINLOOSE", `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})(?:${src[t.PRERELEASELOOSE]})?${src[t.BUILD]}?)?)?`); createToken("XRANGE", `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`); createToken("XRANGELOOSE", `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`); createToken("COERCEPLAIN", `${"(^|[^\\d])(\\d{1,"}${MAX_SAFE_COMPONENT_LENGTH}})(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`); createToken("COERCE", `${src[t.COERCEPLAIN]}(?:$|[^\\d])`); createToken("COERCEFULL", src[t.COERCEPLAIN] + `(?:${src[t.PRERELEASE]})?(?:${src[t.BUILD]})?(?:$|[^\\d])`); createToken("COERCERTL", src[t.COERCE], true); createToken("COERCERTLFULL", src[t.COERCEFULL], true); createToken("LONETILDE", "(?:~>?)"); createToken("TILDETRIM", `(\\s*)${src[t.LONETILDE]}\\s+`, true); exports.tildeTrimReplace = "$1~"; createToken("TILDE", `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`); createToken("TILDELOOSE", `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`); createToken("LONECARET", "(?:\\^)"); createToken("CARETTRIM", `(\\s*)${src[t.LONECARET]}\\s+`, true); exports.caretTrimReplace = "$1^"; createToken("CARET", `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`); createToken("CARETLOOSE", `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`); createToken("COMPARATORLOOSE", `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`); createToken("COMPARATOR", `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`); createToken("COMPARATORTRIM", `(\\s*)${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true); exports.comparatorTrimReplace = "$1$2$3"; createToken("HYPHENRANGE", `^\\s*(${src[t.XRANGEPLAIN]})\\s+-\\s+(${src[t.XRANGEPLAIN]})\\s*$`); createToken("HYPHENRANGELOOSE", `^\\s*(${src[t.XRANGEPLAINLOOSE]})\\s+-\\s+(${src[t.XRANGEPLAINLOOSE]})\\s*$`); createToken("STAR", "(<|>)?=?\\s*\\*"); createToken("GTE0", "^\\s*>=\\s*0\\.0\\.0\\s*$"); createToken("GTE0PRE", "^\\s*>=\\s*0\\.0\\.0-0\\s*$"); })(re, re.exports); return re.exports; } var parseOptions_1; var hasRequiredParseOptions; function requireParseOptions() { if (hasRequiredParseOptions) return parseOptions_1; hasRequiredParseOptions = 1; const looseOption = Object.freeze({ loose: true }); const emptyOpts = Object.freeze({}); const parseOptions = (options) => { if (!options) { return emptyOpts; } if (typeof options !== "object") { return looseOption; } return options; }; parseOptions_1 = parseOptions; return parseOptions_1; } var identifiers; var hasRequiredIdentifiers; function requireIdentifiers() { if (hasRequiredIdentifiers) return identifiers; hasRequiredIdentifiers = 1; const numeric = /^[0-9]+$/; const compareIdentifiers = (a, b) => { const anum = numeric.test(a); const bnum = numeric.test(b); if (anum && bnum) { a = +a; b = +b; } return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1; }; const rcompareIdentifiers = (a, b) => compareIdentifiers(b, a); identifiers = { compareIdentifiers, rcompareIdentifiers }; return identifiers; } var semver$1; var hasRequiredSemver$1; function requireSemver$1() { if (hasRequiredSemver$1) return semver$1; hasRequiredSemver$1 = 1; const debug = requireDebug(); const { MAX_LENGTH, MAX_SAFE_INTEGER } = requireConstants(); const { safeRe: re2, t } = requireRe(); const parseOptions = requireParseOptions(); const { compareIdentifiers } = requireIdentifiers(); class SemVer { constructor(version2, options) { options = parseOptions(options); if (version2 instanceof SemVer) { if (version2.loose === !!options.loose && version2.includePrerelease === !!options.includePrerelease) { return version2; } else { version2 = version2.version; } } else if (typeof version2 !== "string") { throw new TypeError(`Invalid version. Must be a string. Got type "${typeof version2}".`); } if (version2.length > MAX_LENGTH) { throw new TypeError( `version is longer than ${MAX_LENGTH} characters` ); } debug("SemVer", version2, options); this.options = options; this.loose = !!options.loose; this.includePrerelease = !!options.includePrerelease; const m = version2.trim().match(options.loose ? re2[t.LOOSE] : re2[t.FULL]); if (!m) { throw new TypeError(`Invalid Version: ${version2}`); } this.raw = version2; this.major = +m[1]; this.minor = +m[2]; this.patch = +m[3]; if (this.major > MAX_SAFE_INTEGER || this.major < 0) { throw new TypeError("Invalid major version"); } if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { throw new TypeError("Invalid minor version"); } if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { throw new TypeError("Invalid patch version"); } if (!m[4]) { this.prerelease = []; } else { this.prerelease = m[4].split(".").map((id2) => { if (/^[0-9]+$/.test(id2)) { const num = +id2; if (num >= 0 && num < MAX_SAFE_INTEGER) { return num; } } return id2; }); } this.build = m[5] ? m[5].split(".") : []; this.format(); } format() { this.version = `${this.major}.${this.minor}.${this.patch}`; if (this.prerelease.length) { this.version += `-${this.prerelease.join(".")}`; } return this.version; } toString() { return this.version; } compare(other) { debug("SemVer.compare", this.version, this.options, other); if (!(other instanceof SemVer)) { if (typeof other === "string" && other === this.version) { return 0; } other = new SemVer(other, this.options); } if (other.version === this.version) { return 0; } return this.compareMain(other) || this.comparePre(other); } compareMain(other) { if (!(other instanceof SemVer)) { other = new SemVer(other, this.options); } return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch); } comparePre(other) { if (!(other instanceof SemVer)) { other = new SemVer(other, this.options); } if (this.prerelease.length && !other.prerelease.length) { return -1; } else if (!this.prerelease.length && other.prerelease.length) { return 1; } else if (!this.prerelease.length && !other.prerelease.length) { return 0; } let i = 0; do { const a = this.prerelease[i]; const b = other.prerelease[i]; debug("prerelease compare", i, a, b); if (a === void 0 && b === void 0) { return 0; } else if (b === void 0) { return 1; } else if (a === void 0) { return -1; } else if (a === b) { continue; } else { return compareIdentifiers(a, b); } } while (++i); } compareBuild(other) { if (!(other instanceof SemVer)) { other = new SemVer(other, this.options); } let i = 0; do { const a = this.build[i]; const b = other.build[i]; debug("build compare", i, a, b); if (a === void 0 && b === void 0) { return 0; } else if (b === void 0) { return 1; } else if (a === void 0) { return -1; } else if (a === b) { continue; } else { return compareIdentifiers(a, b); } } while (++i); } // preminor will bump the version up to the next minor release, and immediately // down to pre-release. premajor and prepatch work the same way. inc(release, identifier, identifierBase) { if (release.startsWith("pre")) { if (!identifier && identifierBase === false) { throw new Error("invalid increment argument: identifier is empty"); } if (identifier) { const match = `-${identifier}`.match(this.options.loose ? re2[t.PRERELEASELOOSE] : re2[t.PRERELEASE]); if (!match || match[1] !== identifier) { throw new Error(`invalid identifier: ${identifier}`); } } } switch (release) { case "premajor": this.prerelease.length = 0; this.patch = 0; this.minor = 0; this.major++; this.inc("pre", identifier, identifierBase); break; case "preminor": this.prerelease.length = 0; this.patch = 0; this.minor++; this.inc("pre", identifier, identifierBase); break; case "prepatch": this.prerelease.length = 0; this.inc("patch", identifier, identifierBase); this.inc("pre", identifier, identifierBase); break; // If the input is a non-prerelease version, this acts the same as // prepatch. case "prerelease": if (this.prerelease.length === 0) { this.inc("patch", identifier, identifierBase); } this.inc("pre", identifier, identifierBase); break; case "release": if (this.prerelease.length === 0) { throw new Error(`version ${this.raw} is not a prerelease`); } this.prerelease.length = 0; break; case "major": if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) { this.major++; } this.minor = 0; this.patch = 0; this.prerelease = []; break; case "minor": if (this.patch !== 0 || this.prerelease.length === 0) { this.minor++; } this.patch = 0; this.prerelease = []; break; case "patch": if (this.prerelease.length === 0) { this.patch++; } this.prerelease = []; break; // This probably shouldn't be used publicly. // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction. case "pre": { const base = Number(identifierBase) ? 1 : 0; if (this.prerelease.length === 0) { this.prerelease = [base]; } else { let i = this.prerelease.length; while (--i >= 0) { if (typeof this.prerelease[i] === "number") { this.prerelease[i]++; i = -2; } } if (i === -1) { if (identifier === this.prerelease.join(".") && identifierBase === false) { throw new Error("invalid increment argument: identifier already exists"); } this.prerelease.push(base); } } if (identifier) { let prerelease = [identifier, base]; if (identifierBase === false) { prerelease = [identifier]; } if (compareIdentifiers(this.prerelease[0], identifier) === 0) { if (isNaN(this.prerelease[1])) { this.prerelease = prerelease; } } else { this.prerelease = prerelease; } } break; } default: throw new Error(`invalid increment argument: ${release}`); } this.raw = this.format(); if (this.build.length) { this.raw += `+${this.build.join(".")}`; } return this; } } semver$1 = SemVer; return semver$1; } var parse_1; var hasRequiredParse; function requireParse() { if (hasRequiredParse) return parse_1; hasRequiredParse = 1; const SemVer = requireSemver$1(); const parse = (version2, options, throwErrors = false) => { if (version2 instanceof SemVer) { return version2; } try { return new SemVer(version2, options); } catch (er) { if (!throwErrors) { return null; } throw er; } }; parse_1 = parse; return parse_1; } var valid_1; var hasRequiredValid$1; function requireValid$1() { if (hasRequiredValid$1) return valid_1; hasRequiredValid$1 = 1; const parse = requireParse(); const valid2 = (version2, options) => { const v = parse(version2, options); return v ? v.version : null; }; valid_1 = valid2; return valid_1; } var clean_1; var hasRequiredClean; function requireClean() { if (hasRequiredClean) return clean_1; hasRequiredClean = 1; const parse = requireParse(); const clean = (version2, options) => { const s = parse(version2.trim().replace(/^[=v]+/, ""), options); return s ? s.version : null; }; clean_1 = clean; return clean_1; } var inc_1; var hasRequiredInc; function requireInc() { if (hasRequiredInc) return inc_1; hasRequiredInc = 1; const SemVer = requireSemver$1(); const inc = (version2, release, options, identifier, identifierBase) => { if (typeof options === "string") { identifierBase = identifier; identifier = options; options = void 0; } try { return new SemVer( version2 instanceof SemVer ? version2.version : version2, options ).inc(release, identifier, identifierBase).version; } catch (er) { return null; } }; inc_1 = inc; return inc_1; } var diff_1; var hasRequiredDiff; function requireDiff() { if (hasRequiredDiff) return diff_1; hasRequiredDiff = 1; const parse = requireParse(); const diff = (version1, version2) => { const v1 = parse(version1, null, true); const v2 = parse(version2, null, true); const comparison = v1.compare(v2); if (comparison === 0) { return null; } const v1Higher = comparison > 0; const highVersion = v1Higher ? v1 : v2; const lowVersion = v1Higher ? v2 : v1; const highHasPre = !!highVersion.prerelease.length; const lowHasPre = !!lowVersion.prerelease.length; if (lowHasPre && !highHasPre) { if (!lowVersion.patch && !lowVersion.minor) { return "major"; } if (lowVersion.compareMain(highVersion) === 0) { if (lowVersion.minor && !lowVersion.patch) { return "minor"; } return "patch"; } } const prefix = highHasPre ? "pre" : ""; if (v1.major !== v2.major) { return prefix + "major"; } if (v1.minor !== v2.minor) { return prefix + "minor"; } if (v1.patch !== v2.patch) { return prefix + "patch"; } return "prerelease"; }; diff_1 = diff; return diff_1; } var major_1; var hasRequiredMajor; function requireMajor() { if (hasRequiredMajor) return major_1; hasRequiredMajor = 1; const SemVer = requireSemver$1(); const major = (a, loose) => new SemVer(a, loose).major; major_1 = major; return major_1; } var minor_1; var hasRequiredMinor; function requireMinor() { if (hasRequiredMinor) return minor_1; hasRequiredMinor = 1; const SemVer = requireSemver$1(); const minor = (a, loose) => new SemVer(a, loose).minor; minor_1 = minor; return minor_1; } var patch_1; var hasRequiredPatch; function requirePatch() { if (hasRequiredPatch) return patch_1; hasRequiredPatch = 1; const SemVer = requireSemver$1(); const patch = (a, loose) => new SemVer(a, loose).patch; patch_1 = patch; return patch_1; } var prerelease_1; var hasRequiredPrerelease; function requirePrerelease() { if (hasRequiredPrerelease) return prerelease_1; hasRequiredPrerelease = 1; const parse = requireParse(); const prerelease = (version2, options) => { const parsed = parse(version2, options); return parsed && parsed.prerelease.length ? parsed.prerelease : null; }; prerelease_1 = prerelease; return prerelease_1; } var compare_1; var hasRequiredCompare; function requireCompare() { if (hasRequiredCompare) return compare_1; hasRequiredCompare = 1; const SemVer = requireSemver$1(); const compare = (a, b, loose) => new SemVer(a, loose).compare(new SemVer(b, loose)); compare_1 = compare; return compare_1; } var rcompare_1; var hasRequiredRcompare; function requireRcompare() { if (hasRequiredRcompare) return rcompare_1; hasRequiredRcompare = 1; const compare = requireCompare(); const rcompare = (a, b, loose) => compare(b, a, loose); rcompare_1 = rcompare; return rcompare_1; } var compareLoose_1; var hasRequiredCompareLoose; function requireCompareLoose() { if (hasRequiredCompareLoose) return compareLoose_1; hasRequiredCompareLoose = 1; const compare = requireCompare(); const compareLoose = (a, b) => compare(a, b, true); compareLoose_1 = compareLoose; return compareLoose_1; } var compareBuild_1; var hasRequiredCompareBuild; function requireCompareBuild() { if (hasRequiredCompareBuild) return compareBuild_1; hasRequiredCompareBuild = 1; const SemVer = requireSemver$1(); const compareBuild = (a, b, loose) => { const versionA = new SemVer(a, loose); const versionB = new SemVer(b, loose); return versionA.compare(versionB) || versionA.compareBuild(versionB); }; compareBuild_1 = compareBuild; return compareBuild_1; } var sort_1; var hasRequiredSort; function requireSort() { if (hasRequiredSort) return sort_1; hasRequiredSort = 1; const compareBuild = requireCompareBuild(); const sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose)); sort_1 = sort; return sort_1; } var rsort_1; var hasRequiredRsort; function requireRsort() { if (hasRequiredRsort) return rsort_1; hasRequiredRsort = 1; const compareBuild = requireCompareBuild(); const rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose)); rsort_1 = rsort; return rsort_1; } var gt_1; var hasRequiredGt; function requireGt() { if (hasRequiredGt) return gt_1; hasRequiredGt = 1; const compare = requireCompare(); const gt = (a, b, loose) => compare(a, b, loose) > 0; gt_1 = gt; return gt_1; } var lt_1; var hasRequiredLt; function requireLt() { if (hasRequiredLt) return lt_1; hasRequiredLt = 1; const compare = requireCompare(); const lt = (a, b, loose) => compare(a, b, loose) < 0; lt_1 = lt; return lt_1; } var eq_1; var hasRequiredEq; function requireEq() { if (hasRequiredEq) return eq_1; hasRequiredEq = 1; const compare = requireCompare(); const eq = (a, b, loose) => compare(a, b, loose) === 0; eq_1 = eq; return eq_1; } var neq_1; var hasRequiredNeq; function requireNeq() { if (hasRequiredNeq) return neq_1; hasRequiredNeq = 1; const compare = requireCompare(); const neq = (a, b, loose) => compare(a, b, loose) !== 0; neq_1 = neq; return neq_1; } var gte_1; var hasRequiredGte; function requireGte() { if (hasRequiredGte) return gte_1; hasRequiredGte = 1; const compare = requireCompare(); const gte = (a, b, loose) => compare(a, b, loose) >= 0; gte_1 = gte; return gte_1; } var lte_1; var hasRequiredLte; function requireLte() { if (hasRequiredLte) return lte_1; hasRequiredLte = 1; const compare = requireCompare(); const lte = (a, b, loose) => compare(a, b, loose) <= 0; lte_1 = lte; return lte_1; } var cmp_1; var hasRequiredCmp; function requireCmp() { if (hasRequiredCmp) return cmp_1; hasRequiredCmp = 1; const eq = requireEq(); const neq = requireNeq(); const gt = requireGt(); const gte = requireGte(); const lt = requireLt(); const lte = requireLte(); const cmp = (a, op, b, loose) => { switch (op) { case "===": if (typeof a === "object") { a = a.version; } if (typeof b === "object") { b = b.version; } return a === b; case "!==": if (typeof a === "object") { a = a.version; } if (typeof b === "object") { b = b.version; } return a !== b; case "": case "=": case "==": return eq(a, b, loose); case "!=": return neq(a, b, loose); case ">": return gt(a, b, loose); case ">=": return gte(a, b, loose); case "<": return lt(a, b, loose); case "<=": return lte(a, b, loose); default: throw new TypeError(`Invalid operator: ${op}`); } }; cmp_1 = cmp; return cmp_1; } var coerce_1; var hasRequiredCoerce; function requireCoerce() { if (hasRequiredCoerce) return coerce_1; hasRequiredCoerce = 1; const SemVer = requireSemver$1(); const parse = requireParse(); const { safeRe: re2, t } = requireRe(); const coerce = (version2, options) => { if (version2 instanceof SemVer) { return version2; } if (typeof version2 === "number") { version2 = String(version2); } if (typeof version2 !== "string") { return null; } options = options || {}; let match = null; if (!options.rtl) { match = version2.match(options.includePrerelease ? re2[t.COERCEFULL] : re2[t.COERCE]); } else { const coerceRtlRegex = options.includePrerelease ? re2[t.COERCERTLFULL] : re2[t.COERCERTL]; let next; while ((next = coerceRtlRegex.exec(version2)) && (!match || match.index + match[0].length !== version2.length)) { if (!match || next.index + next[0].length !== match.index + match[0].length) { match = next; } coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length; } coerceRtlRegex.lastIndex = -1; } if (match === null) { return null; } const major = match[2]; const minor = match[3] || "0"; const patch = match[4] || "0"; const prerelease = options.includePrerelease && match[5] ? `-${match[5]}` : ""; const build = options.includePrerelease && match[6] ? `+${match[6]}` : ""; return parse(`${major}.${minor}.${patch}${prerelease}${build}`, options); }; coerce_1 = coerce; return coerce_1; } var lrucache; var hasRequiredLrucache; function requireLrucache() { if (hasRequiredLrucache) return lrucache; hasRequiredLrucache = 1; class LRUCache { constructor() { this.max = 1e3; this.map = /* @__PURE__ */ new Map(); } get(key) { const value = this.map.get(key); if (value === void 0) { return void 0; } else { this.map.delete(key); this.map.set(key, value); return value; } } delete(key) { return this.map.delete(key); } set(key, value) { const deleted = this.delete(key); if (!deleted && value !== void 0) { if (this.map.size >= this.max) { const firstKey = this.map.keys().next().value; this.delete(firstKey); } this.map.set(key, value); } return this; } } lrucache = LRUCache; return lrucache; } var range; var hasRequiredRange; function requireRange() { if (hasRequiredRange) return range; hasRequiredRange = 1; const SPACE_CHARACTERS = /\s+/g; class Range { constructor(range2, options) { options = parseOptions(options); if (range2 instanceof Range) { if (range2.loose === !!options.loose && range2.includePrerelease === !!options.includePrerelease) { return range2; } else { return new Range(range2.raw, options); } } if (range2 instanceof Comparator) { this.raw = range2.value; this.set = [[range2]]; this.formatted = void 0; return this; } this.options = options; this.loose = !!options.loose; this.includePrerelease = !!options.includePrerelease; this.raw = range2.trim().replace(SPACE_CHARACTERS, " "); this.set = this.raw.split("||").map((r) => this.parseRange(r.trim())).filter((c) => c.length); if (!this.set.length) { throw new TypeError(`Invalid SemVer Range: ${this.raw}`); } if (this.set.length > 1) { const first = this.set[0]; this.set = this.set.filter((c) => !isNullSet(c[0])); if (this.set.length === 0) { this.set = [first]; } else if (this.set.length > 1) { for (const c of this.set) { if (c.length === 1 && isAny(c[0])) { this.set = [c]; break; } } } } this.formatted = void 0; } get range() { if (this.formatted === void 0) { this.formatted = ""; for (let i = 0; i < this.set.length; i++) { if (i > 0) { this.formatted += "||"; } const comps = this.set[i]; for (let k = 0; k < comps.length; k++) { if (k > 0) { this.formatted += " "; } this.formatted += comps[k].toString().trim(); } } } return this.formatted; } format() { return this.range; } toString() { return this.range; } parseRange(range2) { const memoOpts = (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) | (this.options.loose && FLAG_LOOSE); const memoKey = memoOpts + ":" + range2; const cached = cache.get(memoKey); if (cached) { return cached; } const loose = this.options.loose; const hr = loose ? re2[t.HYPHENRANGELOOSE] : re2[t.HYPHENRANGE]; range2 = range2.replace(hr, hyphenReplace(this.options.includePrerelease)); debug("hyphen replace", range2); range2 = range2.replace(re2[t.COMPARATORTRIM], comparatorTrimReplace); debug("comparator trim", range2); range2 = range2.replace(re2[t.TILDETRIM], tildeTrimReplace); debug("tilde trim", range2); range2 = range2.replace(re2[t.CARETTRIM], caretTrimReplace); debug("caret trim", range2); let rangeList = range2.split(" ").map((comp) => parseComparator(comp, this.options)).join(" ").split(/\s+/).map((comp) => replaceGTE0(comp, this.options)); if (loose) { rangeList = rangeList.filter((comp) => { debug("loose invalid filter", comp, this.options); return !!comp.match(re2[t.COMPARATORLOOSE]); }); } debug("range list", rangeList); const rangeMap = /* @__PURE__ */ new Map(); const comparators = rangeList.map((comp) => new Comparator(comp, this.options)); for (const comp of comparators) { if (isNullSet(comp)) { return [comp]; } rangeMap.set(comp.value, comp); } if (rangeMap.size > 1 && rangeMap.has("")) { rangeMap.delete(""); } const result = [...rangeMap.values()]; cache.set(memoKey, result); return result; } intersects(range2, options) { if (!(range2 instanceof Range)) { throw new TypeError("a Range is required"); } return this.set.some((thisComparators) => { return isSatisfiable(thisComparators, options) && range2.set.some((rangeComparators) => { return isSatisfiable(rangeComparators, options) && thisComparators.every((thisComparator) => { return rangeComparators.every((rangeComparator) => { return thisComparator.intersects(rangeComparator, options); }); }); }); }); } // if ANY of the sets match ALL of its comparators, then pass test(version2) { if (!version2) { return false; } if (typeof version2 === "string") { try { version2 = new SemVer(version2, this.options); } catch (er) { return false; } } for (let i = 0; i < this.set.length; i++) { if (testSet(this.set[i], version2, this.options)) { return true; } } return false; } } range = Range; const LRU = requireLrucache(); const cache = new LRU(); const parseOptions = requireParseOptions(); const Comparator = requireComparator(); const debug = requireDebug(); const SemVer = requireSemver$1(); const { safeRe: re2, t, comparatorTrimReplace, tildeTrimReplace, caretTrimReplace } = requireRe(); const { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = requireConstants(); const isNullSet = (c) => c.value === "<0.0.0-0"; const isAny = (c) => c.value === ""; const isSatisfiable = (comparators, options) => { let result = true; const remainingComparators = comparators.slice(); let testComparator = remainingComparators.pop(); while (result && remainingComparators.length) { result = remainingComparators.every((otherComparator) => { return testComparator.intersects(otherComparator, options); }); testComparator = remainingComparators.pop(); } return result; }; const parseComparator = (comp, options) => { debug("comp", comp, options); comp = replaceCarets(comp, options); debug("caret", comp); comp = replaceTildes(comp, options); debug("tildes", comp); comp = replaceXRanges(comp, options); debug("xrange", comp); comp = replaceStars(comp, options); debug("stars", comp); return comp; }; const isX = (id2) => !id2 || id2.toLowerCase() === "x" || id2 === "*"; const replaceTildes = (comp, options) => { return comp.trim().split(/\s+/).map((c) => replaceTilde(c, options)).join(" "); }; const replaceTilde = (comp, options) => { const r = options.loose ? re2[t.TILDELOOSE] : re2[t.TILDE]; return comp.replace(r, (_, M, m, p, pr) => { debug("tilde", comp, _, M, m, p, pr); let ret; if (isX(M)) { ret = ""; } else if (isX(m)) { ret = `>=${M}.0.0 <${+M + 1}.0.0-0`; } else if (isX(p)) { ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`; } else if (pr) { debug("replaceTilde pr", pr); ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`; } else { ret = `>=${M}.${m}.${p} <${M}.${+m + 1}.0-0`; } debug("tilde return", ret); return ret; }); }; const replaceCarets = (comp, options) => { return comp.trim().split(/\s+/).map((c) => replaceCaret(c, options)).join(" "); }; const replaceCaret = (comp, options) => { debug("caret", comp, options); const r = options.loose ? re2[t.CARETLOOSE] : re2[t.CARET]; const z = options.includePrerelease ? "-0" : ""; return comp.replace(r, (_, M, m, p, pr) => { debug("caret", comp, _, M, m, p, pr); let ret; if (isX(M)) { ret = ""; } else if (isX(m)) { ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`; } else if (isX(p)) { if (M === "0") { ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`; } else { ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`; } } else if (pr) { debug("replaceCaret pr", pr); if (M === "0") { if (m === "0") { ret = `>=${M}.${m}.${p}-${pr} <${M}.${m}.${+p + 1}-0`; } else { ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`; } } else { ret = `>=${M}.${m}.${p}-${pr} <${+M + 1}.0.0-0`; } } else { debug("no pr"); if (M === "0") { if (m === "0") { ret = `>=${M}.${m}.${p}${z} <${M}.${m}.${+p + 1}-0`; } else { ret = `>=${M}.${m}.${p}${z} <${M}.${+m + 1}.0-0`; } } else { ret = `>=${M}.${m}.${p} <${+M + 1}.0.0-0`; } } debug("caret return", ret); return ret; }); }; const replaceXRanges = (comp, options) => { debug("replaceXRanges", comp, options); return comp.split(/\s+/).map((c) => replaceXRange(c, options)).join(" "); }; const replaceXRange = (comp, options) => { comp = comp.trim(); const r = options.loose ? re2[t.XRANGELOOSE] : re2[t.XRANGE]; return comp.replace(r, (ret, gtlt, M, m, p, pr) => { debug("xRange", comp, ret, gtlt, M, m, p, pr); const xM = isX(M); const xm = xM || isX(m); const xp = xm || isX(p); const anyX = xp; if (gtlt === "=" && anyX) { gtlt = ""; } pr = options.includePrerelease ? "-0" : ""; if (xM) { if (gtlt === ">" || gtlt === "<") { ret = "<0.0.0-0"; } else { ret = "*"; } } else if (gtlt && anyX) { if (xm) { m = 0; } p = 0; if (gtlt === ">") { gtlt = ">="; if (xm) { M = +M + 1; m = 0; p = 0; } else { m = +m + 1; p = 0; } } else if (gtlt === "<=") { gtlt = "<"; if (xm) { M = +M + 1; } else { m = +m + 1; } } if (gtlt === "<") { pr = "-0"; } ret = `${gtlt + M}.${m}.${p}${pr}`; } else if (xm) { ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`; } else if (xp) { ret = `>=${M}.${m}.0${pr} <${M}.${+m + 1}.0-0`; } debug("xRange return", ret); return ret; }); }; const replaceStars = (comp, options) => { debug("replaceStars", comp, options); return comp.trim().replace(re2[t.STAR], ""); }; const replaceGTE0 = (comp, options) => { debug("replaceGTE0", comp, options); return comp.trim().replace(re2[options.includePrerelease ? t.GTE0PRE : t.GTE0], ""); }; const hyphenReplace = (incPr) => ($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr) => { if (isX(fM)) { from = ""; } else if (isX(fm)) { from = `>=${fM}.0.0${incPr ? "-0" : ""}`; } else if (isX(fp)) { from = `>=${fM}.${fm}.0${incPr ? "-0" : ""}`; } else if (fpr) { from = `>=${from}`; } else { from = `>=${from}${incPr ? "-0" : ""}`; } if (isX(tM)) { to = ""; } else if (isX(tm)) { to = `<${+tM + 1}.0.0-0`; } else if (isX(tp)) { to = `<${tM}.${+tm + 1}.0-0`; } else if (tpr) { to = `<=${tM}.${tm}.${tp}-${tpr}`; } else if (incPr) { to = `<${tM}.${tm}.${+tp + 1}-0`; } else { to = `<=${to}`; } return `${from} ${to}`.trim(); }; const testSet = (set, version2, options) => { for (let i = 0; i < set.length; i++) { if (!set[i].test(version2)) { return false; } } if (version2.prerelease.length && !options.includePrerelease) { for (let i = 0; i < set.length; i++) { debug(set[i].semver); if (set[i].semver === Comparator.ANY) { continue; } if (set[i].semver.prerelease.length > 0) { const allowed = set[i].semver; if (allowed.major === version2.major && allowed.minor === version2.minor && allowed.patch === version2.patch) { return true; } } } return false; } return true; }; return range; } var comparator; var hasRequiredComparator; function requireComparator() { if (hasRequiredComparator) return comparator; hasRequiredComparator = 1; const ANY = Symbol("SemVer ANY"); class Comparator { static get ANY() { return ANY; } constructor(comp, options) { options = parseOptions(options); if (comp instanceof Comparator) { if (comp.loose === !!options.loose) { return comp; } else { comp = comp.value; } } comp = comp.trim().split(/\s+/).join(" "); debug("comparator", comp, options); this.options = options; this.loose = !!options.loose; this.parse(comp); if (this.semver === ANY) { this.value = ""; } else { this.value = this.operator + this.semver.version; } debug("comp", this); } parse(comp) { const r = this.options.loose ? re2[t.COMPARATORLOOSE] : re2[t.COMPARATOR]; const m = comp.match(r); if (!m) { throw new TypeError(`Invalid comparator: ${comp}`); } this.operator = m[1] !== void 0 ? m[1] : ""; if (this.operator === "=") { this.operator = ""; } if (!m[2]) { this.semver = ANY; } else { this.semver = new SemVer(m[2], this.options.loose); } } toString() { return this.value; } test(version2) { debug("Comparator.test", version2, this.options.loose); if (this.semver === ANY || version2 === ANY) { return true; } if (typeof version2 === "string") { try { version2 = new SemVer(version2, this.options); } catch (er) { return false; } } return cmp(version2, this.operator, this.semver, this.options); } intersects(comp, options) { if (!(comp instanceof Comparator)) { throw new TypeError("a Comparator is required"); } if (this.operator === "") { if (this.value === "") { return true; } return new Range(comp.value, options).test(this.value); } else if (comp.operator === "") { if (comp.value === "") { return true; } return new Range(this.value, options).test(comp.semver); } options = parseOptions(options); if (options.includePrerelease && (this.value === "<0.0.0-0" || comp.value === "<0.0.0-0")) { return false; } if (!options.includePrerelease && (this.value.startsWith("<0.0.0") || comp.value.startsWith("<0.0.0"))) { return false; } if (this.operator.startsWith(">") && comp.operator.startsWith(">")) { return true; } if (this.operator.startsWith("<") && comp.operator.startsWith("<")) { return true; } if (this.semver.version === comp.semver.version && this.operator.includes("=") && comp.operator.includes("=")) { return true; } if (cmp(this.semver, "<", comp.semver, options) && this.operator.startsWith(">") && comp.operator.startsWith("<")) { return true; } if (cmp(this.semver, ">", comp.semver, options) && this.operator.startsWith("<") && comp.operator.startsWith(">")) { return true; } return false; } } comparator = Comparator; const parseOptions = requireParseOptions(); const { safeRe: re2, t } = requireRe(); const cmp = requireCmp(); const debug = requireDebug(); const SemVer = requireSemver$1(); const Range = requireRange(); return comparator; } var satisfies_1; var hasRequiredSatisfies; function requireSatisfies() { if (hasRequiredSatisfies) return satisfies_1; hasRequiredSatisfies = 1; const Range = requireRange(); const satisfies = (version2, range2, options) => { try { range2 = new Range(range2, options); } catch (er) { return false; } return range2.test(version2); }; satisfies_1 = satisfies; return satisfies_1; } var toComparators_1; var hasRequiredToComparators; function requireToComparators() { if (hasRequiredToComparators) return toComparators_1; hasRequiredToComparators = 1; const Range = requireRange(); const toComparators = (range2, options) => new Range(range2, options).set.map((comp) => comp.map((c) => c.value).join(" ").trim().split(" ")); toComparators_1 = toComparators; return toComparators_1; } var maxSatisfying_1; var hasRequiredMaxSatisfying; function requireMaxSatisfying() { if (hasRequiredMaxSatisfying) return maxSatisfying_1; hasRequiredMaxSatisfying = 1; const SemVer = requireSemver$1(); const Range = requireRange(); const maxSatisfying = (versions, range2, options) => { let max = null; let maxSV = null; let rangeObj = null; try { rangeObj = new Range(range2, options); } catch (er) { return null; } versions.forEach((v) => { if (rangeObj.test(v)) { if (!max || maxSV.compare(v) === -1) { max = v; maxSV = new SemVer(max, options); } } }); return max; }; maxSatisfying_1 = maxSatisfying; return maxSatisfying_1; } var minSatisfying_1; var hasRequiredMinSatisfying; function requireMinSatisfying() { if (hasRequiredMinSatisfying) return minSatisfying_1; hasRequiredMinSatisfying = 1; const SemVer = requireSemver$1(); const Range = requireRange(); const minSatisfying = (versions, range2, options) => { let min = null; let minSV = null; let rangeObj = null; try { rangeObj = new Range(range2, options); } catch (er) { return null; } versions.forEach((v) => { if (rangeObj.test(v)) { if (!min || minSV.compare(v) === 1) { min = v; minSV = new SemVer(min, options); } } }); return min; }; minSatisfying_1 = minSatisfying; return minSatisfying_1; } var minVersion_1; var hasRequiredMinVersion; function requireMinVersion() { if (hasRequiredMinVersion) return minVersion_1; hasRequiredMinVersion = 1; const SemVer = requireSemver$1(); const Range = requireRange(); const gt = requireGt(); const minVersion = (range2, loose) => { range2 = new Range(range2, loose); let minver = new SemVer("0.0.0"); if (range2.test(minver)) { return minver; } minver = new SemVer("0.0.0-0"); if (range2.test(minver)) { return minver; } minver = null; for (let i = 0; i < range2.set.length; ++i) { const comparators = range2.set[i]; let setMin = null; comparators.forEach((comparator2) => { const compver = new SemVer(comparator2.semver.version); switch (comparator2.operator) { case ">": if (compver.prerelease.length === 0) { compver.patch++; } else { compver.prerelease.push(0); } compver.raw = compver.format(); /* fallthrough */ case "": case ">=": if (!setMin || gt(compver, setMin)) { setMin = compver; } break; case "<": case "<=": break; /* istanbul ignore next */ default: throw new Error(`Unexpected operation: ${comparator2.operator}`); } }); if (setMin && (!minver || gt(minver, setMin))) { minver = setMin; } } if (minver && range2.test(minver)) { return minver; } return null; }; minVersion_1 = minVersion; return minVersion_1; } var valid; var hasRequiredValid; function requireValid() { if (hasRequiredValid) return valid; hasRequiredValid = 1; const Range = requireRange(); const validRange = (range2, options) => { try { return new Range(range2, options).range || "*"; } catch (er) { return null; } }; valid = validRange; return valid; } var outside_1; var hasRequiredOutside; function requireOutside() { if (hasRequiredOutside) return outside_1; hasRequiredOutside = 1; const SemVer = requireSemver$1(); const Comparator = requireComparator(); const { ANY } = Comparator; const Range = requireRange(); const satisfies = requireSatisfies(); const gt = requireGt(); const lt = requireLt(); const lte = requireLte(); const gte = requireGte(); const outside = (version2, range2, hilo, options) => { version2 = new SemVer(version2, options); range2 = new Range(range2, options); let gtfn, ltefn, ltfn, comp, ecomp; switch (hilo) { case ">": gtfn = gt; ltefn = lte; ltfn = lt; comp = ">"; ecomp = ">="; break; case "<": gtfn = lt; ltefn = gte; ltfn = gt; comp = "<"; ecomp = "<="; break; default: throw new TypeError('Must provide a hilo val of "<" or ">"'); } if (satisfies(version2, range2, options)) { return false; } for (let i = 0; i < range2.set.length; ++i) { const comparators = range2.set[i]; let high = null; let low = null; comparators.forEach((comparator2) => { if (comparator2.semver === ANY) { comparator2 = new Comparator(">=0.0.0"); } high = high || comparator2; low = low || comparator2; if (gtfn(comparator2.semver, high.semver, options)) { high = comparator2; } else if (ltfn(comparator2.semver, low.semver, options)) { low = comparator2; } }); if (high.operator === comp || high.operator === ecomp) { return false; } if ((!low.operator || low.operator === comp) && ltefn(version2, low.semver)) { return false; } else if (low.operator === ecomp && ltfn(version2, low.semver)) { return false; } } return true; }; outside_1 = outside; return outside_1; } var gtr_1; var hasRequiredGtr; function requireGtr() { if (hasRequiredGtr) return gtr_1; hasRequiredGtr = 1; const outside = requireOutside(); const gtr = (version2, range2, options) => outside(version2, range2, ">", options); gtr_1 = gtr; return gtr_1; } var ltr_1; var hasRequiredLtr; function requireLtr() { if (hasRequiredLtr) return ltr_1; hasRequiredLtr = 1; const outside = requireOutside(); const ltr = (version2, range2, options) => outside(version2, range2, "<", options); ltr_1 = ltr; return ltr_1; }