From 282fa55776b92f28a8bd15cca75305f433274c94 Mon Sep 17 00:00:00 2001 From: Cedric van Putten Date: Wed, 12 Jan 2022 15:40:57 +0100 Subject: [PATCH] chore: fix linting issues --- .eslintrc.js | 1 + build/setup.js | 2028 +------------------------------------------- build/setup.js.map | 2 +- spack.config.js | 19 +- 4 files changed, 15 insertions(+), 2035 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 98134dd2..cf79ce2c 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -10,6 +10,7 @@ module.exports = { extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended'], rules: { '@typescript-eslint/explicit-member-accessibility': ['error', { accessibility: 'no-public' }], + '@typescript-eslint/no-var-requires': 'off', 'prettier/prettier': 'error', }, }; diff --git a/build/setup.js b/build/setup.js index be835198..876ac573 100644 --- a/build/setup.js +++ b/build/setup.js @@ -191,2026 +191,6 @@ var load2 = __swcpack_require__.bind(void 0, function(module, exports) { } }); var load3 = __swcpack_require__.bind(void 0, function(module, exports) { - // Note: this is the semver.org version of the spec that it implements - // Not necessarily the package version of this code. - const SEMVER_SPEC_VERSION = '2.0.0'; - const MAX_LENGTH = 256; - const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */ 9007199254740991; - // Max safe segment length for coercion. - const MAX_SAFE_COMPONENT_LENGTH = 16; - module.exports = { - SEMVER_SPEC_VERSION, - MAX_LENGTH, - MAX_SAFE_INTEGER, - MAX_SAFE_COMPONENT_LENGTH - }; -}); -var load4 = __swcpack_require__.bind(void 0, function(module, exports) { - const debug = typeof process === 'object' && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? (...args)=>console.error('SEMVER', ...args) - : ()=>{}; - module.exports = debug; -}); -var load5 = __swcpack_require__.bind(void 0, function(module, exports) { - const { MAX_SAFE_COMPONENT_LENGTH } = load3(); - const debug = load4(); - exports = module.exports = {}; - // The actual regexps go on exports.re - const re = exports.re = []; - const src = exports.src = []; - const t = exports.t = {}; - let R = 0; - const createToken = (name, value, isGlobal)=>{ - const index = R++; - debug(index, value); - t[name] = index; - src[index] = value; - re[index] = new RegExp(value, isGlobal ? 'g' : undefined); - }; - // The following Regular Expressions can be used for tokenizing, - // validating, and parsing SemVer version strings. - // ## Numeric Identifier - // A single `0`, or a non-zero digit followed by zero or more digits. - createToken('NUMERICIDENTIFIER', '0|[1-9]\\d*'); - createToken('NUMERICIDENTIFIERLOOSE', '[0-9]+'); - // ## Non-numeric Identifier - // Zero or more digits, followed by a letter or hyphen, and then zero or - // more letters, digits, or hyphens. - createToken('NONNUMERICIDENTIFIER', '\\d*[a-zA-Z-][a-zA-Z0-9-]*'); - // ## Main Version - // Three dot-separated numeric identifiers. - createToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\.` + `(${src[t.NUMERICIDENTIFIER]})\\.` + `(${src[t.NUMERICIDENTIFIER]})`); - createToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + `(${src[t.NUMERICIDENTIFIERLOOSE]})`); - // ## Pre-release Version Identifier - // A numeric identifier, or a non-numeric identifier. - createToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]}|${src[t.NONNUMERICIDENTIFIER]})`); - createToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]}|${src[t.NONNUMERICIDENTIFIER]})`); - // ## Pre-release Version - // Hyphen, followed by one or more dot-separated pre-release version - // identifiers. - createToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]}(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`); - createToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`); - // ## Build Metadata Identifier - // Any combination of digits, letters, or hyphens. - createToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+'); - // ## Build Metadata - // Plus sign, followed by one or more period-separated build metadata - // identifiers. - createToken('BUILD', `(?:\\+(${src[t.BUILDIDENTIFIER]}(?:\\.${src[t.BUILDIDENTIFIER]})*))`); - // ## Full Version String - // A main version, followed optionally by a pre-release version and - // build metadata. - // Note that the only major, minor, patch, and pre-release sections of - // the version string are capturing groups. The build metadata is not a - // capturing group, because it should not ever be used in version - // comparison. - createToken('FULLPLAIN', `v?${src[t.MAINVERSION]}${src[t.PRERELEASE]}?${src[t.BUILD]}?`); - createToken('FULL', `^${src[t.FULLPLAIN]}$`); - // like full, but allows v1.2.3 and =1.2.3, which people do sometimes. - // also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty - // common in the npm registry. - createToken('LOOSEPLAIN', `[v=\\s]*${src[t.MAINVERSIONLOOSE]}${src[t.PRERELEASELOOSE]}?${src[t.BUILD]}?`); - createToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`); - createToken('GTLT', '((?:<|>)?=?)'); - // Something like "2.*" or "1.2.x". - // Note that "x.x" is a valid xRange identifer, meaning "any version" - // Only the first item is strictly required. - 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]}$`); - // Coercion. - // Extract anything that could conceivably be a part of a valid semver - createToken('COERCE', `${"(^|[^\\d])(\\d{1,"}${MAX_SAFE_COMPONENT_LENGTH}})` + `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + `(?:$|[^\\d])`); - createToken('COERCERTL', src[t.COERCE], true); - // Tilde ranges. - // Meaning is "reasonably at or greater than" - 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]}$`); - // Caret ranges. - // Meaning is "at least and backwards compatible with" - 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]}$`); - // A simple gt/lt/eq thing, or just "" to indicate "any version" - createToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`); - createToken('COMPARATOR', `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`); - // An expression to strip any whitespace between the gtlt and the thing - // it modifies, so that `> 1.2.3` ==> `>1.2.3` - createToken('COMPARATORTRIM', `(\\s*)${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true); - exports.comparatorTrimReplace = '$1$2$3'; - // Something like `1.2.3 - 1.2.4` - // Note that these all use the loose form, because they'll be - // checked against either the strict or loose comparator form - // later. - createToken('HYPHENRANGE', `^\\s*(${src[t.XRANGEPLAIN]})` + `\\s+-\\s+` + `(${src[t.XRANGEPLAIN]})` + `\\s*$`); - createToken('HYPHENRANGELOOSE', `^\\s*(${src[t.XRANGEPLAINLOOSE]})` + `\\s+-\\s+` + `(${src[t.XRANGEPLAINLOOSE]})` + `\\s*$`); - // Star ranges basically just allow anything at all. - createToken('STAR', '(<|>)?=?\\s*\\*'); - // >=0.0.0 is like a star - createToken('GTE0', '^\\s*>=\\s*0.0.0\\s*$'); - createToken('GTE0PRE', '^\\s*>=\\s*0.0.0-0\\s*$'); -}); -var load6 = __swcpack_require__.bind(void 0, function(module, exports) { - // parse out just the options we care about so we always get a consistent - // obj with keys in a consistent order. - const opts = [ - 'includePrerelease', - 'loose', - 'rtl' - ]; - const parseOptions = (options1)=>!options1 ? {} : typeof options1 !== 'object' ? { - loose: true - } : opts.filter((k)=>options1[k] - ).reduce((options, k)=>{ - options[k] = true; - return options; - }, {}) - ; - module.exports = parseOptions; -}); -var load7 = __swcpack_require__.bind(void 0, function(module, exports) { - 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) - ; - module.exports = { - compareIdentifiers, - rcompareIdentifiers - }; -}); -var load8 = __swcpack_require__.bind(void 0, function(module, exports) { - const debug = load4(); - const { MAX_LENGTH , MAX_SAFE_INTEGER } = load3(); - const { re , t } = load5(); - const parseOptions = load6(); - const { compareIdentifiers } = load7(); - class SemVer { - constructor(version, options){ - options = parseOptions(options); - if (version instanceof SemVer) { - if (version.loose === !!options.loose && version.includePrerelease === !!options.includePrerelease) return version; - else version = version.version; - } else if (typeof version !== 'string') throw new TypeError(`Invalid Version: ${version}`); - if (version.length > MAX_LENGTH) throw new TypeError(`version is longer than ${MAX_LENGTH} characters`); - debug('SemVer', version, options); - this.options = options; - this.loose = !!options.loose; - // this isn't actually relevant for versions, but keep it so that we - // don't run into trouble passing this.options around. - this.includePrerelease = !!options.includePrerelease; - const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL]); - if (!m) throw new TypeError(`Invalid Version: ${version}`); - this.raw = version; - // these are actually numbers - 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'); - // numberify any prerelease numeric ids - if (!m[4]) this.prerelease = []; - else this.prerelease = m[4].split('.').map((id)=>{ - if (/^[0-9]+$/.test(id)) { - const num = +id; - if (num >= 0 && num < MAX_SAFE_INTEGER) return num; - } - return id; - }); - 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); - // NOT having a prerelease is > having one - 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 === undefined && b === undefined) return 0; - else if (b === undefined) return 1; - else if (a === undefined) 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('prerelease compare', i, a, b); - if (a === undefined && b === undefined) return 0; - else if (b === undefined) return 1; - else if (a === undefined) 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) { - switch(release){ - case 'premajor': - this.prerelease.length = 0; - this.patch = 0; - this.minor = 0; - this.major++; - this.inc('pre', identifier); - break; - case 'preminor': - this.prerelease.length = 0; - this.patch = 0; - this.minor++; - this.inc('pre', identifier); - break; - case 'prepatch': - // If this is already a prerelease, it will bump to the next version - // drop any prereleases that might already exist, since they are not - // relevant at this point. - this.prerelease.length = 0; - this.inc('patch', identifier); - this.inc('pre', identifier); - 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); - this.inc('pre', identifier); - break; - case 'major': - // If this is a pre-major version, bump up to the same major version. - // Otherwise increment major. - // 1.0.0-5 bumps to 1.0.0 - // 1.1.0 bumps to 2.0.0 - 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 is a pre-minor version, bump up to the same minor version. - // Otherwise increment minor. - // 1.2.0-5 bumps to 1.2.0 - // 1.2.1 bumps to 1.3.0 - if (this.patch !== 0 || this.prerelease.length === 0) this.minor++; - this.patch = 0; - this.prerelease = []; - break; - case 'patch': - // If this is not a pre-release version, it will increment the patch. - // If it is a pre-release it will bump up to the same patch version. - // 1.2.0-5 patches to 1.2.0 - // 1.2.0 patches to 1.2.1 - 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': - if (this.prerelease.length === 0) this.prerelease = [ - 0 - ]; - else { - let i = this.prerelease.length; - while(--i >= 0)if (typeof this.prerelease[i] === 'number') { - this.prerelease[i]++; - i = -2; - } - if (i === -1) // didn't increment anything - this.prerelease.push(0); - } - if (identifier) { - // 1.2.0-beta.1 bumps to 1.2.0-beta.2, - // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 - if (this.prerelease[0] === identifier) { - if (isNaN(this.prerelease[1])) this.prerelease = [ - identifier, - 0 - ]; - } else this.prerelease = [ - identifier, - 0 - ]; - } - break; - default: - throw new Error(`invalid increment argument: ${release}`); - } - this.format(); - this.raw = this.version; - return this; - } - } - module.exports = SemVer; -}); -var load9 = __swcpack_require__.bind(void 0, function(module, exports) { - const { MAX_LENGTH } = load3(); - const { re , t } = load5(); - const SemVer = load8(); - const parseOptions = load6(); - const parse = (version, options)=>{ - options = parseOptions(options); - if (version instanceof SemVer) return version; - if (typeof version !== 'string') return null; - if (version.length > MAX_LENGTH) return null; - const r = options.loose ? re[t.LOOSE] : re[t.FULL]; - if (!r.test(version)) return null; - try { - return new SemVer(version, options); - } catch (er) { - return null; - } - }; - module.exports = parse; -}); -var load10 = __swcpack_require__.bind(void 0, function(module, exports) { - const parse = load9(); - const valid = (version, options)=>{ - const v = parse(version, options); - return v ? v.version : null; - }; - module.exports = valid; -}); -var load11 = __swcpack_require__.bind(void 0, function(module, exports) { - const parse = load9(); - const clean = (version, options)=>{ - const s = parse(version.trim().replace(/^[=v]+/, ''), options); - return s ? s.version : null; - }; - module.exports = clean; -}); -var load12 = __swcpack_require__.bind(void 0, function(module, exports) { - const SemVer = load8(); - const inc = (version, release, options, identifier)=>{ - if (typeof options === 'string') { - identifier = options; - options = undefined; - } - try { - return new SemVer(version, options).inc(release, identifier).version; - } catch (er) { - return null; - } - }; - module.exports = inc; -}); -var load13 = __swcpack_require__.bind(void 0, function(module, exports) { - const SemVer = load8(); - const compare = (a, b, loose)=>new SemVer(a, loose).compare(new SemVer(b, loose)) - ; - module.exports = compare; -}); -var load14 = __swcpack_require__.bind(void 0, function(module, exports) { - const compare = load13(); - const eq = (a, b, loose)=>compare(a, b, loose) === 0 - ; - module.exports = eq; -}); -var load15 = __swcpack_require__.bind(void 0, function(module, exports) { - const parse = load9(); - const eq = load14(); - const diff = (version1, version2)=>{ - if (eq(version1, version2)) return null; - else { - const v1 = parse(version1); - const v2 = parse(version2); - const hasPre = v1.prerelease.length || v2.prerelease.length; - const prefix = hasPre ? 'pre' : ''; - const defaultResult = hasPre ? 'prerelease' : ''; - for(const key in v1)if (key === 'major' || key === 'minor' || key === 'patch') { - if (v1[key] !== v2[key]) return prefix + key; - } - return defaultResult // may be undefined - ; - } - }; - module.exports = diff; -}); -var load16 = __swcpack_require__.bind(void 0, function(module, exports) { - const SemVer = load8(); - const major = (a, loose)=>new SemVer(a, loose).major - ; - module.exports = major; -}); -var load17 = __swcpack_require__.bind(void 0, function(module, exports) { - const SemVer = load8(); - const minor = (a, loose)=>new SemVer(a, loose).minor - ; - module.exports = minor; -}); -var load18 = __swcpack_require__.bind(void 0, function(module, exports) { - const SemVer = load8(); - const patch = (a, loose)=>new SemVer(a, loose).patch - ; - module.exports = patch; -}); -var load19 = __swcpack_require__.bind(void 0, function(module, exports) { - const parse = load9(); - const prerelease = (version, options)=>{ - const parsed = parse(version, options); - return parsed && parsed.prerelease.length ? parsed.prerelease : null; - }; - module.exports = prerelease; -}); -var load20 = __swcpack_require__.bind(void 0, function(module, exports) { - const compare = load13(); - const rcompare = (a, b, loose)=>compare(b, a, loose) - ; - module.exports = rcompare; -}); -var load21 = __swcpack_require__.bind(void 0, function(module, exports) { - const compare = load13(); - const compareLoose = (a, b)=>compare(a, b, true) - ; - module.exports = compareLoose; -}); -var load22 = __swcpack_require__.bind(void 0, function(module, exports) { - const SemVer = load8(); - const compareBuild = (a, b, loose)=>{ - const versionA = new SemVer(a, loose); - const versionB = new SemVer(b, loose); - return versionA.compare(versionB) || versionA.compareBuild(versionB); - }; - module.exports = compareBuild; -}); -var load23 = __swcpack_require__.bind(void 0, function(module, exports) { - const compareBuild = load22(); - const sort = (list, loose)=>list.sort((a, b)=>compareBuild(a, b, loose) - ) - ; - module.exports = sort; -}); -var load24 = __swcpack_require__.bind(void 0, function(module, exports) { - const compareBuild = load22(); - const rsort = (list, loose)=>list.sort((a, b)=>compareBuild(b, a, loose) - ) - ; - module.exports = rsort; -}); -var load25 = __swcpack_require__.bind(void 0, function(module, exports) { - const compare = load13(); - const gt = (a, b, loose)=>compare(a, b, loose) > 0 - ; - module.exports = gt; -}); -var load26 = __swcpack_require__.bind(void 0, function(module, exports) { - const compare = load13(); - const lt = (a, b, loose)=>compare(a, b, loose) < 0 - ; - module.exports = lt; -}); -var load27 = __swcpack_require__.bind(void 0, function(module, exports) { - const compare = load13(); - const neq = (a, b, loose)=>compare(a, b, loose) !== 0 - ; - module.exports = neq; -}); -var load28 = __swcpack_require__.bind(void 0, function(module, exports) { - const compare = load13(); - const gte = (a, b, loose)=>compare(a, b, loose) >= 0 - ; - module.exports = gte; -}); -var load29 = __swcpack_require__.bind(void 0, function(module, exports) { - const compare = load13(); - const lte = (a, b, loose)=>compare(a, b, loose) <= 0 - ; - module.exports = lte; -}); -var load30 = __swcpack_require__.bind(void 0, function(module, exports) { - const eq = load14(); - const neq = load27(); - const gt = load25(); - const gte = load28(); - const lt = load26(); - const lte = load29(); - 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}`); - } - }; - module.exports = cmp; -}); -var load31 = __swcpack_require__.bind(void 0, function(module, exports) { - const SemVer = load8(); - const parse = load9(); - const { re , t } = load5(); - const coerce = (version, options)=>{ - if (version instanceof SemVer) return version; - if (typeof version === 'number') version = String(version); - if (typeof version !== 'string') return null; - options = options || {}; - let match = null; - if (!options.rtl) match = version.match(re[t.COERCE]); - else { - // Find the right-most coercible string that does not share - // a terminus with a more left-ward coercible string. - // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4' - // - // Walk through the string checking with a /g regexp - // Manually set the index so as to pick up overlapping matches. - // Stop when we get a match that ends at the string end, since no - // coercible string can be more right-ward without the same terminus. - let next; - while((next = re[t.COERCERTL].exec(version)) && (!match || match.index + match[0].length !== version.length)){ - if (!match || next.index + next[0].length !== match.index + match[0].length) match = next; - re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length; - } - // leave it in a clean state - re[t.COERCERTL].lastIndex = -1; - } - if (match === null) return null; - return parse(`${match[2]}.${match[3] || '0'}.${match[4] || '0'}`, options); - }; - module.exports = coerce; -}); -var load32 = __swcpack_require__.bind(void 0, function(module, exports) { - 'use strict'; - module.exports = function(Yallist) { - Yallist.prototype[Symbol.iterator] = function*() { - for(let walker = this.head; walker; walker = walker.next)yield walker.value; - }; - }; -}); -var load33 = __swcpack_require__.bind(void 0, function(module, exports) { - 'use strict'; - module.exports = Yallist; - Yallist.Node = Node; - Yallist.create = Yallist; - function Yallist(list) { - var self = this; - if (!(self instanceof Yallist)) self = new Yallist(); - self.tail = null; - self.head = null; - self.length = 0; - if (list && typeof list.forEach === 'function') list.forEach(function(item) { - self.push(item); - }); - else if (arguments.length > 0) for(var i = 0, l = arguments.length; i < l; i++)self.push(arguments[i]); - return self; - } - Yallist.prototype.removeNode = function(node) { - if (node.list !== this) throw new Error('removing node which does not belong to this list'); - var next = node.next; - var prev = node.prev; - if (next) next.prev = prev; - if (prev) prev.next = next; - if (node === this.head) this.head = next; - if (node === this.tail) this.tail = prev; - node.list.length--; - node.next = null; - node.prev = null; - node.list = null; - return next; - }; - Yallist.prototype.unshiftNode = function(node) { - if (node === this.head) return; - if (node.list) node.list.removeNode(node); - var head = this.head; - node.list = this; - node.next = head; - if (head) head.prev = node; - this.head = node; - if (!this.tail) this.tail = node; - this.length++; - }; - Yallist.prototype.pushNode = function(node) { - if (node === this.tail) return; - if (node.list) node.list.removeNode(node); - var tail = this.tail; - node.list = this; - node.prev = tail; - if (tail) tail.next = node; - this.tail = node; - if (!this.head) this.head = node; - this.length++; - }; - Yallist.prototype.push = function() { - for(var i = 0, l = arguments.length; i < l; i++)push(this, arguments[i]); - return this.length; - }; - Yallist.prototype.unshift = function() { - for(var i = 0, l = arguments.length; i < l; i++)unshift(this, arguments[i]); - return this.length; - }; - Yallist.prototype.pop = function() { - if (!this.tail) return undefined; - var res = this.tail.value; - this.tail = this.tail.prev; - if (this.tail) this.tail.next = null; - else this.head = null; - this.length--; - return res; - }; - Yallist.prototype.shift = function() { - if (!this.head) return undefined; - var res = this.head.value; - this.head = this.head.next; - if (this.head) this.head.prev = null; - else this.tail = null; - this.length--; - return res; - }; - Yallist.prototype.forEach = function(fn, thisp) { - thisp = thisp || this; - for(var walker = this.head, i = 0; walker !== null; i++){ - fn.call(thisp, walker.value, i, this); - walker = walker.next; - } - }; - Yallist.prototype.forEachReverse = function(fn, thisp) { - thisp = thisp || this; - for(var walker = this.tail, i = this.length - 1; walker !== null; i--){ - fn.call(thisp, walker.value, i, this); - walker = walker.prev; - } - }; - Yallist.prototype.get = function(n) { - for(var i = 0, walker = this.head; walker !== null && i < n; i++)// abort out of the list early if we hit a cycle - walker = walker.next; - if (i === n && walker !== null) return walker.value; - }; - Yallist.prototype.getReverse = function(n) { - for(var i = 0, walker = this.tail; walker !== null && i < n; i++)// abort out of the list early if we hit a cycle - walker = walker.prev; - if (i === n && walker !== null) return walker.value; - }; - Yallist.prototype.map = function(fn, thisp) { - thisp = thisp || this; - var res = new Yallist(); - for(var walker = this.head; walker !== null;){ - res.push(fn.call(thisp, walker.value, this)); - walker = walker.next; - } - return res; - }; - Yallist.prototype.mapReverse = function(fn, thisp) { - thisp = thisp || this; - var res = new Yallist(); - for(var walker = this.tail; walker !== null;){ - res.push(fn.call(thisp, walker.value, this)); - walker = walker.prev; - } - return res; - }; - Yallist.prototype.reduce = function(fn, initial) { - var acc; - var walker = this.head; - if (arguments.length > 1) acc = initial; - else if (this.head) { - walker = this.head.next; - acc = this.head.value; - } else throw new TypeError('Reduce of empty list with no initial value'); - for(var i = 0; walker !== null; i++){ - acc = fn(acc, walker.value, i); - walker = walker.next; - } - return acc; - }; - Yallist.prototype.reduceReverse = function(fn, initial) { - var acc; - var walker = this.tail; - if (arguments.length > 1) acc = initial; - else if (this.tail) { - walker = this.tail.prev; - acc = this.tail.value; - } else throw new TypeError('Reduce of empty list with no initial value'); - for(var i = this.length - 1; walker !== null; i--){ - acc = fn(acc, walker.value, i); - walker = walker.prev; - } - return acc; - }; - Yallist.prototype.toArray = function() { - var arr = new Array(this.length); - for(var i = 0, walker = this.head; walker !== null; i++){ - arr[i] = walker.value; - walker = walker.next; - } - return arr; - }; - Yallist.prototype.toArrayReverse = function() { - var arr = new Array(this.length); - for(var i = 0, walker = this.tail; walker !== null; i++){ - arr[i] = walker.value; - walker = walker.prev; - } - return arr; - }; - Yallist.prototype.slice = function(from, to) { - to = to || this.length; - if (to < 0) to += this.length; - from = from || 0; - if (from < 0) from += this.length; - var ret = new Yallist(); - if (to < from || to < 0) return ret; - if (from < 0) from = 0; - if (to > this.length) to = this.length; - for(var i = 0, walker = this.head; walker !== null && i < from; i++)walker = walker.next; - for(; walker !== null && i < to; i++, walker = walker.next)ret.push(walker.value); - return ret; - }; - Yallist.prototype.sliceReverse = function(from, to) { - to = to || this.length; - if (to < 0) to += this.length; - from = from || 0; - if (from < 0) from += this.length; - var ret = new Yallist(); - if (to < from || to < 0) return ret; - if (from < 0) from = 0; - if (to > this.length) to = this.length; - for(var i = this.length, walker = this.tail; walker !== null && i > to; i--)walker = walker.prev; - for(; walker !== null && i > from; i--, walker = walker.prev)ret.push(walker.value); - return ret; - }; - Yallist.prototype.splice = function(start, deleteCount, ...nodes) { - if (start > this.length) start = this.length - 1; - if (start < 0) start = this.length + start; - for(var i = 0, walker = this.head; walker !== null && i < start; i++)walker = walker.next; - var ret = []; - for(var i = 0; walker && i < deleteCount; i++){ - ret.push(walker.value); - walker = this.removeNode(walker); - } - if (walker === null) walker = this.tail; - if (walker !== this.head && walker !== this.tail) walker = walker.prev; - for(var i = 0; i < nodes.length; i++)walker = insert(this, walker, nodes[i]); - return ret; - }; - Yallist.prototype.reverse = function() { - var head = this.head; - var tail = this.tail; - for(var walker = head; walker !== null; walker = walker.prev){ - var p = walker.prev; - walker.prev = walker.next; - walker.next = p; - } - this.head = tail; - this.tail = head; - return this; - }; - function insert(self, node, value) { - var inserted = node === self.head ? new Node(value, null, node, self) : new Node(value, node, node.next, self); - if (inserted.next === null) self.tail = inserted; - if (inserted.prev === null) self.head = inserted; - self.length++; - return inserted; - } - function push(self, item) { - self.tail = new Node(item, self.tail, null, self); - if (!self.head) self.head = self.tail; - self.length++; - } - function unshift(self, item) { - self.head = new Node(item, null, self.head, self); - if (!self.tail) self.tail = self.head; - self.length++; - } - function Node(value, prev, next, list) { - if (!(this instanceof Node)) return new Node(value, prev, next, list); - this.list = list; - this.value = value; - if (prev) { - prev.next = this; - this.prev = prev; - } else this.prev = null; - if (next) { - next.prev = this; - this.next = next; - } else this.next = null; - } - try { - // add if support for Symbol.iterator is present - load32()(Yallist); - } catch (er) {} -}); -var load34 = __swcpack_require__.bind(void 0, function(module, exports) { - 'use strict'; - // A linked list to keep track of recently-used-ness - const Yallist = load33(); - const MAX = Symbol('max'); - const LENGTH = Symbol('length'); - const LENGTH_CALCULATOR = Symbol('lengthCalculator'); - const ALLOW_STALE = Symbol('allowStale'); - const MAX_AGE = Symbol('maxAge'); - const DISPOSE = Symbol('dispose'); - const NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet'); - const LRU_LIST = Symbol('lruList'); - const CACHE = Symbol('cache'); - const UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet'); - const naiveLength = ()=>1 - ; - // lruList is a yallist where the head is the youngest - // item, and the tail is the oldest. the list contains the Hit - // objects as the entries. - // Each Hit object has a reference to its Yallist.Node. This - // never changes. - // - // cache is a Map (or PseudoMap) that matches the keys to - // the Yallist.Node object. - class LRUCache { - constructor(options){ - if (typeof options === 'number') options = { - max: options - }; - if (!options) options = {}; - if (options.max && (typeof options.max !== 'number' || options.max < 0)) throw new TypeError('max must be a non-negative number'); - this[MAX] = options.max || Infinity; - const lc = options.length || naiveLength; - this[LENGTH_CALCULATOR] = typeof lc !== 'function' ? naiveLength : lc; - this[ALLOW_STALE] = options.stale || false; - if (options.maxAge && typeof options.maxAge !== 'number') throw new TypeError('maxAge must be a number'); - this[MAX_AGE] = options.maxAge || 0; - this[DISPOSE] = options.dispose; - this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false; - this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false; - this.reset(); - } - // resize the cache when the max changes. - set max(mL) { - if (typeof mL !== 'number' || mL < 0) throw new TypeError('max must be a non-negative number'); - this[MAX] = mL || Infinity; - trim(this); - } - get max() { - return this[MAX]; - } - set allowStale(allowStale) { - this[ALLOW_STALE] = !!allowStale; - } - get allowStale() { - return this[ALLOW_STALE]; - } - set maxAge(mA) { - if (typeof mA !== 'number') throw new TypeError('maxAge must be a non-negative number'); - this[MAX_AGE] = mA; - trim(this); - } - get maxAge() { - return this[MAX_AGE]; - } - // resize the cache when the lengthCalculator changes. - set lengthCalculator(lC) { - if (typeof lC !== 'function') lC = naiveLength; - if (lC !== this[LENGTH_CALCULATOR]) { - this[LENGTH_CALCULATOR] = lC; - this[LENGTH] = 0; - this[LRU_LIST].forEach((hit)=>{ - hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key); - this[LENGTH] += hit.length; - }); - } - trim(this); - } - get lengthCalculator() { - return this[LENGTH_CALCULATOR]; - } - get length() { - return this[LENGTH]; - } - get itemCount() { - return this[LRU_LIST].length; - } - rforEach(fn, thisp) { - thisp = thisp || this; - for(let walker = this[LRU_LIST].tail; walker !== null;){ - const prev = walker.prev; - forEachStep(this, fn, walker, thisp); - walker = prev; - } - } - forEach(fn, thisp) { - thisp = thisp || this; - for(let walker = this[LRU_LIST].head; walker !== null;){ - const next = walker.next; - forEachStep(this, fn, walker, thisp); - walker = next; - } - } - keys() { - return this[LRU_LIST].toArray().map((k)=>k.key - ); - } - values() { - return this[LRU_LIST].toArray().map((k)=>k.value - ); - } - reset() { - if (this[DISPOSE] && this[LRU_LIST] && this[LRU_LIST].length) this[LRU_LIST].forEach((hit)=>this[DISPOSE](hit.key, hit.value) - ); - this[CACHE] = new Map() // hash of items by key - ; - this[LRU_LIST] = new Yallist() // list of items in order of use recency - ; - this[LENGTH] = 0 // length of items in the list - ; - } - dump() { - return this[LRU_LIST].map((hit)=>isStale(this, hit) ? false : { - k: hit.key, - v: hit.value, - e: hit.now + (hit.maxAge || 0) - } - ).toArray().filter((h)=>h - ); - } - dumpLru() { - return this[LRU_LIST]; - } - set(key, value, maxAge) { - maxAge = maxAge || this[MAX_AGE]; - if (maxAge && typeof maxAge !== 'number') throw new TypeError('maxAge must be a number'); - const now = maxAge ? Date.now() : 0; - const len = this[LENGTH_CALCULATOR](value, key); - if (this[CACHE].has(key)) { - if (len > this[MAX]) { - del(this, this[CACHE].get(key)); - return false; - } - const node = this[CACHE].get(key); - const item = node.value; - // dispose of the old one before overwriting - // split out into 2 ifs for better coverage tracking - if (this[DISPOSE]) { - if (!this[NO_DISPOSE_ON_SET]) this[DISPOSE](key, item.value); - } - item.now = now; - item.maxAge = maxAge; - item.value = value; - this[LENGTH] += len - item.length; - item.length = len; - this.get(key); - trim(this); - return true; - } - const hit = new Entry(key, value, len, now, maxAge); - // oversized objects fall out of cache automatically. - if (hit.length > this[MAX]) { - if (this[DISPOSE]) this[DISPOSE](key, value); - return false; - } - this[LENGTH] += hit.length; - this[LRU_LIST].unshift(hit); - this[CACHE].set(key, this[LRU_LIST].head); - trim(this); - return true; - } - has(key) { - if (!this[CACHE].has(key)) return false; - const hit = this[CACHE].get(key).value; - return !isStale(this, hit); - } - get(key) { - return get(this, key, true); - } - peek(key) { - return get(this, key, false); - } - pop() { - const node = this[LRU_LIST].tail; - if (!node) return null; - del(this, node); - return node.value; - } - del(key) { - del(this, this[CACHE].get(key)); - } - load(arr) { - // reset the cache - this.reset(); - const now = Date.now(); - // A previous serialized cache has the most recent items first - for(let l = arr.length - 1; l >= 0; l--){ - const hit = arr[l]; - const expiresAt = hit.e || 0; - if (expiresAt === 0) // the item was created without expiration in a non aged cache - this.set(hit.k, hit.v); - else { - const maxAge = expiresAt - now; - // dont add already expired items - if (maxAge > 0) this.set(hit.k, hit.v, maxAge); - } - } - } - prune() { - this[CACHE].forEach((value, key)=>get(this, key, false) - ); - } - } - const get = (self, key, doUse)=>{ - const node = self[CACHE].get(key); - if (node) { - const hit = node.value; - if (isStale(self, hit)) { - del(self, node); - if (!self[ALLOW_STALE]) return undefined; - } else if (doUse) { - if (self[UPDATE_AGE_ON_GET]) node.value.now = Date.now(); - self[LRU_LIST].unshiftNode(node); - } - return hit.value; - } - }; - const isStale = (self, hit)=>{ - if (!hit || !hit.maxAge && !self[MAX_AGE]) return false; - const diff = Date.now() - hit.now; - return hit.maxAge ? diff > hit.maxAge : self[MAX_AGE] && diff > self[MAX_AGE]; - }; - const trim = (self)=>{ - if (self[LENGTH] > self[MAX]) for(let walker = self[LRU_LIST].tail; self[LENGTH] > self[MAX] && walker !== null;){ - // We know that we're about to delete this one, and also - // what the next least recently used key will be, so just - // go ahead and set it now. - const prev = walker.prev; - del(self, walker); - walker = prev; - } - }; - const del = (self, node)=>{ - if (node) { - const hit = node.value; - if (self[DISPOSE]) self[DISPOSE](hit.key, hit.value); - self[LENGTH] -= hit.length; - self[CACHE].delete(hit.key); - self[LRU_LIST].removeNode(node); - } - }; - class Entry { - constructor(key, value, length, now, maxAge){ - this.key = key; - this.value = value; - this.length = length; - this.now = now; - this.maxAge = maxAge || 0; - } - } - const forEachStep = (self, fn, node, thisp)=>{ - let hit = node.value; - if (isStale(self, hit)) { - del(self, node); - if (!self[ALLOW_STALE]) hit = undefined; - } - if (hit) fn.call(thisp, hit.value, hit.key, self); - }; - module.exports = LRUCache; -}); -var load35 = __swcpack_require__.bind(void 0, function(module, exports) { - const ANY = Symbol('SemVer ANY'); - // hoisted class for cyclic dependency - 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; - } - 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 ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]; - const m = comp.match(r); - if (!m) throw new TypeError(`Invalid comparator: ${comp}`); - this.operator = m[1] !== undefined ? m[1] : ''; - if (this.operator === '=') this.operator = ''; - // if it literally is just '>' or '' then allow anything. - if (!m[2]) this.semver = ANY; - else this.semver = new SemVer(m[2], this.options.loose); - } - toString() { - return this.value; - } - test(version) { - debug('Comparator.test', version, this.options.loose); - if (this.semver === ANY || version === ANY) return true; - if (typeof version === 'string') try { - version = new SemVer(version, this.options); - } catch (er) { - return false; - } - return cmp(version, this.operator, this.semver, this.options); - } - intersects(comp, options) { - if (!(comp instanceof Comparator)) throw new TypeError('a Comparator is required'); - if (!options || typeof options !== 'object') options = { - loose: !!options, - includePrerelease: false - }; - 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); - } - const sameDirectionIncreasing = (this.operator === '>=' || this.operator === '>') && (comp.operator === '>=' || comp.operator === '>'); - const sameDirectionDecreasing = (this.operator === '<=' || this.operator === '<') && (comp.operator === '<=' || comp.operator === '<'); - const sameSemVer = this.semver.version === comp.semver.version; - const differentDirectionsInclusive = (this.operator === '>=' || this.operator === '<=') && (comp.operator === '>=' || comp.operator === '<='); - const oppositeDirectionsLessThan = cmp(this.semver, '<', comp.semver, options) && (this.operator === '>=' || this.operator === '>') && (comp.operator === '<=' || comp.operator === '<'); - const oppositeDirectionsGreaterThan = cmp(this.semver, '>', comp.semver, options) && (this.operator === '<=' || this.operator === '<') && (comp.operator === '>=' || comp.operator === '>'); - return sameDirectionIncreasing || sameDirectionDecreasing || sameSemVer && differentDirectionsInclusive || oppositeDirectionsLessThan || oppositeDirectionsGreaterThan; - } - } - module.exports = Comparator; - const parseOptions = load6(); - const { re , t } = load5(); - const cmp = load30(); - const debug = load4(); - const SemVer = load8(); - const Range = load36(); -}); -var load36 = __swcpack_require__.bind(void 0, function(module, exports) { - // hoisted class for cyclic dependency - class Range { - constructor(range1, options){ - options = parseOptions(options); - if (range1 instanceof Range) { - if (range1.loose === !!options.loose && range1.includePrerelease === !!options.includePrerelease) return range1; - else return new Range(range1.raw, options); - } - if (range1 instanceof Comparator) { - // just put it in the set and return - this.raw = range1.value; - this.set = [ - [ - range1 - ] - ]; - this.format(); - return this; - } - this.options = options; - this.loose = !!options.loose; - this.includePrerelease = !!options.includePrerelease; - // First, split based on boolean or || - this.raw = range1; - this.set = range1.split(/\s*\|\|\s*/)// map the range to a 2d array of comparators - .map((range)=>this.parseRange(range.trim()) - )// throw out any comparator lists that are empty - // this generally means that it was not a valid range, which is allowed - // in loose mode, but will still throw if the WHOLE range is invalid. - .filter((c)=>c.length - ); - if (!this.set.length) throw new TypeError(`Invalid SemVer Range: ${range1}`); - // if we have any that are not the null set, throw out null sets. - if (this.set.length > 1) { - // keep the first one, in case they're all null sets - 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) { - // if we have any that are *, then the range is just * - for (const c of this.set)if (c.length === 1 && isAny(c[0])) { - this.set = [ - c - ]; - break; - } - } - } - this.format(); - } - format() { - this.range = this.set.map((comps)=>{ - return comps.join(' ').trim(); - }).join('||').trim(); - return this.range; - } - toString() { - return this.range; - } - parseRange(range) { - range = range.trim(); - // memoize range parsing for performance. - // this is a very hot path, and fully deterministic. - const memoOpts = Object.keys(this.options).join(','); - const memoKey = `parseRange:${memoOpts}:${range}`; - const cached = cache.get(memoKey); - if (cached) return cached; - const loose = this.options.loose; - // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4` - const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]; - range = range.replace(hr, hyphenReplace(this.options.includePrerelease)); - debug('hyphen replace', range); - // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5` - range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace); - debug('comparator trim', range, re[t.COMPARATORTRIM]); - // `~ 1.2.3` => `~1.2.3` - range = range.replace(re[t.TILDETRIM], tildeTrimReplace); - // `^ 1.2.3` => `^1.2.3` - range = range.replace(re[t.CARETTRIM], caretTrimReplace); - // normalize spaces - range = range.split(/\s+/).join(' '); - // At this point, the range is completely trimmed and - // ready to be split into comparators. - const compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]; - const rangeList = range.split(' ').map((comp)=>parseComparator(comp, this.options) - ).join(' ').split(/\s+/)// >=0.0.0 is equivalent to * - .map((comp)=>replaceGTE0(comp, this.options) - )// in loose mode, throw out any that are not valid comparators - .filter(this.options.loose ? (comp)=>!!comp.match(compRe) - : ()=>true - ).map((comp)=>new Comparator(comp, this.options) - ); - rangeList.length; - const rangeMap = new Map(); - for (const comp1 of rangeList){ - if (isNullSet(comp1)) return [ - comp1 - ]; - rangeMap.set(comp1.value, comp1); - } - if (rangeMap.size > 1 && rangeMap.has('')) rangeMap.delete(''); - const result = [ - ...rangeMap.values() - ]; - cache.set(memoKey, result); - return result; - } - intersects(range, options) { - if (!(range instanceof Range)) throw new TypeError('a Range is required'); - return this.set.some((thisComparators)=>{ - return isSatisfiable(thisComparators, options) && range.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(version) { - if (!version) return false; - if (typeof version === 'string') try { - version = new SemVer(version, this.options); - } catch (er) { - return false; - } - for(let i = 0; i < this.set.length; i++){ - if (testSet(this.set[i], version, this.options)) return true; - } - return false; - } - } - module.exports = Range; - const LRU = load34(); - const cache = new LRU({ - max: 1000 - }); - const parseOptions = load6(); - const Comparator = load35(); - const debug = load4(); - const SemVer = load8(); - const { re , t , comparatorTrimReplace , tildeTrimReplace , caretTrimReplace } = load5(); - const isNullSet = (c)=>c.value === '<0.0.0-0' - ; - const isAny = (c)=>c.value === '' - ; - // take a set of comparators and determine whether there - // exists a version which can satisfy it - 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; - }; - // comprised of xranges, tildes, stars, and gtlt's at this point. - // already replaced the hyphen ranges - // turn into a set of JUST comparators. - 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 = (id)=>!id || id.toLowerCase() === 'x' || id === '*' - ; - // ~, ~> --> * (any, kinda silly) - // ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0 - // ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0 - // ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0 - // ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0 - // ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0 - const replaceTildes = (comp2, options)=>comp2.trim().split(/\s+/).map((comp)=>{ - return replaceTilde(comp, options); - }).join(' ') - ; - const replaceTilde = (comp, options)=>{ - const r = options.loose ? re[t.TILDELOOSE] : re[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)) // ~1.2 == >=1.2.0 <1.3.0-0 - 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 // ~1.2.3 == >=1.2.3 <1.3.0-0 - ret = `>=${M}.${m}.${p} <${M}.${+m + 1}.0-0`; - debug('tilde return', ret); - return ret; - }); - }; - // ^ --> * (any, kinda silly) - // ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0 - // ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0 - // ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0 - // ^1.2.3 --> >=1.2.3 <2.0.0-0 - // ^1.2.0 --> >=1.2.0 <2.0.0-0 - const replaceCarets = (comp3, options)=>comp3.trim().split(/\s+/).map((comp)=>{ - return replaceCaret(comp, options); - }).join(' ') - ; - const replaceCaret = (comp, options)=>{ - debug('caret', comp, options); - const r = options.loose ? re[t.CARETLOOSE] : re[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 = (comp4, options)=>{ - debug('replaceXRanges', comp4, options); - return comp4.split(/\s+/).map((comp)=>{ - return replaceXRange(comp, options); - }).join(' '); - }; - const replaceXRange = (comp, options)=>{ - comp = comp.trim(); - const r = options.loose ? re[t.XRANGELOOSE] : re[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 = ''; - // if we're including prereleases in the match, then we need - // to fix this to -0, the lowest possible prerelease value - pr = options.includePrerelease ? '-0' : ''; - if (xM) { - if (gtlt === '>' || gtlt === '<') // nothing is allowed - ret = '<0.0.0-0'; - else // nothing is forbidden - ret = '*'; - } else if (gtlt && anyX) { - // we know patch is an x, because we have any x at all. - // replace X with 0 - if (xm) m = 0; - p = 0; - if (gtlt === '>') { - // >1 => >=2.0.0 - // >1.2 => >=1.3.0 - gtlt = '>='; - if (xm) { - M = +M + 1; - m = 0; - p = 0; - } else { - m = +m + 1; - p = 0; - } - } else if (gtlt === '<=') { - // <=0.7.x is actually <0.8.0, since any 0.7.x should - // pass. Similarly, <=7.x is actually <8.0.0, etc. - 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; - }); - }; - // Because * is AND-ed with everything else in the comparator, - // and '' means "any version", just remove the *s entirely. - const replaceStars = (comp, options)=>{ - debug('replaceStars', comp, options); - // Looseness is ignored here. star is always as loose as it gets! - return comp.trim().replace(re[t.STAR], ''); - }; - const replaceGTE0 = (comp, options)=>{ - debug('replaceGTE0', comp, options); - return comp.trim().replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], ''); - }; - // This function is passed to string.replace(re[t.HYPHENRANGE]) - // M, m, patch, prerelease, build - // 1.2 - 3.4.5 => >=1.2.0 <=3.4.5 - // 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do - // 1.2 - 3.4 => >=1.2.0 <3.5.0-0 - const hyphenReplace = (incPr)=>($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb)=>{ - 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, version, options)=>{ - for(let i = 0; i < set.length; i++){ - if (!set[i].test(version)) return false; - } - if (version.prerelease.length && !options.includePrerelease) { - // Find the set of versions that are allowed to have prereleases - // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0 - // That should allow `1.2.3-pr.2` to pass. - // However, `1.2.4-alpha.notready` should NOT be allowed, - // even though it's within the range set by the comparators. - 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 === version.major && allowed.minor === version.minor && allowed.patch === version.patch) return true; - } - } - // Version has a -pre, but it's not one of the ones we like. - return false; - } - return true; - }; -}); -var load37 = __swcpack_require__.bind(void 0, function(module, exports) { - const Range = load36(); - const satisfies = (version, range, options)=>{ - try { - range = new Range(range, options); - } catch (er) { - return false; - } - return range.test(version); - }; - module.exports = satisfies; -}); -var load38 = __swcpack_require__.bind(void 0, function(module, exports) { - const Range = load36(); - // Mostly just for testing and legacy API reasons - const toComparators = (range, options)=>new Range(range, options).set.map((comp)=>comp.map((c)=>c.value - ).join(' ').trim().split(' ') - ) - ; - module.exports = toComparators; -}); -var load39 = __swcpack_require__.bind(void 0, function(module, exports) { - const SemVer = load8(); - const Range = load36(); - const maxSatisfying = (versions, range, options)=>{ - let max = null; - let maxSV = null; - let rangeObj = null; - try { - rangeObj = new Range(range, options); - } catch (er) { - return null; - } - versions.forEach((v)=>{ - if (rangeObj.test(v)) // satisfies(v, range, options) - { - if (!max || maxSV.compare(v) === -1) { - // compare(max, v, true) - max = v; - maxSV = new SemVer(max, options); - } - } - }); - return max; - }; - module.exports = maxSatisfying; -}); -var load40 = __swcpack_require__.bind(void 0, function(module, exports) { - const SemVer = load8(); - const Range = load36(); - const minSatisfying = (versions, range, options)=>{ - let min = null; - let minSV = null; - let rangeObj = null; - try { - rangeObj = new Range(range, options); - } catch (er) { - return null; - } - versions.forEach((v)=>{ - if (rangeObj.test(v)) // satisfies(v, range, options) - { - if (!min || minSV.compare(v) === 1) { - // compare(min, v, true) - min = v; - minSV = new SemVer(min, options); - } - } - }); - return min; - }; - module.exports = minSatisfying; -}); -var load41 = __swcpack_require__.bind(void 0, function(module, exports) { - const SemVer = load8(); - const Range = load36(); - const gt = load25(); - const minVersion = (range, loose)=>{ - range = new Range(range, loose); - let minver = new SemVer('0.0.0'); - if (range.test(minver)) return minver; - minver = new SemVer('0.0.0-0'); - if (range.test(minver)) return minver; - minver = null; - for(let i = 0; i < range.set.length; ++i){ - const comparators = range.set[i]; - let setMin = null; - comparators.forEach((comparator)=>{ - // Clone to avoid manipulating the comparator's semver object. - const compver = new SemVer(comparator.semver.version); - switch(comparator.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: ${comparator.operator}`); - } - }); - if (setMin && (!minver || gt(minver, setMin))) minver = setMin; - } - if (minver && range.test(minver)) return minver; - return null; - }; - module.exports = minVersion; -}); -var load42 = __swcpack_require__.bind(void 0, function(module, exports) { - const Range = load36(); - const validRange = (range, options)=>{ - try { - // Return '*' instead of '' so that truthiness works. - // This will throw if it's invalid anyway - return new Range(range, options).range || '*'; - } catch (er) { - return null; - } - }; - module.exports = validRange; -}); -var load43 = __swcpack_require__.bind(void 0, function(module, exports) { - const SemVer = load8(); - const Comparator = load35(); - const { ANY } = Comparator; - const Range = load36(); - const satisfies = load37(); - const gt = load25(); - const lt = load26(); - const lte = load29(); - const gte = load28(); - const outside = (version, range, hilo, options)=>{ - version = new SemVer(version, options); - range = new Range(range, 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 it satisfies the range it is not outside - if (satisfies(version, range, options)) return false; - // From now on, variable terms are as if we're in "gtr" mode. - // but note that everything is flipped for the "ltr" function. - for(let i = 0; i < range.set.length; ++i){ - const comparators = range.set[i]; - let high = null; - let low = null; - comparators.forEach((comparator)=>{ - if (comparator.semver === ANY) comparator = new Comparator('>=0.0.0'); - high = high || comparator; - low = low || comparator; - if (gtfn(comparator.semver, high.semver, options)) high = comparator; - else if (ltfn(comparator.semver, low.semver, options)) low = comparator; - }); - // If the edge version comparator has a operator then our version - // isn't outside it - if (high.operator === comp || high.operator === ecomp) return false; - // If the lowest version comparator has an operator and our version - // is less than it then it isn't higher than the range - if ((!low.operator || low.operator === comp) && ltefn(version, low.semver)) return false; - else if (low.operator === ecomp && ltfn(version, low.semver)) return false; - } - return true; - }; - module.exports = outside; -}); -var load44 = __swcpack_require__.bind(void 0, function(module, exports) { - // Determine if version is greater than all the versions possible in the range. - const outside = load43(); - const gtr = (version, range, options)=>outside(version, range, '>', options) - ; - module.exports = gtr; -}); -var load45 = __swcpack_require__.bind(void 0, function(module, exports) { - const outside = load43(); - // Determine if version is less than all the versions possible in the range - const ltr = (version, range, options)=>outside(version, range, '<', options) - ; - module.exports = ltr; -}); -var load46 = __swcpack_require__.bind(void 0, function(module, exports) { - const Range = load36(); - const intersects = (r1, r2, options)=>{ - r1 = new Range(r1, options); - r2 = new Range(r2, options); - return r1.intersects(r2); - }; - module.exports = intersects; -}); -var load47 = __swcpack_require__.bind(void 0, function(module, exports) { - // given a set of versions and a range, create a "simplified" range - // that includes the same versions that the original range does - // If the original range is shorter than the simplified one, return that. - const satisfies = load37(); - const compare = load13(); - module.exports = (versions, range, options)=>{ - const set = []; - let min = null; - let prev = null; - const v = versions.sort((a, b)=>compare(a, b, options) - ); - for (const version of v){ - const included = satisfies(version, range, options); - if (included) { - prev = version; - if (!min) min = version; - } else { - if (prev) set.push([ - min, - prev - ]); - prev = null; - min = null; - } - } - if (min) set.push([ - min, - null - ]); - const ranges = []; - for (const [min1, max] of set){ - if (min1 === max) ranges.push(min1); - else if (!max && min1 === v[0]) ranges.push('*'); - else if (!max) ranges.push(`>=${min1}`); - else if (min1 === v[0]) ranges.push(`<=${max}`); - else ranges.push(`${min1} - ${max}`); - } - const simplified = ranges.join(' || '); - const original = typeof range.raw === 'string' ? range.raw : String(range); - return simplified.length < original.length ? simplified : range; - }; -}); -var load48 = __swcpack_require__.bind(void 0, function(module, exports) { - const Range = load36(); - const Comparator = load35(); - const { ANY } = Comparator; - const satisfies = load37(); - const compare = load13(); - // Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff: - // - Every simple range `r1, r2, ...` is a null set, OR - // - Every simple range `r1, r2, ...` which is not a null set is a subset of - // some `R1, R2, ...` - // - // Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff: - // - If c is only the ANY comparator - // - If C is only the ANY comparator, return true - // - Else if in prerelease mode, return false - // - else replace c with `[>=0.0.0]` - // - If C is only the ANY comparator - // - if in prerelease mode, return true - // - else replace C with `[>=0.0.0]` - // - Let EQ be the set of = comparators in c - // - If EQ is more than one, return true (null set) - // - Let GT be the highest > or >= comparator in c - // - Let LT be the lowest < or <= comparator in c - // - If GT and LT, and GT.semver > LT.semver, return true (null set) - // - If any C is a = range, and GT or LT are set, return false - // - If EQ - // - If GT, and EQ does not satisfy GT, return true (null set) - // - If LT, and EQ does not satisfy LT, return true (null set) - // - If EQ satisfies every C, return true - // - Else return false - // - If GT - // - If GT.semver is lower than any > or >= comp in C, return false - // - If GT is >=, and GT.semver does not satisfy every C, return false - // - If GT.semver has a prerelease, and not in prerelease mode - // - If no C has a prerelease and the GT.semver tuple, return false - // - If LT - // - If LT.semver is greater than any < or <= comp in C, return false - // - If LT is <=, and LT.semver does not satisfy every C, return false - // - If GT.semver has a prerelease, and not in prerelease mode - // - If no C has a prerelease and the LT.semver tuple, return false - // - Else return true - const subset = (sub, dom, options = {})=>{ - if (sub === dom) return true; - sub = new Range(sub, options); - dom = new Range(dom, options); - let sawNonNull = false; - OUTER: for (const simpleSub of sub.set){ - for (const simpleDom of dom.set){ - const isSub = simpleSubset(simpleSub, simpleDom, options); - sawNonNull = sawNonNull || isSub !== null; - if (isSub) continue OUTER; - } - // the null set is a subset of everything, but null simple ranges in - // a complex range should be ignored. so if we saw a non-null range, - // then we know this isn't a subset, but if EVERY simple range was null, - // then it is a subset. - if (sawNonNull) return false; - } - return true; - }; - const simpleSubset = (sub, dom, options)=>{ - if (sub === dom) return true; - if (sub.length === 1 && sub[0].semver === ANY) { - if (dom.length === 1 && dom[0].semver === ANY) return true; - else if (options.includePrerelease) sub = [ - new Comparator('>=0.0.0-0') - ]; - else sub = [ - new Comparator('>=0.0.0') - ]; - } - if (dom.length === 1 && dom[0].semver === ANY) { - if (options.includePrerelease) return true; - else dom = [ - new Comparator('>=0.0.0') - ]; - } - const eqSet = new Set(); - let gt, lt; - for (const c of sub){ - if (c.operator === '>' || c.operator === '>=') gt = higherGT(gt, c, options); - else if (c.operator === '<' || c.operator === '<=') lt = lowerLT(lt, c, options); - else eqSet.add(c.semver); - } - if (eqSet.size > 1) return null; - let gtltComp; - if (gt && lt) { - gtltComp = compare(gt.semver, lt.semver, options); - if (gtltComp > 0) return null; - else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) return null; - } - // will iterate one or zero times - for (const eq of eqSet){ - if (gt && !satisfies(eq, String(gt), options)) return null; - if (lt && !satisfies(eq, String(lt), options)) return null; - for (const c of dom){ - if (!satisfies(eq, String(c), options)) return false; - } - return true; - } - let higher, lower; - let hasDomLT, hasDomGT; - // if the subset has a prerelease, we need a comparator in the superset - // with the same tuple and a prerelease, or it's not a subset - let needDomLTPre = lt && !options.includePrerelease && lt.semver.prerelease.length ? lt.semver : false; - let needDomGTPre = gt && !options.includePrerelease && gt.semver.prerelease.length ? gt.semver : false; - // exception: <1.2.3-0 is the same as <1.2.3 - if (needDomLTPre && needDomLTPre.prerelease.length === 1 && lt.operator === '<' && needDomLTPre.prerelease[0] === 0) needDomLTPre = false; - for (const c1 of dom){ - hasDomGT = hasDomGT || c1.operator === '>' || c1.operator === '>='; - hasDomLT = hasDomLT || c1.operator === '<' || c1.operator === '<='; - if (gt) { - if (needDomGTPre) { - if (c1.semver.prerelease && c1.semver.prerelease.length && c1.semver.major === needDomGTPre.major && c1.semver.minor === needDomGTPre.minor && c1.semver.patch === needDomGTPre.patch) needDomGTPre = false; - } - if (c1.operator === '>' || c1.operator === '>=') { - higher = higherGT(gt, c1, options); - if (higher === c1 && higher !== gt) return false; - } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c1), options)) return false; - } - if (lt) { - if (needDomLTPre) { - if (c1.semver.prerelease && c1.semver.prerelease.length && c1.semver.major === needDomLTPre.major && c1.semver.minor === needDomLTPre.minor && c1.semver.patch === needDomLTPre.patch) needDomLTPre = false; - } - if (c1.operator === '<' || c1.operator === '<=') { - lower = lowerLT(lt, c1, options); - if (lower === c1 && lower !== lt) return false; - } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c1), options)) return false; - } - if (!c1.operator && (lt || gt) && gtltComp !== 0) return false; - } - // if there was a < or >, and nothing in the dom, then must be false - // UNLESS it was limited by another range in the other direction. - // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0 - if (gt && hasDomLT && !lt && gtltComp !== 0) return false; - if (lt && hasDomGT && !gt && gtltComp !== 0) return false; - // we needed a prerelease range in a specific tuple, but didn't get one - // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0, - // because it includes prereleases in the 1.2.3 tuple - if (needDomGTPre || needDomLTPre) return false; - return true; - }; - // >=1.2.3 is lower than >1.2.3 - const higherGT = (a, b, options)=>{ - if (!a) return b; - const comp = compare(a.semver, b.semver, options); - return comp > 0 ? a : comp < 0 ? b : b.operator === '>' && a.operator === '>=' ? b : a; - }; - // <=1.2.3 is higher than <1.2.3 - const lowerLT = (a, b, options)=>{ - if (!a) return b; - const comp = compare(a.semver, b.semver, options); - return comp < 0 ? a : comp > 0 ? b : b.operator === '<' && a.operator === '<=' ? b : a; - }; - module.exports = subset; -}); -var load49 = __swcpack_require__.bind(void 0, function(module, exports) { - // just pre-load all the stuff that index.js lazily exports - const internalRe = load5(); - module.exports = { - re: internalRe.re, - src: internalRe.src, - tokens: internalRe.t, - SEMVER_SPEC_VERSION: load3().SEMVER_SPEC_VERSION, - SemVer: load8(), - compareIdentifiers: load7().compareIdentifiers, - rcompareIdentifiers: load7().rcompareIdentifiers, - parse: load9(), - valid: load10(), - clean: load11(), - inc: load12(), - diff: load15(), - major: load16(), - minor: load17(), - patch: load18(), - prerelease: load19(), - compare: load13(), - rcompare: load20(), - compareLoose: load21(), - compareBuild: load22(), - sort: load23(), - rsort: load24(), - gt: load25(), - lt: load26(), - eq: load14(), - neq: load27(), - gte: load28(), - lte: load29(), - cmp: load30(), - coerce: load31(), - Comparator: load35(), - Range: load36(), - satisfies: load37(), - toComparators: load38(), - maxSatisfying: load39(), - minSatisfying: load40(), - minVersion: load41(), - validRange: load42(), - outside: load43(), - gtr: load44(), - ltr: load45(), - intersects: load46(), - simplifyRange: load47(), - subset: load48() - }; -}); -var load50 = __swcpack_require__.bind(void 0, function(module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true @@ -2223,7 +203,7 @@ var load50 = __swcpack_require__.bind(void 0, function(module, exports) { exports.performAction = performAction; var core = _interopRequireWildcard(require("@actions/core")); var cli = _interopRequireWildcard(require("@actions/exec")); - var _semver = load49(); + var _semver = _interopRequireDefault(require("semver")); var _packager1 = load2(); function getBinaryName(name, forWindows = false) { const bin = name.toLowerCase().replace('-cli', ''); @@ -2278,9 +258,9 @@ var load50 = __swcpack_require__.bind(void 0, function(module, exports) { const binaryName = getBinaryName(name); const latest = await (0, _packager1).resolveVersion(name, 'latest'); const current = await (0, _packager1).resolveVersion(name, core.getInput(`${getBinaryName(name)}-version`) || 'latest'); - if ((0, _semver).diff(latest, current) === 'major') { + if (_semver.default.diff(latest, current) === 'major') { core.warning(`There is a new major version available of the Expo CLI (${latest})`); - core.warning(`If you run into issues, try upgrading your workflow to "${binaryName}-version: ${(0, _semver).major(latest)}.x"`); + core.warning(`If you run into issues, try upgrading your workflow to "${binaryName}-version: ${_semver.default.major(latest)}.x"`); } } async function handleError(name, error) { @@ -2304,7 +284,7 @@ exports.setupAction = setupAction; var _core = require("@actions/core"); var _install = load1(); var _packager = load2(); -var tools = _interopRequireWildcard(load50()); +var tools = _interopRequireWildcard(load3()); // Auto-execute in GitHub actions tools.performAction(setupAction); async function setupAction() { diff --git a/build/setup.js.map b/build/setup.js.map index 62d6bfda..f12dc440 100644 --- a/build/setup.js.map +++ b/build/setup.js.map @@ -1 +1 @@ -{"version":3,"sources":["/Users/cedric/Projects/expo/expo-github-action/src/cache.ts","/Users/cedric/Projects/expo/expo-github-action/src/install.ts","/Users/cedric/Projects/expo/expo-github-action/src/packager.ts","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/internal/constants.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/internal/debug.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/internal/re.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/internal/parse-options.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/internal/identifiers.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/classes/semver.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/functions/parse.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/functions/valid.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/functions/clean.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/functions/inc.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/functions/compare.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/functions/eq.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/functions/diff.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/functions/major.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/functions/minor.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/functions/patch.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/functions/prerelease.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/functions/rcompare.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/functions/compare-loose.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/functions/compare-build.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/functions/sort.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/functions/rsort.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/functions/gt.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/functions/lt.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/functions/neq.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/functions/gte.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/functions/lte.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/functions/cmp.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/functions/coerce.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/yallist/iterator.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/yallist/yallist.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/lru-cache/index.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/classes/comparator.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/classes/range.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/functions/satisfies.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/ranges/to-comparators.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/ranges/max-satisfying.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/ranges/min-satisfying.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/ranges/min-version.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/ranges/valid.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/ranges/outside.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/ranges/gtr.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/ranges/ltr.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/ranges/intersects.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/ranges/simplify.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/ranges/subset.js","/Users/cedric/Projects/expo/expo-github-action/node_modules/semver/index.js","/Users/cedric/Projects/expo/expo-github-action/src/tools.ts","/Users/cedric/Projects/expo/expo-github-action/src/actions/setup.ts"],"sourcesContent":["import { ReserveCacheError, restoreCache, saveCache } from '@actions/cache';\nimport * as core from '@actions/core';\nimport * as toolCache from '@actions/tool-cache';\nimport path from 'path';\nimport os from 'os';\n\nimport type { InstallConfig } from './install';\n\nexport type CacheConfig = Omit;\n\n/**\n * Get the path to the `expo-cli` from cache, if any.\n * Note, this cache is **NOT** shared between jobs.\n *\n * @see https://github.com/actions/toolkit/issues/47\n */\nexport async function fromLocalCache(config: CacheConfig): Promise {\n return toolCache.find(config.package, config.version);\n}\n\n/**\n * Store the root of `expo-cli` in the cache, for future reuse.\n * Note, this cache is **NOT** shared between jobs.\n *\n * @see https://github.com/actions/toolkit/issues/47\n */\nexport async function toLocalCache(root: string, config: CacheConfig): Promise {\n return toolCache.cacheDir(root, config.package, config.version);\n}\n\n/**\n * Download the remotely stored `expo-cli` from cache, if any.\n * Note, this cache is shared between jobs.\n */\nexport async function fromRemoteCache(config: CacheConfig): Promise {\n // see: https://github.com/actions/toolkit/blob/8a4134761f09d0d97fb15f297705fd8644fef920/packages/tool-cache/src/tool-cache.ts#L401\n const target = path.join(process.env['RUNNER_TOOL_CACHE'] || '', config.package, config.version, os.arch());\n const cacheKey = config.cacheKey || getRemoteKey(config);\n\n try {\n // When running with nektos/act, or other custom environments, the cache might not be set up.\n const hit = await restoreCache([target], cacheKey);\n if (hit) {\n return target;\n }\n } catch (error) {\n if (!handleRemoteCacheError(error)) {\n throw error;\n }\n }\n}\n\n/**\n * Store the root of `expo-cli` in the remote cache, for future reuse.\n * Note, this cache is shared between jobs.\n */\nexport async function toRemoteCache(source: string, config: CacheConfig): Promise {\n const cacheKey = config.cacheKey || getRemoteKey(config);\n\n try {\n await saveCache([source], cacheKey);\n } catch (error) {\n if (!handleRemoteCacheError(error)) {\n throw error;\n }\n }\n}\n\n/**\n * Get the cache key to use when (re)storing the Expo CLI from remote cache.\n */\nfunction getRemoteKey(config: Omit): string {\n return `${config.package}-${process.platform}-${os.arch()}-${config.packager}-${config.version}`;\n}\n\n/**\n * Handle any incoming errors from cache methods.\n * This can include actual errors like `ReserveCacheErrors` or unavailability errors.\n * When the error is handled, it MUST provide feedback for the developer.\n *\n * @returns If the error was handled properly.\n */\nfunction handleRemoteCacheError(error: Error): boolean {\n const isReserveCacheError = error instanceof ReserveCacheError;\n const isCacheUnavailable = error.message.toLowerCase().includes('cache service url not found');\n\n if (isReserveCacheError || isCacheUnavailable) {\n core.warning('Skipping remote cache storage, encountered error:');\n core.warning(error.message);\n return true;\n }\n\n return false;\n}\n","import * as core from '@actions/core';\nimport * as cli from '@actions/exec';\nimport * as io from '@actions/io';\nimport * as path from 'path';\n\nimport { fromLocalCache, fromRemoteCache, toLocalCache, toRemoteCache } from './cache';\nimport { PackageName } from './tools';\n\nexport type InstallConfig = {\n /** The exact version to install */\n version: string;\n /** The name of the package to install */\n package: PackageName;\n /** The packager to install with, likely to be `yarn` or `npm` */\n packager: string;\n /** If remote caching is enabled or not */\n cache?: boolean;\n /** The custom remote cache key */\n cacheKey?: string;\n};\n\n/**\n * Install `expo-cli`, by version, using the packager.\n * Here you can provide any semver range or dist tag used in the registry.\n * It returns the path where Expo is installed.\n */\nexport async function install(config: InstallConfig): Promise {\n let root: string | undefined = await fromLocalCache(config);\n\n if (!root && config.cache) {\n root = await fromRemoteCache(config);\n } else {\n core.info('Skipping remote cache, not enabled...');\n }\n\n if (!root) {\n root = await fromPackager(config);\n root = await toLocalCache(root, config);\n\n if (config.cache) {\n await toRemoteCache(root, config);\n }\n }\n\n return path.join(root, 'node_modules', '.bin');\n}\n\n/**\n * Install `expo-cli`, by version, using npm or yarn.\n * It creates a temporary directory to store all required files.\n */\nexport async function fromPackager(config: InstallConfig): Promise {\n const root = process.env['RUNNER_TEMP'] || '';\n const tool = await io.which(config.packager);\n\n await io.mkdirP(root);\n await cli.exec(tool, ['add', `${config.package}@${config.version}`], { cwd: root });\n\n return root;\n}\n","import { exec } from '@actions/exec';\n\n/**\n * Resolve a package with version range to an exact version.\n * This is useful to invalidate the cache _and_ using dist-tags or version ranges.\n * It executes `npm info` and parses the latest manifest.\n */\nexport async function resolveVersion(name: string, range: string): Promise {\n let stdout = '';\n\n try {\n await exec('npm', ['info', `${name}@${range}`, 'version', '--json'], {\n silent: true,\n listeners: {\n stdout(data) {\n stdout += data.toString();\n },\n },\n });\n } catch (error) {\n throw new Error(`Could not resolve version \"${range}\" of \"${name}\", reason:\\n${error.message || error}`);\n }\n\n // thanks npm, for returning a \"x.x.x\" json value...\n if (stdout.startsWith('\"')) {\n stdout = `[${stdout}]`;\n }\n\n return JSON.parse(stdout).at(-1);\n}\n","// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\nmodule.exports = {\n SEMVER_SPEC_VERSION,\n MAX_LENGTH,\n MAX_SAFE_INTEGER,\n MAX_SAFE_COMPONENT_LENGTH\n}\n","const debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","const { MAX_SAFE_COMPONENT_LENGTH } = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst src = exports.src = []\nconst t = exports.t = {}\nlet R = 0\n\nconst createToken = (name, value, isGlobal) => {\n const index = R++\n debug(index, value)\n t[name] = index\n src[index] = value\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '[0-9]+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', '\\\\d*[a-zA-Z-][a-zA-Z0-9-]*')\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+')\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCE', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\.0\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\.0\\.0-0\\\\s*$')\n","// parse out just the options we care about so we always get a consistent\n// obj with keys in a consistent order.\nconst opts = ['includePrerelease', 'loose', 'rtl']\nconst parseOptions = options =>\n !options ? {}\n : typeof options !== 'object' ? { loose: true }\n : opts.filter(k => options[k]).reduce((options, k) => {\n options[k] = true\n return options\n }, {})\nmodule.exports = parseOptions\n","const numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers\n}\n","const debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return (\n compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n )\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.format()\n this.raw = this.version\n return this\n }\n}\n\nmodule.exports = SemVer\n","const {MAX_LENGTH} = require('../internal/constants')\nconst { re, t } = require('../internal/re')\nconst SemVer = require('../classes/semver')\n\nconst parseOptions = require('../internal/parse-options')\nconst parse = (version, options) => {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n const r = options.loose ? re[t.LOOSE] : re[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nmodule.exports = parse\n","const parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n","const parse = require('./parse')\nconst clean = (version, options) => {\n const s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\nmodule.exports = clean\n","const SemVer = require('../classes/semver')\n\nconst inc = (version, release, options, identifier) => {\n if (typeof (options) === 'string') {\n identifier = options\n options = undefined\n }\n\n try {\n return new SemVer(version, options).inc(release, identifier).version\n } catch (er) {\n return null\n }\n}\nmodule.exports = inc\n","const SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n","const compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n","const parse = require('./parse')\nconst eq = require('./eq')\n\nconst diff = (version1, version2) => {\n if (eq(version1, version2)) {\n return null\n } else {\n const v1 = parse(version1)\n const v2 = parse(version2)\n const hasPre = v1.prerelease.length || v2.prerelease.length\n const prefix = hasPre ? 'pre' : ''\n const defaultResult = hasPre ? 'prerelease' : ''\n for (const key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return prefix + key\n }\n }\n }\n return defaultResult // may be undefined\n }\n}\nmodule.exports = diff\n","const SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n","const SemVer = require('../classes/semver')\nconst minor = (a, loose) => new SemVer(a, loose).minor\nmodule.exports = minor\n","const SemVer = require('../classes/semver')\nconst patch = (a, loose) => new SemVer(a, loose).patch\nmodule.exports = patch\n","const parse = require('./parse')\nconst prerelease = (version, options) => {\n const parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\nmodule.exports = prerelease\n","const compare = require('./compare')\nconst rcompare = (a, b, loose) => compare(b, a, loose)\nmodule.exports = rcompare\n","const compare = require('./compare')\nconst compareLoose = (a, b) => compare(a, b, true)\nmodule.exports = compareLoose\n","const SemVer = require('../classes/semver')\nconst compareBuild = (a, b, loose) => {\n const versionA = new SemVer(a, loose)\n const versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\nmodule.exports = compareBuild\n","const compareBuild = require('./compare-build')\nconst sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))\nmodule.exports = sort\n","const compareBuild = require('./compare-build')\nconst rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose))\nmodule.exports = rsort\n","const compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n","const compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n","const compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n","const compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n","const compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n","const eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n switch (op) {\n case '===':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a === b\n\n case '!==':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError(`Invalid operator: ${op}`)\n }\n}\nmodule.exports = cmp\n","const SemVer = require('../classes/semver')\nconst parse = require('./parse')\nconst {re, t} = require('../internal/re')\n\nconst coerce = (version, options) => {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n let match = null\n if (!options.rtl) {\n match = version.match(re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n let next\n while ((next = re[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n re[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null)\n return null\n\n return parse(`${match[2]}.${match[3] || '0'}.${match[4] || '0'}`, options)\n}\nmodule.exports = coerce\n","'use strict'\nmodule.exports = function (Yallist) {\n Yallist.prototype[Symbol.iterator] = function* () {\n for (let walker = this.head; walker; walker = walker.next) {\n yield walker.value\n }\n }\n}\n","'use strict'\nmodule.exports = Yallist\n\nYallist.Node = Node\nYallist.create = Yallist\n\nfunction Yallist (list) {\n var self = this\n if (!(self instanceof Yallist)) {\n self = new Yallist()\n }\n\n self.tail = null\n self.head = null\n self.length = 0\n\n if (list && typeof list.forEach === 'function') {\n list.forEach(function (item) {\n self.push(item)\n })\n } else if (arguments.length > 0) {\n for (var i = 0, l = arguments.length; i < l; i++) {\n self.push(arguments[i])\n }\n }\n\n return self\n}\n\nYallist.prototype.removeNode = function (node) {\n if (node.list !== this) {\n throw new Error('removing node which does not belong to this list')\n }\n\n var next = node.next\n var prev = node.prev\n\n if (next) {\n next.prev = prev\n }\n\n if (prev) {\n prev.next = next\n }\n\n if (node === this.head) {\n this.head = next\n }\n if (node === this.tail) {\n this.tail = prev\n }\n\n node.list.length--\n node.next = null\n node.prev = null\n node.list = null\n\n return next\n}\n\nYallist.prototype.unshiftNode = function (node) {\n if (node === this.head) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var head = this.head\n node.list = this\n node.next = head\n if (head) {\n head.prev = node\n }\n\n this.head = node\n if (!this.tail) {\n this.tail = node\n }\n this.length++\n}\n\nYallist.prototype.pushNode = function (node) {\n if (node === this.tail) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var tail = this.tail\n node.list = this\n node.prev = tail\n if (tail) {\n tail.next = node\n }\n\n this.tail = node\n if (!this.head) {\n this.head = node\n }\n this.length++\n}\n\nYallist.prototype.push = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n push(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.unshift = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n unshift(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.pop = function () {\n if (!this.tail) {\n return undefined\n }\n\n var res = this.tail.value\n this.tail = this.tail.prev\n if (this.tail) {\n this.tail.next = null\n } else {\n this.head = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.shift = function () {\n if (!this.head) {\n return undefined\n }\n\n var res = this.head.value\n this.head = this.head.next\n if (this.head) {\n this.head.prev = null\n } else {\n this.tail = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.forEach = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.head, i = 0; walker !== null; i++) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.next\n }\n}\n\nYallist.prototype.forEachReverse = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.prev\n }\n}\n\nYallist.prototype.get = function (n) {\n for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.next\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.getReverse = function (n) {\n for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.prev\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.map = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.head; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.next\n }\n return res\n}\n\nYallist.prototype.mapReverse = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.tail; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.prev\n }\n return res\n}\n\nYallist.prototype.reduce = function (fn, initial) {\n var acc\n var walker = this.head\n if (arguments.length > 1) {\n acc = initial\n } else if (this.head) {\n walker = this.head.next\n acc = this.head.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = 0; walker !== null; i++) {\n acc = fn(acc, walker.value, i)\n walker = walker.next\n }\n\n return acc\n}\n\nYallist.prototype.reduceReverse = function (fn, initial) {\n var acc\n var walker = this.tail\n if (arguments.length > 1) {\n acc = initial\n } else if (this.tail) {\n walker = this.tail.prev\n acc = this.tail.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = this.length - 1; walker !== null; i--) {\n acc = fn(acc, walker.value, i)\n walker = walker.prev\n }\n\n return acc\n}\n\nYallist.prototype.toArray = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.head; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.next\n }\n return arr\n}\n\nYallist.prototype.toArrayReverse = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.tail; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.prev\n }\n return arr\n}\n\nYallist.prototype.slice = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n walker = walker.next\n }\n for (; walker !== null && i < to; i++, walker = walker.next) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.sliceReverse = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n walker = walker.prev\n }\n for (; walker !== null && i > from; i--, walker = walker.prev) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.splice = function (start, deleteCount, ...nodes) {\n if (start > this.length) {\n start = this.length - 1\n }\n if (start < 0) {\n start = this.length + start;\n }\n\n for (var i = 0, walker = this.head; walker !== null && i < start; i++) {\n walker = walker.next\n }\n\n var ret = []\n for (var i = 0; walker && i < deleteCount; i++) {\n ret.push(walker.value)\n walker = this.removeNode(walker)\n }\n if (walker === null) {\n walker = this.tail\n }\n\n if (walker !== this.head && walker !== this.tail) {\n walker = walker.prev\n }\n\n for (var i = 0; i < nodes.length; i++) {\n walker = insert(this, walker, nodes[i])\n }\n return ret;\n}\n\nYallist.prototype.reverse = function () {\n var head = this.head\n var tail = this.tail\n for (var walker = head; walker !== null; walker = walker.prev) {\n var p = walker.prev\n walker.prev = walker.next\n walker.next = p\n }\n this.head = tail\n this.tail = head\n return this\n}\n\nfunction insert (self, node, value) {\n var inserted = node === self.head ?\n new Node(value, null, node, self) :\n new Node(value, node, node.next, self)\n\n if (inserted.next === null) {\n self.tail = inserted\n }\n if (inserted.prev === null) {\n self.head = inserted\n }\n\n self.length++\n\n return inserted\n}\n\nfunction push (self, item) {\n self.tail = new Node(item, self.tail, null, self)\n if (!self.head) {\n self.head = self.tail\n }\n self.length++\n}\n\nfunction unshift (self, item) {\n self.head = new Node(item, null, self.head, self)\n if (!self.tail) {\n self.tail = self.head\n }\n self.length++\n}\n\nfunction Node (value, prev, next, list) {\n if (!(this instanceof Node)) {\n return new Node(value, prev, next, list)\n }\n\n this.list = list\n this.value = value\n\n if (prev) {\n prev.next = this\n this.prev = prev\n } else {\n this.prev = null\n }\n\n if (next) {\n next.prev = this\n this.next = next\n } else {\n this.next = null\n }\n}\n\ntry {\n // add if support for Symbol.iterator is present\n require('./iterator.js')(Yallist)\n} catch (er) {}\n","'use strict'\n\n// A linked list to keep track of recently-used-ness\nconst Yallist = require('yallist')\n\nconst MAX = Symbol('max')\nconst LENGTH = Symbol('length')\nconst LENGTH_CALCULATOR = Symbol('lengthCalculator')\nconst ALLOW_STALE = Symbol('allowStale')\nconst MAX_AGE = Symbol('maxAge')\nconst DISPOSE = Symbol('dispose')\nconst NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet')\nconst LRU_LIST = Symbol('lruList')\nconst CACHE = Symbol('cache')\nconst UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet')\n\nconst naiveLength = () => 1\n\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass LRUCache {\n constructor (options) {\n if (typeof options === 'number')\n options = { max: options }\n\n if (!options)\n options = {}\n\n if (options.max && (typeof options.max !== 'number' || options.max < 0))\n throw new TypeError('max must be a non-negative number')\n // Kind of weird to have a default max of Infinity, but oh well.\n const max = this[MAX] = options.max || Infinity\n\n const lc = options.length || naiveLength\n this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc\n this[ALLOW_STALE] = options.stale || false\n if (options.maxAge && typeof options.maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n this[MAX_AGE] = options.maxAge || 0\n this[DISPOSE] = options.dispose\n this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false\n this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false\n this.reset()\n }\n\n // resize the cache when the max changes.\n set max (mL) {\n if (typeof mL !== 'number' || mL < 0)\n throw new TypeError('max must be a non-negative number')\n\n this[MAX] = mL || Infinity\n trim(this)\n }\n get max () {\n return this[MAX]\n }\n\n set allowStale (allowStale) {\n this[ALLOW_STALE] = !!allowStale\n }\n get allowStale () {\n return this[ALLOW_STALE]\n }\n\n set maxAge (mA) {\n if (typeof mA !== 'number')\n throw new TypeError('maxAge must be a non-negative number')\n\n this[MAX_AGE] = mA\n trim(this)\n }\n get maxAge () {\n return this[MAX_AGE]\n }\n\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator (lC) {\n if (typeof lC !== 'function')\n lC = naiveLength\n\n if (lC !== this[LENGTH_CALCULATOR]) {\n this[LENGTH_CALCULATOR] = lC\n this[LENGTH] = 0\n this[LRU_LIST].forEach(hit => {\n hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)\n this[LENGTH] += hit.length\n })\n }\n trim(this)\n }\n get lengthCalculator () { return this[LENGTH_CALCULATOR] }\n\n get length () { return this[LENGTH] }\n get itemCount () { return this[LRU_LIST].length }\n\n rforEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].tail; walker !== null;) {\n const prev = walker.prev\n forEachStep(this, fn, walker, thisp)\n walker = prev\n }\n }\n\n forEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].head; walker !== null;) {\n const next = walker.next\n forEachStep(this, fn, walker, thisp)\n walker = next\n }\n }\n\n keys () {\n return this[LRU_LIST].toArray().map(k => k.key)\n }\n\n values () {\n return this[LRU_LIST].toArray().map(k => k.value)\n }\n\n reset () {\n if (this[DISPOSE] &&\n this[LRU_LIST] &&\n this[LRU_LIST].length) {\n this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value))\n }\n\n this[CACHE] = new Map() // hash of items by key\n this[LRU_LIST] = new Yallist() // list of items in order of use recency\n this[LENGTH] = 0 // length of items in the list\n }\n\n dump () {\n return this[LRU_LIST].map(hit =>\n isStale(this, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }).toArray().filter(h => h)\n }\n\n dumpLru () {\n return this[LRU_LIST]\n }\n\n set (key, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE]\n\n if (maxAge && typeof maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n\n const now = maxAge ? Date.now() : 0\n const len = this[LENGTH_CALCULATOR](value, key)\n\n if (this[CACHE].has(key)) {\n if (len > this[MAX]) {\n del(this, this[CACHE].get(key))\n return false\n }\n\n const node = this[CACHE].get(key)\n const item = node.value\n\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[DISPOSE]) {\n if (!this[NO_DISPOSE_ON_SET])\n this[DISPOSE](key, item.value)\n }\n\n item.now = now\n item.maxAge = maxAge\n item.value = value\n this[LENGTH] += len - item.length\n item.length = len\n this.get(key)\n trim(this)\n return true\n }\n\n const hit = new Entry(key, value, len, now, maxAge)\n\n // oversized objects fall out of cache automatically.\n if (hit.length > this[MAX]) {\n if (this[DISPOSE])\n this[DISPOSE](key, value)\n\n return false\n }\n\n this[LENGTH] += hit.length\n this[LRU_LIST].unshift(hit)\n this[CACHE].set(key, this[LRU_LIST].head)\n trim(this)\n return true\n }\n\n has (key) {\n if (!this[CACHE].has(key)) return false\n const hit = this[CACHE].get(key).value\n return !isStale(this, hit)\n }\n\n get (key) {\n return get(this, key, true)\n }\n\n peek (key) {\n return get(this, key, false)\n }\n\n pop () {\n const node = this[LRU_LIST].tail\n if (!node)\n return null\n\n del(this, node)\n return node.value\n }\n\n del (key) {\n del(this, this[CACHE].get(key))\n }\n\n load (arr) {\n // reset the cache\n this.reset()\n\n const now = Date.now()\n // A previous serialized cache has the most recent items first\n for (let l = arr.length - 1; l >= 0; l--) {\n const hit = arr[l]\n const expiresAt = hit.e || 0\n if (expiresAt === 0)\n // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v)\n else {\n const maxAge = expiresAt - now\n // dont add already expired items\n if (maxAge > 0) {\n this.set(hit.k, hit.v, maxAge)\n }\n }\n }\n }\n\n prune () {\n this[CACHE].forEach((value, key) => get(this, key, false))\n }\n}\n\nconst get = (self, key, doUse) => {\n const node = self[CACHE].get(key)\n if (node) {\n const hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n return undefined\n } else {\n if (doUse) {\n if (self[UPDATE_AGE_ON_GET])\n node.value.now = Date.now()\n self[LRU_LIST].unshiftNode(node)\n }\n }\n return hit.value\n }\n}\n\nconst isStale = (self, hit) => {\n if (!hit || (!hit.maxAge && !self[MAX_AGE]))\n return false\n\n const diff = Date.now() - hit.now\n return hit.maxAge ? diff > hit.maxAge\n : self[MAX_AGE] && (diff > self[MAX_AGE])\n}\n\nconst trim = self => {\n if (self[LENGTH] > self[MAX]) {\n for (let walker = self[LRU_LIST].tail;\n self[LENGTH] > self[MAX] && walker !== null;) {\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n const prev = walker.prev\n del(self, walker)\n walker = prev\n }\n }\n}\n\nconst del = (self, node) => {\n if (node) {\n const hit = node.value\n if (self[DISPOSE])\n self[DISPOSE](hit.key, hit.value)\n\n self[LENGTH] -= hit.length\n self[CACHE].delete(hit.key)\n self[LRU_LIST].removeNode(node)\n }\n}\n\nclass Entry {\n constructor (key, value, length, now, maxAge) {\n this.key = key\n this.value = value\n this.length = length\n this.now = now\n this.maxAge = maxAge || 0\n }\n}\n\nconst forEachStep = (self, fn, node, thisp) => {\n let hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n hit = undefined\n }\n if (hit)\n fn.call(thisp, hit.value, hit.key, self)\n}\n\nmodule.exports = LRUCache\n","const ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n static get ANY () {\n return ANY\n }\n constructor (comp, options) {\n options = parseOptions(options)\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n }\n\n parse (comp) {\n const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const m = comp.match(r)\n\n if (!m) {\n throw new TypeError(`Invalid comparator: ${comp}`)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n }\n\n toString () {\n return this.value\n }\n\n test (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n }\n\n intersects (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n return new Range(comp.value, options).test(this.value)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n return new Range(this.value, options).test(comp.semver)\n }\n\n const sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n const sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n const sameSemVer = this.semver.version === comp.semver.version\n const differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n const oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<')\n const oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>')\n\n return (\n sameDirectionIncreasing ||\n sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan ||\n oppositeDirectionsGreaterThan\n )\n }\n}\n\nmodule.exports = Comparator\n\nconst parseOptions = require('../internal/parse-options')\nconst {re, t} = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n","// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n options = parseOptions(options)\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.format()\n return this\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First, split based on boolean or ||\n this.raw = range\n this.set = range\n .split(/\\s*\\|\\|\\s*/)\n // map the range to a 2d array of comparators\n .map(range => this.parseRange(range.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${range}`)\n }\n\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0]\n this.set = this.set.filter(c => !isNullSet(c[0]))\n if (this.set.length === 0)\n this.set = [first]\n else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set) {\n if (c.length === 1 && isAny(c[0])) {\n this.set = [c]\n break\n }\n }\n }\n }\n\n this.format()\n }\n\n format () {\n this.range = this.set\n .map((comps) => {\n return comps.join(' ').trim()\n })\n .join('||')\n .trim()\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n range = range.trim()\n\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts = Object.keys(this.options).join(',')\n const memoKey = `parseRange:${memoOpts}:${range}`\n const cached = cache.get(memoKey)\n if (cached)\n return cached\n\n const loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range, re[t.COMPARATORTRIM])\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n const compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const rangeList = range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n // >=0.0.0 is equivalent to *\n .map(comp => replaceGTE0(comp, this.options))\n // in loose mode, throw out any that are not valid comparators\n .filter(this.options.loose ? comp => !!comp.match(compRe) : () => true)\n .map(comp => new Comparator(comp, this.options))\n\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const l = rangeList.length\n const rangeMap = new Map()\n for (const comp of rangeList) {\n if (isNullSet(comp))\n return [comp]\n rangeMap.set(comp.value, comp)\n }\n if (rangeMap.size > 1 && rangeMap.has(''))\n rangeMap.delete('')\n\n const result = [...rangeMap.values()]\n cache.set(memoKey, result)\n return result\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (let i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n }\n}\nmodule.exports = Range\n\nconst LRU = require('lru-cache')\nconst cache = new LRU({ max: 1000 })\n\nconst parseOptions = require('../internal/parse-options')\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n re,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace\n} = require('../internal/re')\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\nconst replaceTildes = (comp, options) =>\n comp.trim().split(/\\s+/).map((comp) => {\n return replaceTilde(comp, options)\n }).join(' ')\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\nconst replaceCarets = (comp, options) =>\n comp.trim().split(/\\s+/).map((comp) => {\n return replaceCaret(comp, options)\n }).join(' ')\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map((comp) => {\n return replaceXRange(comp, options)\n }).join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<')\n pr = '-0'\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp.trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return (`${from} ${to}`).trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n","const Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n","const Range = require('../classes/range')\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n new Range(range, options).set\n .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\n\nconst maxSatisfying = (versions, range, options) => {\n let max = null\n let maxSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\nmodule.exports = maxSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst minSatisfying = (versions, range, options) => {\n let min = null\n let minSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\nmodule.exports = minSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst gt = require('../functions/gt')\n\nconst minVersion = (range, loose) => {\n range = new Range(range, loose)\n\n let minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let setMin = null\n comparators.forEach((comparator) => {\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!setMin || gt(compver, setMin)) {\n setMin = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error(`Unexpected operation: ${comparator.operator}`)\n }\n })\n if (setMin && (!minver || gt(minver, setMin)))\n minver = setMin\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\nmodule.exports = minVersion\n","const Range = require('../classes/range')\nconst validRange = (range, options) => {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\nmodule.exports = validRange\n","const SemVer = require('../classes/semver')\nconst Comparator = require('../classes/comparator')\nconst {ANY} = Comparator\nconst Range = require('../classes/range')\nconst satisfies = require('../functions/satisfies')\nconst gt = require('../functions/gt')\nconst lt = require('../functions/lt')\nconst lte = require('../functions/lte')\nconst gte = require('../functions/gte')\n\nconst outside = (version, range, hilo, options) => {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n let gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisfies the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let high = null\n let low = null\n\n comparators.forEach((comparator) => {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nmodule.exports = outside\n","// Determine if version is greater than all the versions possible in the range.\nconst outside = require('./outside')\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n","const outside = require('./outside')\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n","const Range = require('../classes/range')\nconst intersects = (r1, r2, options) => {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\nmodule.exports = intersects\n","// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\nmodule.exports = (versions, range, options) => {\n const set = []\n let min = null\n let prev = null\n const v = versions.sort((a, b) => compare(a, b, options))\n for (const version of v) {\n const included = satisfies(version, range, options)\n if (included) {\n prev = version\n if (!min)\n min = version\n } else {\n if (prev) {\n set.push([min, prev])\n }\n prev = null\n min = null\n }\n }\n if (min)\n set.push([min, null])\n\n const ranges = []\n for (const [min, max] of set) {\n if (min === max)\n ranges.push(min)\n else if (!max && min === v[0])\n ranges.push('*')\n else if (!max)\n ranges.push(`>=${min}`)\n else if (min === v[0])\n ranges.push(`<=${max}`)\n else\n ranges.push(`${min} - ${max}`)\n }\n const simplified = ranges.join(' || ')\n const original = typeof range.raw === 'string' ? range.raw : String(range)\n return simplified.length < original.length ? simplified : range\n}\n","const Range = require('../classes/range.js')\nconst Comparator = require('../classes/comparator.js')\nconst { ANY } = Comparator\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\n\nconst subset = (sub, dom, options = {}) => {\n if (sub === dom)\n return true\n\n sub = new Range(sub, options)\n dom = new Range(dom, options)\n let sawNonNull = false\n\n OUTER: for (const simpleSub of sub.set) {\n for (const simpleDom of dom.set) {\n const isSub = simpleSubset(simpleSub, simpleDom, options)\n sawNonNull = sawNonNull || isSub !== null\n if (isSub)\n continue OUTER\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull)\n return false\n }\n return true\n}\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub === dom)\n return true\n\n if (sub.length === 1 && sub[0].semver === ANY) {\n if (dom.length === 1 && dom[0].semver === ANY)\n return true\n else if (options.includePrerelease)\n sub = [ new Comparator('>=0.0.0-0') ]\n else\n sub = [ new Comparator('>=0.0.0') ]\n }\n\n if (dom.length === 1 && dom[0].semver === ANY) {\n if (options.includePrerelease)\n return true\n else\n dom = [ new Comparator('>=0.0.0') ]\n }\n\n const eqSet = new Set()\n let gt, lt\n for (const c of sub) {\n if (c.operator === '>' || c.operator === '>=')\n gt = higherGT(gt, c, options)\n else if (c.operator === '<' || c.operator === '<=')\n lt = lowerLT(lt, c, options)\n else\n eqSet.add(c.semver)\n }\n\n if (eqSet.size > 1)\n return null\n\n let gtltComp\n if (gt && lt) {\n gtltComp = compare(gt.semver, lt.semver, options)\n if (gtltComp > 0)\n return null\n else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<='))\n return null\n }\n\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies(eq, String(gt), options))\n return null\n\n if (lt && !satisfies(eq, String(lt), options))\n return null\n\n for (const c of dom) {\n if (!satisfies(eq, String(c), options))\n return false\n }\n\n return true\n }\n\n let higher, lower\n let hasDomLT, hasDomGT\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt &&\n !options.includePrerelease &&\n lt.semver.prerelease.length ? lt.semver : false\n let needDomGTPre = gt &&\n !options.includePrerelease &&\n gt.semver.prerelease.length ? gt.semver : false\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&\n lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {\n needDomLTPre = false\n }\n\n for (const c of dom) {\n hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomGTPre.major &&\n c.semver.minor === needDomGTPre.minor &&\n c.semver.patch === needDomGTPre.patch) {\n needDomGTPre = false\n }\n }\n if (c.operator === '>' || c.operator === '>=') {\n higher = higherGT(gt, c, options)\n if (higher === c && higher !== gt)\n return false\n } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options))\n return false\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomLTPre.major &&\n c.semver.minor === needDomLTPre.minor &&\n c.semver.patch === needDomLTPre.patch) {\n needDomLTPre = false\n }\n }\n if (c.operator === '<' || c.operator === '<=') {\n lower = lowerLT(lt, c, options)\n if (lower === c && lower !== lt)\n return false\n } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options))\n return false\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0)\n return false\n }\n\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0)\n return false\n\n if (lt && hasDomGT && !gt && gtltComp !== 0)\n return false\n\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre)\n return false\n\n return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n if (!a)\n return b\n const comp = compare(a.semver, b.semver, options)\n return comp > 0 ? a\n : comp < 0 ? b\n : b.operator === '>' && a.operator === '>=' ? b\n : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n if (!a)\n return b\n const comp = compare(a.semver, b.semver, options)\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n}\n\nmodule.exports = subset\n","// just pre-load all the stuff that index.js lazily exports\nconst internalRe = require('./internal/re')\nmodule.exports = {\n re: internalRe.re,\n src: internalRe.src,\n tokens: internalRe.t,\n SEMVER_SPEC_VERSION: require('./internal/constants').SEMVER_SPEC_VERSION,\n SemVer: require('./classes/semver'),\n compareIdentifiers: require('./internal/identifiers').compareIdentifiers,\n rcompareIdentifiers: require('./internal/identifiers').rcompareIdentifiers,\n parse: require('./functions/parse'),\n valid: require('./functions/valid'),\n clean: require('./functions/clean'),\n inc: require('./functions/inc'),\n diff: require('./functions/diff'),\n major: require('./functions/major'),\n minor: require('./functions/minor'),\n patch: require('./functions/patch'),\n prerelease: require('./functions/prerelease'),\n compare: require('./functions/compare'),\n rcompare: require('./functions/rcompare'),\n compareLoose: require('./functions/compare-loose'),\n compareBuild: require('./functions/compare-build'),\n sort: require('./functions/sort'),\n rsort: require('./functions/rsort'),\n gt: require('./functions/gt'),\n lt: require('./functions/lt'),\n eq: require('./functions/eq'),\n neq: require('./functions/neq'),\n gte: require('./functions/gte'),\n lte: require('./functions/lte'),\n cmp: require('./functions/cmp'),\n coerce: require('./functions/coerce'),\n Comparator: require('./classes/comparator'),\n Range: require('./classes/range'),\n satisfies: require('./functions/satisfies'),\n toComparators: require('./ranges/to-comparators'),\n maxSatisfying: require('./ranges/max-satisfying'),\n minSatisfying: require('./ranges/min-satisfying'),\n minVersion: require('./ranges/min-version'),\n validRange: require('./ranges/valid'),\n outside: require('./ranges/outside'),\n gtr: require('./ranges/gtr'),\n ltr: require('./ranges/ltr'),\n intersects: require('./ranges/intersects'),\n simplifyRange: require('./ranges/simplify'),\n subset: require('./ranges/subset'),\n}\n","import * as core from '@actions/core';\nimport * as cli from '@actions/exec';\nimport { diff as semverDiff, major as semverMajor } from 'semver';\n\nimport { resolveVersion } from './packager';\n\nexport type PackageName = 'expo-cli' | 'eas-cli';\n\nexport type AuthenticateOptions = {\n cli?: PackageName;\n token?: string;\n username?: string;\n password?: string;\n};\n\n/**\n * Convert `expo-cli` or `eas-cli` to just their binary name.\n * For windows we have to use `.cmd`, toolkit will handle the Windows binary with that.\n */\nexport function getBinaryName(name: PackageName, forWindows = false): string {\n const bin = name.toLowerCase().replace('-cli', '');\n return forWindows ? `${bin}.cmd` : bin;\n}\n\n/**\n * Authenticate with Expo using either the token or username/password method.\n * If both of them are set, token has priority.\n */\nexport async function maybeAuthenticate(options: AuthenticateOptions = {}): Promise {\n if (options.token) {\n if (options.cli) {\n const bin = getBinaryName(options.cli, process.platform === 'win32');\n await cli.exec(bin, ['whoami'], {\n env: { ...process.env, EXPO_TOKEN: options.token },\n });\n } else {\n core.info(\"Skipping token validation: no CLI installed, can't run `whoami`.\");\n }\n\n return core.exportVariable('EXPO_TOKEN', options.token);\n }\n\n if (options.username || options.password) {\n if (options.cli !== 'expo-cli') {\n return core.warning(\n 'Skipping authentication: only Expo CLI supports programmatic credentials, use `token` instead.'\n );\n }\n\n if (!options.username || !options.password) {\n return core.info('Skipping authentication: `username` and/or `password` not set...');\n }\n\n const bin = getBinaryName(options.cli, process.platform === 'win32');\n await cli.exec(bin, ['login', `--username=${options.username}`], {\n env: { ...process.env, EXPO_CLI_PASSWORD: options.password },\n });\n }\n\n core.info('Skipping authentication: `token`, `username`, and/or `password` not set...');\n}\n\n/**\n * Try to patch the default watcher/inotify limit.\n * This is a limitation from GitHub Actions and might be an issue in some Expo projects.\n * It sets the system's `fs.inotify` limits to a more sensible setting.\n *\n * @see https://github.com/expo/expo-github-action/issues/20\n */\nexport async function maybePatchWatchers(): Promise {\n if (process.platform !== 'linux') {\n return core.info('Skipping patch for watchers, not running on Linux...');\n }\n\n core.info('Patching system watchers for the `ENOSPC` error...');\n\n try {\n // see https://github.com/expo/expo-cli/issues/277#issuecomment-452685177\n await cli.exec('sudo sysctl fs.inotify.max_user_instances=524288');\n await cli.exec('sudo sysctl fs.inotify.max_user_watches=524288');\n await cli.exec('sudo sysctl fs.inotify.max_queued_events=524288');\n await cli.exec('sudo sysctl -p');\n } catch {\n core.warning(\"Looks like we can't patch watchers/inotify limits, you might encouter the `ENOSPC` error.\");\n core.warning('For more info, https://github.com/expo/expo-github-action/issues/20');\n }\n}\n\n/**\n * Check if there is a new major version available.\n * If there is, create a warning for people to upgrade their workflow.\n * Because this introduces additional requests, it should only be executed when necessary.\n */\nexport async function maybeWarnForUpdate(name: PackageName): Promise {\n const binaryName = getBinaryName(name);\n const latest = await resolveVersion(name, 'latest');\n const current = await resolveVersion(name, core.getInput(`${getBinaryName(name)}-version`) || 'latest');\n\n if (semverDiff(latest, current) === 'major') {\n core.warning(`There is a new major version available of the Expo CLI (${latest})`);\n core.warning(\n `If you run into issues, try upgrading your workflow to \"${binaryName}-version: ${semverMajor(latest)}.x\"`\n );\n }\n}\n\n/**\n * Handle errors when this action fails, providing useful next-steps for developers.\n * This mostly checks if the installed version is the latest version.\n */\nexport async function handleError(name: PackageName, error: Error) {\n try {\n await maybeWarnForUpdate(name);\n } catch {\n // If this fails, ignore it\n }\n\n core.setFailed(error);\n}\n\n/**\n * Auto-execute the action if it's not running in a test environment.\n * This is useful to test the action, without running it in tests.\n * The method can also be mocked.\n */\nexport function performAction(action: () => Promise) {\n if (process.env.JEST_WORKER_ID) {\n return Promise.resolve(null);\n }\n\n return action();\n}\n","import { addPath, getBooleanInput, getInput, group, info } from '@actions/core';\n\nimport { install } from '../install';\nimport { resolveVersion } from '../packager';\nimport * as tools from '../tools';\n\n// Auto-execute in GitHub actions\ntools.performAction(setupAction);\n\nexport async function setupAction(): Promise {\n const expoVersion = await installCli('expo-cli');\n const easVersion = await installCli('eas-cli');\n\n await group('Checking current authenticated account', () =>\n tools.maybeAuthenticate({\n cli: expoVersion ? 'expo-cli' : easVersion ? 'eas-cli' : undefined,\n token: getInput('token') || undefined,\n username: getInput('username') || undefined,\n password: getInput('password') || undefined,\n })\n );\n\n if (!getInput('patch-watchers') || getBooleanInput('patch-watchers') !== false) {\n await group('Patching system watchers for the `ENOSPC` error', () => tools.maybePatchWatchers());\n }\n}\n\nasync function installCli(name: tools.PackageName): Promise {\n const shortName = tools.getBinaryName(name);\n const inputVersion = getInput(`${shortName}-version`);\n const packager = getInput('packager') || 'yarn';\n\n if (!inputVersion) {\n return info(`Skipping installation of ${name}, \\`${shortName}-version\\` not provided.`);\n }\n\n const version = await resolveVersion(name, inputVersion);\n const cache = getBooleanInput(`${shortName}-cache`);\n\n try {\n const path = await group(\n cache\n ? `Installing ${name} (${version}) from cache or with ${packager}`\n : `Installing ${name} (${version}) with ${packager}`,\n () =>\n install({\n packager,\n version,\n cache,\n package: name,\n cacheKey: getInput(`${shortName}-cache-key`) || undefined,\n })\n );\n\n addPath(path);\n } catch (error) {\n tools.handleError(name, error);\n }\n\n return version;\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["/Users/cedric/Projects/expo/expo-github-action/src/cache.ts","/Users/cedric/Projects/expo/expo-github-action/src/install.ts","/Users/cedric/Projects/expo/expo-github-action/src/packager.ts","/Users/cedric/Projects/expo/expo-github-action/src/tools.ts","/Users/cedric/Projects/expo/expo-github-action/src/actions/setup.ts"],"sourcesContent":["import { ReserveCacheError, restoreCache, saveCache } from '@actions/cache';\nimport * as core from '@actions/core';\nimport * as toolCache from '@actions/tool-cache';\nimport path from 'path';\nimport os from 'os';\n\nimport type { InstallConfig } from './install';\n\nexport type CacheConfig = Omit;\n\n/**\n * Get the path to the `expo-cli` from cache, if any.\n * Note, this cache is **NOT** shared between jobs.\n *\n * @see https://github.com/actions/toolkit/issues/47\n */\nexport async function fromLocalCache(config: CacheConfig): Promise {\n return toolCache.find(config.package, config.version);\n}\n\n/**\n * Store the root of `expo-cli` in the cache, for future reuse.\n * Note, this cache is **NOT** shared between jobs.\n *\n * @see https://github.com/actions/toolkit/issues/47\n */\nexport async function toLocalCache(root: string, config: CacheConfig): Promise {\n return toolCache.cacheDir(root, config.package, config.version);\n}\n\n/**\n * Download the remotely stored `expo-cli` from cache, if any.\n * Note, this cache is shared between jobs.\n */\nexport async function fromRemoteCache(config: CacheConfig): Promise {\n // see: https://github.com/actions/toolkit/blob/8a4134761f09d0d97fb15f297705fd8644fef920/packages/tool-cache/src/tool-cache.ts#L401\n const target = path.join(process.env['RUNNER_TOOL_CACHE'] || '', config.package, config.version, os.arch());\n const cacheKey = config.cacheKey || getRemoteKey(config);\n\n try {\n // When running with nektos/act, or other custom environments, the cache might not be set up.\n const hit = await restoreCache([target], cacheKey);\n if (hit) {\n return target;\n }\n } catch (error) {\n if (!handleRemoteCacheError(error)) {\n throw error;\n }\n }\n}\n\n/**\n * Store the root of `expo-cli` in the remote cache, for future reuse.\n * Note, this cache is shared between jobs.\n */\nexport async function toRemoteCache(source: string, config: CacheConfig): Promise {\n const cacheKey = config.cacheKey || getRemoteKey(config);\n\n try {\n await saveCache([source], cacheKey);\n } catch (error) {\n if (!handleRemoteCacheError(error)) {\n throw error;\n }\n }\n}\n\n/**\n * Get the cache key to use when (re)storing the Expo CLI from remote cache.\n */\nfunction getRemoteKey(config: Omit): string {\n return `${config.package}-${process.platform}-${os.arch()}-${config.packager}-${config.version}`;\n}\n\n/**\n * Handle any incoming errors from cache methods.\n * This can include actual errors like `ReserveCacheErrors` or unavailability errors.\n * When the error is handled, it MUST provide feedback for the developer.\n *\n * @returns If the error was handled properly.\n */\nfunction handleRemoteCacheError(error: Error): boolean {\n const isReserveCacheError = error instanceof ReserveCacheError;\n const isCacheUnavailable = error.message.toLowerCase().includes('cache service url not found');\n\n if (isReserveCacheError || isCacheUnavailable) {\n core.warning('Skipping remote cache storage, encountered error:');\n core.warning(error.message);\n return true;\n }\n\n return false;\n}\n","import * as core from '@actions/core';\nimport * as cli from '@actions/exec';\nimport * as io from '@actions/io';\nimport * as path from 'path';\n\nimport { fromLocalCache, fromRemoteCache, toLocalCache, toRemoteCache } from './cache';\nimport { PackageName } from './tools';\n\nexport type InstallConfig = {\n /** The exact version to install */\n version: string;\n /** The name of the package to install */\n package: PackageName;\n /** The packager to install with, likely to be `yarn` or `npm` */\n packager: string;\n /** If remote caching is enabled or not */\n cache?: boolean;\n /** The custom remote cache key */\n cacheKey?: string;\n};\n\n/**\n * Install `expo-cli`, by version, using the packager.\n * Here you can provide any semver range or dist tag used in the registry.\n * It returns the path where Expo is installed.\n */\nexport async function install(config: InstallConfig): Promise {\n let root: string | undefined = await fromLocalCache(config);\n\n if (!root && config.cache) {\n root = await fromRemoteCache(config);\n } else {\n core.info('Skipping remote cache, not enabled...');\n }\n\n if (!root) {\n root = await fromPackager(config);\n root = await toLocalCache(root, config);\n\n if (config.cache) {\n await toRemoteCache(root, config);\n }\n }\n\n return path.join(root, 'node_modules', '.bin');\n}\n\n/**\n * Install `expo-cli`, by version, using npm or yarn.\n * It creates a temporary directory to store all required files.\n */\nexport async function fromPackager(config: InstallConfig): Promise {\n const root = process.env['RUNNER_TEMP'] || '';\n const tool = await io.which(config.packager);\n\n await io.mkdirP(root);\n await cli.exec(tool, ['add', `${config.package}@${config.version}`], { cwd: root });\n\n return root;\n}\n","import { exec } from '@actions/exec';\n\n/**\n * Resolve a package with version range to an exact version.\n * This is useful to invalidate the cache _and_ using dist-tags or version ranges.\n * It executes `npm info` and parses the latest manifest.\n */\nexport async function resolveVersion(name: string, range: string): Promise {\n let stdout = '';\n\n try {\n await exec('npm', ['info', `${name}@${range}`, 'version', '--json'], {\n silent: true,\n listeners: {\n stdout(data) {\n stdout += data.toString();\n },\n },\n });\n } catch (error) {\n throw new Error(`Could not resolve version \"${range}\" of \"${name}\", reason:\\n${error.message || error}`);\n }\n\n // thanks npm, for returning a \"x.x.x\" json value...\n if (stdout.startsWith('\"')) {\n stdout = `[${stdout}]`;\n }\n\n return JSON.parse(stdout).at(-1);\n}\n","import * as core from '@actions/core';\nimport * as cli from '@actions/exec';\nimport semver from 'semver';\n\nimport { resolveVersion } from './packager';\n\nexport type PackageName = 'expo-cli' | 'eas-cli';\n\nexport type AuthenticateOptions = {\n cli?: PackageName;\n token?: string;\n username?: string;\n password?: string;\n};\n\n/**\n * Convert `expo-cli` or `eas-cli` to just their binary name.\n * For windows we have to use `.cmd`, toolkit will handle the Windows binary with that.\n */\nexport function getBinaryName(name: PackageName, forWindows = false): string {\n const bin = name.toLowerCase().replace('-cli', '');\n return forWindows ? `${bin}.cmd` : bin;\n}\n\n/**\n * Authenticate with Expo using either the token or username/password method.\n * If both of them are set, token has priority.\n */\nexport async function maybeAuthenticate(options: AuthenticateOptions = {}): Promise {\n if (options.token) {\n if (options.cli) {\n const bin = getBinaryName(options.cli, process.platform === 'win32');\n await cli.exec(bin, ['whoami'], {\n env: { ...process.env, EXPO_TOKEN: options.token },\n });\n } else {\n core.info(\"Skipping token validation: no CLI installed, can't run `whoami`.\");\n }\n\n return core.exportVariable('EXPO_TOKEN', options.token);\n }\n\n if (options.username || options.password) {\n if (options.cli !== 'expo-cli') {\n return core.warning(\n 'Skipping authentication: only Expo CLI supports programmatic credentials, use `token` instead.'\n );\n }\n\n if (!options.username || !options.password) {\n return core.info('Skipping authentication: `username` and/or `password` not set...');\n }\n\n const bin = getBinaryName(options.cli, process.platform === 'win32');\n await cli.exec(bin, ['login', `--username=${options.username}`], {\n env: { ...process.env, EXPO_CLI_PASSWORD: options.password },\n });\n }\n\n core.info('Skipping authentication: `token`, `username`, and/or `password` not set...');\n}\n\n/**\n * Try to patch the default watcher/inotify limit.\n * This is a limitation from GitHub Actions and might be an issue in some Expo projects.\n * It sets the system's `fs.inotify` limits to a more sensible setting.\n *\n * @see https://github.com/expo/expo-github-action/issues/20\n */\nexport async function maybePatchWatchers(): Promise {\n if (process.platform !== 'linux') {\n return core.info('Skipping patch for watchers, not running on Linux...');\n }\n\n core.info('Patching system watchers for the `ENOSPC` error...');\n\n try {\n // see https://github.com/expo/expo-cli/issues/277#issuecomment-452685177\n await cli.exec('sudo sysctl fs.inotify.max_user_instances=524288');\n await cli.exec('sudo sysctl fs.inotify.max_user_watches=524288');\n await cli.exec('sudo sysctl fs.inotify.max_queued_events=524288');\n await cli.exec('sudo sysctl -p');\n } catch {\n core.warning(\"Looks like we can't patch watchers/inotify limits, you might encouter the `ENOSPC` error.\");\n core.warning('For more info, https://github.com/expo/expo-github-action/issues/20');\n }\n}\n\n/**\n * Check if there is a new major version available.\n * If there is, create a warning for people to upgrade their workflow.\n * Because this introduces additional requests, it should only be executed when necessary.\n */\nexport async function maybeWarnForUpdate(name: PackageName): Promise {\n const binaryName = getBinaryName(name);\n const latest = await resolveVersion(name, 'latest');\n const current = await resolveVersion(name, core.getInput(`${getBinaryName(name)}-version`) || 'latest');\n\n if (semver.diff(latest, current) === 'major') {\n core.warning(`There is a new major version available of the Expo CLI (${latest})`);\n core.warning(\n `If you run into issues, try upgrading your workflow to \"${binaryName}-version: ${semver.major(latest)}.x\"`\n );\n }\n}\n\n/**\n * Handle errors when this action fails, providing useful next-steps for developers.\n * This mostly checks if the installed version is the latest version.\n */\nexport async function handleError(name: PackageName, error: Error) {\n try {\n await maybeWarnForUpdate(name);\n } catch {\n // If this fails, ignore it\n }\n\n core.setFailed(error);\n}\n\n/**\n * Auto-execute the action if it's not running in a test environment.\n * This is useful to test the action, without running it in tests.\n * The method can also be mocked.\n */\nexport function performAction(action: () => Promise) {\n if (process.env.JEST_WORKER_ID) {\n return Promise.resolve(null);\n }\n\n return action();\n}\n","import { addPath, getBooleanInput, getInput, group, info } from '@actions/core';\n\nimport { install } from '../install';\nimport { resolveVersion } from '../packager';\nimport * as tools from '../tools';\n\n// Auto-execute in GitHub actions\ntools.performAction(setupAction);\n\nexport async function setupAction(): Promise {\n const expoVersion = await installCli('expo-cli');\n const easVersion = await installCli('eas-cli');\n\n await group('Checking current authenticated account', () =>\n tools.maybeAuthenticate({\n cli: expoVersion ? 'expo-cli' : easVersion ? 'eas-cli' : undefined,\n token: getInput('token') || undefined,\n username: getInput('username') || undefined,\n password: getInput('password') || undefined,\n })\n );\n\n if (!getInput('patch-watchers') || getBooleanInput('patch-watchers') !== false) {\n await group('Patching system watchers for the `ENOSPC` error', () => tools.maybePatchWatchers());\n }\n}\n\nasync function installCli(name: tools.PackageName): Promise {\n const shortName = tools.getBinaryName(name);\n const inputVersion = getInput(`${shortName}-version`);\n const packager = getInput('packager') || 'yarn';\n\n if (!inputVersion) {\n return info(`Skipping installation of ${name}, \\`${shortName}-version\\` not provided.`);\n }\n\n const version = await resolveVersion(name, inputVersion);\n const cache = getBooleanInput(`${shortName}-cache`);\n\n try {\n const path = await group(\n cache\n ? `Installing ${name} (${version}) from cache or with ${packager}`\n : `Installing ${name} (${version}) with ${packager}`,\n () =>\n install({\n packager,\n version,\n cache,\n package: name,\n cacheKey: getInput(`${shortName}-cache-key`) || undefined,\n })\n );\n\n addPath(path);\n } catch (error) {\n tools.handleError(name, error);\n }\n\n return version;\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/spack.config.js b/spack.config.js index f1b42464..cabb9b96 100644 --- a/spack.config.js +++ b/spack.config.js @@ -4,11 +4,9 @@ const { resolve, basename, extname } = require('path'); module.exports = config({ target: 'node', - entry: actions( - resolve(__dirname, './src/actions'), - ), + entry: actions(resolve(__dirname, 'src/actions')), output: { - path: resolve(__dirname, './build'), + path: resolve(__dirname, 'build'), }, externalModules: externals(), }); @@ -21,20 +19,21 @@ function actions(dir) { return Object.fromEntries( readdirSync(dir, { withFileTypes: true }) .filter(entity => entity.isFile()) - .map(entity => [ - basename(entity.name, extname(entity.name)), - resolve(dir, entity.name), - ]) + .map(entity => { + const actionName = basename(entity.name, extname(entity.name)); + const actionFile = resolve(dir, entity.name); + return [actionName, actionFile]; + }) ); } /** * Get all external modules that should not be bundled. * Ignoring the packages in the `dependencies` list should keep them up to date. - * + * * Note, currently `@actions/cache` can't be bundled by SWC due to modules issues in `@azure/core-http`: * > internal error: entered unreachable code: module item found but is_es6 is false - * + * * @see https://github.com/expo/expo-github-action/pull/62 */ function externals() {