--- /srv/reproducible-results/rbuild-debian/r-b-build.eWvpbiiv/b1/node-babel7_7.20.15+ds1+~cs214.269.168-6_arm64.changes +++ /srv/reproducible-results/rbuild-debian/r-b-build.eWvpbiiv/b2/node-babel7_7.20.15+ds1+~cs214.269.168-6_arm64.changes ├── Files │ @@ -1,5 +1,5 @@ │ │ - 26bbc00c3369491a98cf992aa67d0db1 1114084 javascript optional node-babel7-debug_7.20.15+ds1+~cs214.269.168-6_all.deb │ + a8e45e9ca13854f5acb402bf22e3cabe 1114120 javascript optional node-babel7-debug_7.20.15+ds1+~cs214.269.168-6_all.deb │ acb6206a451a66f04bde1ef5de799371 116100 javascript optional node-babel7-runtime_7.20.15+ds1+~cs214.269.168-6_all.deb │ - cf16cf633c01194c08b652d3c4a41a2e 1001848 javascript optional node-babel7-standalone_7.20.15+ds1+~cs214.269.168-6_all.deb │ - 8f7168ae624e872ddbb099d3430f805e 708584 javascript optional node-babel7_7.20.15+ds1+~cs214.269.168-6_all.deb │ + bf81cc2ecbeb27d9515467a6c48aa92a 1002072 javascript optional node-babel7-standalone_7.20.15+ds1+~cs214.269.168-6_all.deb │ + 0a93abaddca1c5d942afa3b0aa69d919 708624 javascript optional node-babel7_7.20.15+ds1+~cs214.269.168-6_all.deb ├── node-babel7-debug_7.20.15+ds1+~cs214.269.168-6_all.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2023-12-12 12:15:28.000000 debian-binary │ │ --rw-r--r-- 0 0 0 13528 2023-12-12 12:15:28.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 1100364 2023-12-12 12:15:28.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 13524 2023-12-12 12:15:28.000000 control.tar.xz │ │ +-rw-r--r-- 0 0 0 1100404 2023-12-12 12:15:28.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./control │ │ │ │ @@ -1,13 +1,13 @@ │ │ │ │ Package: node-babel7-debug │ │ │ │ Source: node-babel7 │ │ │ │ Version: 7.20.15+ds1+~cs214.269.168-6 │ │ │ │ Architecture: all │ │ │ │ Maintainer: Debian Javascript Maintainers │ │ │ │ -Installed-Size: 6724 │ │ │ │ +Installed-Size: 6723 │ │ │ │ Breaks: node-babel7 (<< 7.19.3+ds1+~cs214.250.186-2), node-babel7-runtime (<< 7.19.3+ds1+~cs214.250.186-2), node-babel7-standalone (<< 7.19.3+ds1+~cs214.250.186-2) │ │ │ │ Section: javascript │ │ │ │ Priority: optional │ │ │ │ Multi-Arch: foreign │ │ │ │ Homepage: https://babeljs.io/ │ │ │ │ Description: Source-map files for node-babel7 packages │ │ │ │ Source map files for node-babel7, node-babel7-runtime and node-babel7-standalone │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -86,15 +86,15 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 7902 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/core/lib/transformation/index.js.map │ │ │ │ -rw-r--r-- 0 root (0) root (0) 8121 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/core/lib/transformation/normalize-file.js.map │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3348 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/core/lib/transformation/normalize-opts.js.map │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2963 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/core/lib/transformation/plugin-pass.js.map │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/core/lib/transformation/util/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2361 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/core/lib/transformation/util/clone-deep.js.map │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/core/lib/vendor/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 215477 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/core/lib/vendor/import-meta-resolve.js.map │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 215037 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/core/lib/vendor/import-meta-resolve.js.map │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/eslint-parser/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/eslint-parser/lib/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 20533 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/eslint-parser/lib/analyze-scope.cjs.map │ │ │ │ -rw-r--r-- 0 root (0) root (0) 6208 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/eslint-parser/lib/client.cjs.map │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1107 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/eslint-parser/lib/configuration.cjs.map │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/eslint-parser/lib/convert/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 8793 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/eslint-parser/lib/convert/convertAST.cjs.map │ │ │ ├── ./usr/share/nodejs/@babel/core/lib/vendor/import-meta-resolve.js.map │ │ │ │ ├── Pretty-printed │ │ │ │ │┄ Similarity: 0.7994169096209912% │ │ │ │ │┄ Differences: {"'mappings'": "';;;;;;;AAoFA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAAuC;AAAA;AAAA;AAAA;AAEvC,IAAIA,IAAI,GAAG;EAACC,OAAO,EAAE,CAAC;AAAC,CAAC;AAIxB,MAAMC,mBAAmB,GAAG,OAAO;AAEnC,MAAMC,YAAY,GAAG,GAAG;AACxB,MAAMC,kBAAkB,GAAGC,MAAM,CAACC,gBAAgB,IACvB,gBAAgB;AAG3C,MAAMC,yBAAyB,GAAG,EAAE;AAIpC,MAAMC,qBAAqB,GAAGL,YAAY,GAAG,CAAC;AAE9C,MAAMM,aAAa,GAAG,CACpB,OAAO,EACP,UAAU,EACV,OAAO,EACP […] │ │ │ │ │ @@ -1,9 +1,9 @@ │ │ │ │ │ { │ │ │ │ │ - "mappings": "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", │ │ │ │ │ + "mappings": "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", │ │ │ │ │ "names": [ │ │ │ │ │ "re$2", │ │ │ │ │ "exports", │ │ │ │ │ "SEMVER_SPEC_VERSION", │ │ │ │ │ "MAX_LENGTH$1", │ │ │ │ │ "MAX_SAFE_INTEGER$1", │ │ │ │ │ "Number", │ │ │ │ │ @@ -232,28 +232,26 @@ │ │ │ │ │ "coerceRtlRegex", │ │ │ │ │ "COERCERTLFULL", │ │ │ │ │ "COERCERTL", │ │ │ │ │ "next", │ │ │ │ │ "exec", │ │ │ │ │ "lastIndex", │ │ │ │ │ "coerce_1", │ │ │ │ │ - "lrucache", │ │ │ │ │ - "hasRequiredLrucache", │ │ │ │ │ - "requireLrucache", │ │ │ │ │ "LRUCache", │ │ │ │ │ "Map", │ │ │ │ │ "get", │ │ │ │ │ "key", │ │ │ │ │ "delete", │ │ │ │ │ "set", │ │ │ │ │ "has", │ │ │ │ │ "deleted", │ │ │ │ │ "size", │ │ │ │ │ "firstKey", │ │ │ │ │ "keys", │ │ │ │ │ + "lrucache", │ │ │ │ │ "range", │ │ │ │ │ "hasRequiredRange", │ │ │ │ │ "requireRange", │ │ │ │ │ "Range", │ │ │ │ │ "Comparator", │ │ │ │ │ "r", │ │ │ │ │ "parseRange", │ │ │ │ │ @@ -687,11 +685,11 @@ │ │ │ │ │ "Promise", │ │ │ │ │ "reject" │ │ │ │ │ ], │ │ │ │ │ "sources": [ │ │ │ │ │ "../../src/vendor/import-meta-resolve.js" │ │ │ │ │ ], │ │ │ │ │ "sourcesContent": [ │ │ │ │ │ - "\n/****************************************************************************\\\n * NOTE FROM BABEL AUTHORS *\n * This file is inlined from https://github.com/wooorm/import-meta-resolve, *\n * because we need to compile it to CommonJS. *\n\\****************************************************************************/\n\n/*\n(The MIT License)\n\nCopyright (c) 2021 Titus Wormer \n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n---\n\nThis is a derivative work based on:\n.\nWhich is licensed:\n\n\"\"\"\nCopyright Node.js contributors. All rights reserved.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to\ndeal in the Software without restriction, including without limitation the\nrights to use, copy, modify, merge, publish, distribute, sublicense, and/or\nsell copies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\nIN THE SOFTWARE.\n\"\"\"\n\nThis license applies to parts of Node.js originating from the\nhttps://github.com/joyent/node repository:\n\n\"\"\"\nCopyright Joyent, Inc. and other Node contributors. All rights reserved.\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to\ndeal in the Software without restriction, including without limitation the\nrights to use, copy, modify, merge, publish, distribute, sublicense, and/or\nsell copies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\nIN THE SOFTWARE.\n\"\"\"\n*/\n\nimport { URL, fileURLToPath, pathToFileURL } from 'url';\nimport fs, { realpathSync, statSync, Stats } from 'fs';\nimport path from 'path';\nimport assert from 'assert';\nimport { format, inspect } from 'util';\n\nvar re$2 = {exports: {}};\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$1 = 256;\nconst MAX_SAFE_INTEGER$1 = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991;\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16;\n\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst MAX_SAFE_BUILD_LENGTH = MAX_LENGTH$1 - 6;\n\nconst RELEASE_TYPES = [\n 'major',\n 'premajor',\n 'minor',\n 'preminor',\n 'patch',\n 'prepatch',\n 'prerelease',\n];\n\nvar constants$1 = {\n MAX_LENGTH: MAX_LENGTH$1,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER: MAX_SAFE_INTEGER$1,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 0b001,\n FLAG_LOOSE: 0b010,\n};\n\nconst debug$1 = (\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\nvar debug_1 = debug$1;\n\n(function (module, exports) {\n\tconst {\n\t MAX_SAFE_COMPONENT_LENGTH,\n\t MAX_SAFE_BUILD_LENGTH,\n\t MAX_LENGTH,\n\t} = constants$1;\n\tconst debug = debug_1;\n\texports = module.exports = {};\n\n\t// The actual regexps go on exports.re\n\tconst re = exports.re = [];\n\tconst safeRe = exports.safeRe = [];\n\tconst src = exports.src = [];\n\tconst t = exports.t = {};\n\tlet R = 0;\n\n\tconst LETTERDASHNUMBER = '[a-zA-Z0-9-]';\n\n\t// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n\t// used internally via the safeRe object since all inputs in this library get\n\t// normalized first to trim and collapse all extra whitespace. The original\n\t// regexes are exported for userland consumption and lower level usage. A\n\t// future breaking change could export the safer regex only with a note that\n\t// all input should have extra whitespace removed.\n\tconst safeRegexReplacements = [\n\t ['\\\\s', 1],\n\t ['\\\\d', MAX_LENGTH],\n\t [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n\t];\n\n\tconst makeSafeRegex = (value) => {\n\t for (const [token, max] of safeRegexReplacements) {\n\t value = value\n\t .split(`${token}*`).join(`${token}{0,${max}}`)\n\t .split(`${token}+`).join(`${token}{1,${max}}`);\n\t }\n\t return value\n\t};\n\n\tconst createToken = (name, value, isGlobal) => {\n\t const safe = makeSafeRegex(value);\n\t const index = R++;\n\t debug(name, index, value);\n\t t[name] = index;\n\t src[index] = value;\n\t re[index] = new RegExp(value, isGlobal ? 'g' : undefined);\n\t safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined);\n\t};\n\n\t// The following Regular Expressions can be used for tokenizing,\n\t// validating, and parsing SemVer version strings.\n\n\t// ## Numeric Identifier\n\t// A single `0`, or a non-zero digit followed by zero or more digits.\n\n\tcreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*');\n\tcreateToken('NUMERICIDENTIFIERLOOSE', '\\\\d+');\n\n\t// ## Non-numeric Identifier\n\t// Zero or more digits, followed by a letter or hyphen, and then zero or\n\t// more letters, digits, or hyphens.\n\n\tcreateToken('NONNUMERICIDENTIFIER', `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`);\n\n\t// ## Main Version\n\t// Three dot-separated numeric identifiers.\n\n\tcreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n\t `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n\t `(${src[t.NUMERICIDENTIFIER]})`);\n\n\tcreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n\t `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n\t `(${src[t.NUMERICIDENTIFIERLOOSE]})`);\n\n\t// ## Pre-release Version Identifier\n\t// A numeric identifier, or a non-numeric identifier.\n\n\tcreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]\n\t}|${src[t.NONNUMERICIDENTIFIER]})`);\n\n\tcreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]\n\t}|${src[t.NONNUMERICIDENTIFIER]})`);\n\n\t// ## Pre-release Version\n\t// Hyphen, followed by one or more dot-separated pre-release version\n\t// identifiers.\n\n\tcreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n\t}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`);\n\n\tcreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n\t}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`);\n\n\t// ## Build Metadata Identifier\n\t// Any combination of digits, letters, or hyphens.\n\n\tcreateToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`);\n\n\t// ## Build Metadata\n\t// Plus sign, followed by one or more period-separated build metadata\n\t// identifiers.\n\n\tcreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n\t}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`);\n\n\t// ## Full Version String\n\t// A main version, followed optionally by a pre-release version and\n\t// build metadata.\n\n\t// Note that the only major, minor, patch, and pre-release sections of\n\t// the version string are capturing groups. The build metadata is not a\n\t// capturing group, because it should not ever be used in version\n\t// comparison.\n\n\tcreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n\t}${src[t.PRERELEASE]}?${\n\t src[t.BUILD]}?`);\n\n\tcreateToken('FULL', `^${src[t.FULLPLAIN]}$`);\n\n\t// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n\t// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n\t// common in the npm registry.\n\tcreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n\t}${src[t.PRERELEASELOOSE]}?${\n\t src[t.BUILD]}?`);\n\n\tcreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`);\n\n\tcreateToken('GTLT', '((?:<|>)?=?)');\n\n\t// Something like \"2.*\" or \"1.2.x\".\n\t// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n\t// Only the first item is strictly required.\n\tcreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`);\n\tcreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`);\n\n\tcreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n\t `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n\t `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n\t `(?:${src[t.PRERELEASE]})?${\n\t src[t.BUILD]}?` +\n\t `)?)?`);\n\n\tcreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n\t `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n\t `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n\t `(?:${src[t.PRERELEASELOOSE]})?${\n\t src[t.BUILD]}?` +\n\t `)?)?`);\n\n\tcreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`);\n\tcreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`);\n\n\t// Coercion.\n\t// Extract anything that could conceivably be a part of a valid semver\n\tcreateToken('COERCEPLAIN', `${'(^|[^\\\\d])' +\n\t '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n\t `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n\t `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`);\n\tcreateToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\\\d])`);\n\tcreateToken('COERCEFULL', src[t.COERCEPLAIN] +\n\t `(?:${src[t.PRERELEASE]})?` +\n\t `(?:${src[t.BUILD]})?` +\n\t `(?:$|[^\\\\d])`);\n\tcreateToken('COERCERTL', src[t.COERCE], true);\n\tcreateToken('COERCERTLFULL', src[t.COERCEFULL], true);\n\n\t// Tilde ranges.\n\t// Meaning is \"reasonably at or greater than\"\n\tcreateToken('LONETILDE', '(?:~>?)');\n\n\tcreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true);\n\texports.tildeTrimReplace = '$1~';\n\n\tcreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`);\n\tcreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`);\n\n\t// Caret ranges.\n\t// Meaning is \"at least and backwards compatible with\"\n\tcreateToken('LONECARET', '(?:\\\\^)');\n\n\tcreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true);\n\texports.caretTrimReplace = '$1^';\n\n\tcreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`);\n\tcreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`);\n\n\t// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\n\tcreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`);\n\tcreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`);\n\n\t// An expression to strip any whitespace between the gtlt and the thing\n\t// it modifies, so that `> 1.2.3` ==> `>1.2.3`\n\tcreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n\t}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true);\n\texports.comparatorTrimReplace = '$1$2$3';\n\n\t// Something like `1.2.3 - 1.2.4`\n\t// Note that these all use the loose form, because they'll be\n\t// checked against either the strict or loose comparator form\n\t// later.\n\tcreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n\t `\\\\s+-\\\\s+` +\n\t `(${src[t.XRANGEPLAIN]})` +\n\t `\\\\s*$`);\n\n\tcreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n\t `\\\\s+-\\\\s+` +\n\t `(${src[t.XRANGEPLAINLOOSE]})` +\n\t `\\\\s*$`);\n\n\t// Star ranges basically just allow anything at all.\n\tcreateToken('STAR', '(<|>)?=?\\\\s*\\\\*');\n\t// >=0.0.0 is like a star\n\tcreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$');\n\tcreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$'); \n} (re$2, re$2.exports));\n\nvar reExports = re$2.exports;\n\n// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true });\nconst emptyOpts = Object.freeze({ });\nconst parseOptions$1 = options => {\n if (!options) {\n return emptyOpts\n }\n\n if (typeof options !== 'object') {\n return looseOption\n }\n\n return options\n};\nvar parseOptions_1 = parseOptions$1;\n\nconst numeric = /^[0-9]+$/;\nconst compareIdentifiers$1 = (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$1(b, a);\n\nvar identifiers$1 = {\n compareIdentifiers: compareIdentifiers$1,\n rcompareIdentifiers,\n};\n\nconst debug = debug_1;\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = constants$1;\nconst { safeRe: re$1, t: t$1 } = reExports;\n\nconst parseOptions = parseOptions_1;\nconst { compareIdentifiers } = identifiers$1;\nlet SemVer$d = class 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. Must be a string. Got type \"${typeof 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$1[t$1.LOOSE] : re$1[t$1.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('build 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, identifierBase) {\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, identifierBase);\n break\n case 'preminor':\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor++;\n this.inc('pre', identifier, identifierBase);\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, identifierBase);\n this.inc('pre', identifier, identifierBase);\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, identifierBase);\n }\n this.inc('pre', identifier, identifierBase);\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 const base = Number(identifierBase) ? 1 : 0;\n\n if (!identifier && identifierBase === false) {\n throw new Error('invalid increment argument: identifier is empty')\n }\n\n if (this.prerelease.length === 0) {\n this.prerelease = [base];\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 if (identifier === this.prerelease.join('.') && identifierBase === false) {\n throw new Error('invalid increment argument: identifier already exists')\n }\n this.prerelease.push(base);\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 let prerelease = [identifier, base];\n if (identifierBase === false) {\n prerelease = [identifier];\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease;\n }\n } else {\n this.prerelease = prerelease;\n }\n }\n break\n }\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.raw = this.format();\n if (this.build.length) {\n this.raw += `+${this.build.join('.')}`;\n }\n return this\n }\n};\n\nvar semver$2 = SemVer$d;\n\nconst SemVer$c = semver$2;\nconst parse$6 = (version, options, throwErrors = false) => {\n if (version instanceof SemVer$c) {\n return version\n }\n try {\n return new SemVer$c(version, options)\n } catch (er) {\n if (!throwErrors) {\n return null\n }\n throw er\n }\n};\n\nvar parse_1 = parse$6;\n\nconst parse$5 = parse_1;\nconst valid$2 = (version, options) => {\n const v = parse$5(version, options);\n return v ? v.version : null\n};\nvar valid_1 = valid$2;\n\nconst parse$4 = parse_1;\nconst clean$1 = (version, options) => {\n const s = parse$4(version.trim().replace(/^[=v]+/, ''), options);\n return s ? s.version : null\n};\nvar clean_1 = clean$1;\n\nconst SemVer$b = semver$2;\n\nconst inc$1 = (version, release, options, identifier, identifierBase) => {\n if (typeof (options) === 'string') {\n identifierBase = identifier;\n identifier = options;\n options = undefined;\n }\n\n try {\n return new SemVer$b(\n version instanceof SemVer$b ? version.version : version,\n options\n ).inc(release, identifier, identifierBase).version\n } catch (er) {\n return null\n }\n};\nvar inc_1 = inc$1;\n\nconst parse$3 = parse_1;\n\nconst diff$1 = (version1, version2) => {\n const v1 = parse$3(version1, null, true);\n const v2 = parse$3(version2, null, true);\n const comparison = v1.compare(v2);\n\n if (comparison === 0) {\n return null\n }\n\n const v1Higher = comparison > 0;\n const highVersion = v1Higher ? v1 : v2;\n const lowVersion = v1Higher ? v2 : v1;\n const highHasPre = !!highVersion.prerelease.length;\n const lowHasPre = !!lowVersion.prerelease.length;\n\n if (lowHasPre && !highHasPre) {\n // Going from prerelease -> no prerelease requires some special casing\n\n // If the low version has only a major, then it will always be a major\n // Some examples:\n // 1.0.0-1 -> 1.0.0\n // 1.0.0-1 -> 1.1.1\n // 1.0.0-1 -> 2.0.0\n if (!lowVersion.patch && !lowVersion.minor) {\n return 'major'\n }\n\n // Otherwise it can be determined by checking the high version\n\n if (highVersion.patch) {\n // anything higher than a patch bump would result in the wrong version\n return 'patch'\n }\n\n if (highVersion.minor) {\n // anything higher than a minor bump would result in the wrong version\n return 'minor'\n }\n\n // bumping major/minor/patch all have same result\n return 'major'\n }\n\n // add the `pre` prefix if we are going to a prerelease version\n const prefix = highHasPre ? 'pre' : '';\n\n if (v1.major !== v2.major) {\n return prefix + 'major'\n }\n\n if (v1.minor !== v2.minor) {\n return prefix + 'minor'\n }\n\n if (v1.patch !== v2.patch) {\n return prefix + 'patch'\n }\n\n // high and low are preleases\n return 'prerelease'\n};\n\nvar diff_1 = diff$1;\n\nconst SemVer$a = semver$2;\nconst major$1 = (a, loose) => new SemVer$a(a, loose).major;\nvar major_1 = major$1;\n\nconst SemVer$9 = semver$2;\nconst minor$1 = (a, loose) => new SemVer$9(a, loose).minor;\nvar minor_1 = minor$1;\n\nconst SemVer$8 = semver$2;\nconst patch$1 = (a, loose) => new SemVer$8(a, loose).patch;\nvar patch_1 = patch$1;\n\nconst parse$2 = parse_1;\nconst prerelease$1 = (version, options) => {\n const parsed = parse$2(version, options);\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n};\nvar prerelease_1 = prerelease$1;\n\nconst SemVer$7 = semver$2;\nconst compare$b = (a, b, loose) =>\n new SemVer$7(a, loose).compare(new SemVer$7(b, loose));\n\nvar compare_1 = compare$b;\n\nconst compare$a = compare_1;\nconst rcompare$1 = (a, b, loose) => compare$a(b, a, loose);\nvar rcompare_1 = rcompare$1;\n\nconst compare$9 = compare_1;\nconst compareLoose$1 = (a, b) => compare$9(a, b, true);\nvar compareLoose_1 = compareLoose$1;\n\nconst SemVer$6 = semver$2;\nconst compareBuild$3 = (a, b, loose) => {\n const versionA = new SemVer$6(a, loose);\n const versionB = new SemVer$6(b, loose);\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n};\nvar compareBuild_1 = compareBuild$3;\n\nconst compareBuild$2 = compareBuild_1;\nconst sort$1 = (list, loose) => list.sort((a, b) => compareBuild$2(a, b, loose));\nvar sort_1 = sort$1;\n\nconst compareBuild$1 = compareBuild_1;\nconst rsort$1 = (list, loose) => list.sort((a, b) => compareBuild$1(b, a, loose));\nvar rsort_1 = rsort$1;\n\nconst compare$8 = compare_1;\nconst gt$4 = (a, b, loose) => compare$8(a, b, loose) > 0;\nvar gt_1 = gt$4;\n\nconst compare$7 = compare_1;\nconst lt$3 = (a, b, loose) => compare$7(a, b, loose) < 0;\nvar lt_1 = lt$3;\n\nconst compare$6 = compare_1;\nconst eq$2 = (a, b, loose) => compare$6(a, b, loose) === 0;\nvar eq_1 = eq$2;\n\nconst compare$5 = compare_1;\nconst neq$2 = (a, b, loose) => compare$5(a, b, loose) !== 0;\nvar neq_1 = neq$2;\n\nconst compare$4 = compare_1;\nconst gte$3 = (a, b, loose) => compare$4(a, b, loose) >= 0;\nvar gte_1 = gte$3;\n\nconst compare$3 = compare_1;\nconst lte$3 = (a, b, loose) => compare$3(a, b, loose) <= 0;\nvar lte_1 = lte$3;\n\nconst eq$1 = eq_1;\nconst neq$1 = neq_1;\nconst gt$3 = gt_1;\nconst gte$2 = gte_1;\nconst lt$2 = lt_1;\nconst lte$2 = lte_1;\n\nconst cmp$1 = (a, op, b, loose) => {\n switch (op) {\n case '===':\n if (typeof a === 'object') {\n a = a.version;\n }\n if (typeof b === 'object') {\n b = b.version;\n }\n return a === b\n\n case '!==':\n if (typeof a === 'object') {\n a = a.version;\n }\n if (typeof b === 'object') {\n b = b.version;\n }\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq$1(a, b, loose)\n\n case '!=':\n return neq$1(a, b, loose)\n\n case '>':\n return gt$3(a, b, loose)\n\n case '>=':\n return gte$2(a, b, loose)\n\n case '<':\n return lt$2(a, b, loose)\n\n case '<=':\n return lte$2(a, b, loose)\n\n default:\n throw new TypeError(`Invalid operator: ${op}`)\n }\n};\nvar cmp_1 = cmp$1;\n\nconst SemVer$5 = semver$2;\nconst parse$1 = parse_1;\nconst { safeRe: re, t } = reExports;\n\nconst coerce$1 = (version, options) => {\n if (version instanceof SemVer$5) {\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(options.includePrerelease ? re[t.COERCEFULL] : 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 // With includePrerelease option set, '1.2.3.4-rc' wants to coerce '2.3.4-rc', not '2.3.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 const coerceRtlRegex = options.includePrerelease ? re[t.COERCERTLFULL] : re[t.COERCERTL];\n let next;\n while ((next = coerceRtlRegex.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 coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length;\n }\n // leave it in a clean state\n coerceRtlRegex.lastIndex = -1;\n }\n\n if (match === null) {\n return null\n }\n\n const major = match[2];\n const minor = match[3] || '0';\n const patch = match[4] || '0';\n const prerelease = options.includePrerelease && match[5] ? `-${match[5]}` : '';\n const build = options.includePrerelease && match[6] ? `+${match[6]}` : '';\n\n return parse$1(`${major}.${minor}.${patch}${prerelease}${build}`, options)\n};\nvar coerce_1 = coerce$1;\n\nvar lrucache;\nvar hasRequiredLrucache;\n\nfunction requireLrucache () {\n\tif (hasRequiredLrucache) return lrucache;\n\thasRequiredLrucache = 1;\n\tclass LRUCache {\n\t constructor () {\n\t this.max = 1000;\n\t this.map = new Map();\n\t }\n\n\t get (key) {\n\t const value = this.map.get(key);\n\t if (value === undefined) {\n\t return undefined\n\t } else {\n\t // Remove the key from the map and add it to the end\n\t this.map.delete(key);\n\t this.map.set(key, value);\n\t return value\n\t }\n\t }\n\n\t delete (key) {\n\t if (this.map.has(key)) {\n\t this.map.delete(key);\n\t return true\n\t } else {\n\t return false\n\t }\n\t }\n\n\t set (key, value) {\n\t const deleted = this.delete(key);\n\n\t if (!deleted && value !== undefined) {\n\t // If cache is full, delete the least recently used item\n\t if (this.map.size >= this.max) {\n\t const firstKey = this.map.keys().next().value;\n\t this.delete(firstKey);\n\t }\n\n\t this.map.set(key, value);\n\t }\n\n\t return this\n\t }\n\t}\n\n\tlrucache = LRUCache;\n\treturn lrucache;\n}\n\nvar range;\nvar hasRequiredRange;\n\nfunction requireRange () {\n\tif (hasRequiredRange) return range;\n\thasRequiredRange = 1;\n\t// hoisted class for cyclic dependency\n\tclass Range {\n\t constructor (range, options) {\n\t options = parseOptions(options);\n\n\t if (range instanceof Range) {\n\t if (\n\t range.loose === !!options.loose &&\n\t range.includePrerelease === !!options.includePrerelease\n\t ) {\n\t return range\n\t } else {\n\t return new Range(range.raw, options)\n\t }\n\t }\n\n\t if (range instanceof Comparator) {\n\t // just put it in the set and return\n\t this.raw = range.value;\n\t this.set = [[range]];\n\t this.format();\n\t return this\n\t }\n\n\t this.options = options;\n\t this.loose = !!options.loose;\n\t this.includePrerelease = !!options.includePrerelease;\n\n\t // First reduce all whitespace as much as possible so we do not have to rely\n\t // on potentially slow regexes like \\s*. This is then stored and used for\n\t // future error messages as well.\n\t this.raw = range\n\t .trim()\n\t .split(/\\s+/)\n\t .join(' ');\n\n\t // First, split on ||\n\t this.set = this.raw\n\t .split('||')\n\t // map the range to a 2d array of comparators\n\t .map(r => this.parseRange(r.trim()))\n\t // throw out any comparator lists that are empty\n\t // this generally means that it was not a valid range, which is allowed\n\t // in loose mode, but will still throw if the WHOLE range is invalid.\n\t .filter(c => c.length);\n\n\t if (!this.set.length) {\n\t throw new TypeError(`Invalid SemVer Range: ${this.raw}`)\n\t }\n\n\t // if we have any that are not the null set, throw out null sets.\n\t if (this.set.length > 1) {\n\t // keep the first one, in case they're all null sets\n\t const first = this.set[0];\n\t this.set = this.set.filter(c => !isNullSet(c[0]));\n\t if (this.set.length === 0) {\n\t this.set = [first];\n\t } else if (this.set.length > 1) {\n\t // if we have any that are *, then the range is just *\n\t for (const c of this.set) {\n\t if (c.length === 1 && isAny(c[0])) {\n\t this.set = [c];\n\t break\n\t }\n\t }\n\t }\n\t }\n\n\t this.format();\n\t }\n\n\t format () {\n\t this.range = this.set\n\t .map((comps) => comps.join(' ').trim())\n\t .join('||')\n\t .trim();\n\t return this.range\n\t }\n\n\t toString () {\n\t return this.range\n\t }\n\n\t parseRange (range) {\n\t // memoize range parsing for performance.\n\t // this is a very hot path, and fully deterministic.\n\t const memoOpts =\n\t (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) |\n\t (this.options.loose && FLAG_LOOSE);\n\t const memoKey = memoOpts + ':' + range;\n\t const cached = cache.get(memoKey);\n\t if (cached) {\n\t return cached\n\t }\n\n\t const loose = this.options.loose;\n\t // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n\t const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE];\n\t range = range.replace(hr, hyphenReplace(this.options.includePrerelease));\n\t debug('hyphen replace', range);\n\n\t // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n\t range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace);\n\t debug('comparator trim', range);\n\n\t // `~ 1.2.3` => `~1.2.3`\n\t range = range.replace(re[t.TILDETRIM], tildeTrimReplace);\n\t debug('tilde trim', range);\n\n\t // `^ 1.2.3` => `^1.2.3`\n\t range = range.replace(re[t.CARETTRIM], caretTrimReplace);\n\t debug('caret trim', range);\n\n\t // At this point, the range is completely trimmed and\n\t // ready to be split into comparators.\n\n\t let rangeList = range\n\t .split(' ')\n\t .map(comp => parseComparator(comp, this.options))\n\t .join(' ')\n\t .split(/\\s+/)\n\t // >=0.0.0 is equivalent to *\n\t .map(comp => replaceGTE0(comp, this.options));\n\n\t if (loose) {\n\t // in loose mode, throw out any that are not valid comparators\n\t rangeList = rangeList.filter(comp => {\n\t debug('loose invalid filter', comp, this.options);\n\t return !!comp.match(re[t.COMPARATORLOOSE])\n\t });\n\t }\n\t debug('range list', rangeList);\n\n\t // if any comparators are the null set, then replace with JUST null set\n\t // if more than one comparator, remove any * comparators\n\t // also, don't include the same comparator more than once\n\t const rangeMap = new Map();\n\t const comparators = rangeList.map(comp => new Comparator(comp, this.options));\n\t for (const comp of comparators) {\n\t if (isNullSet(comp)) {\n\t return [comp]\n\t }\n\t rangeMap.set(comp.value, comp);\n\t }\n\t if (rangeMap.size > 1 && rangeMap.has('')) {\n\t rangeMap.delete('');\n\t }\n\n\t const result = [...rangeMap.values()];\n\t cache.set(memoKey, result);\n\t return result\n\t }\n\n\t intersects (range, options) {\n\t if (!(range instanceof Range)) {\n\t throw new TypeError('a Range is required')\n\t }\n\n\t return this.set.some((thisComparators) => {\n\t return (\n\t isSatisfiable(thisComparators, options) &&\n\t range.set.some((rangeComparators) => {\n\t return (\n\t isSatisfiable(rangeComparators, options) &&\n\t thisComparators.every((thisComparator) => {\n\t return rangeComparators.every((rangeComparator) => {\n\t return thisComparator.intersects(rangeComparator, options)\n\t })\n\t })\n\t )\n\t })\n\t )\n\t })\n\t }\n\n\t // if ANY of the sets match ALL of its comparators, then pass\n\t test (version) {\n\t if (!version) {\n\t return false\n\t }\n\n\t if (typeof version === 'string') {\n\t try {\n\t version = new SemVer(version, this.options);\n\t } catch (er) {\n\t return false\n\t }\n\t }\n\n\t for (let i = 0; i < this.set.length; i++) {\n\t if (testSet(this.set[i], version, this.options)) {\n\t return true\n\t }\n\t }\n\t return false\n\t }\n\t}\n\n\trange = Range;\n\n\tconst LRU = requireLrucache();\n\tconst cache = new LRU();\n\n\tconst parseOptions = parseOptions_1;\n\tconst Comparator = requireComparator();\n\tconst debug = debug_1;\n\tconst SemVer = semver$2;\n\tconst {\n\t safeRe: re,\n\t t,\n\t comparatorTrimReplace,\n\t tildeTrimReplace,\n\t caretTrimReplace,\n\t} = reExports;\n\tconst { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = constants$1;\n\n\tconst isNullSet = c => c.value === '<0.0.0-0';\n\tconst isAny = c => c.value === '';\n\n\t// take a set of comparators and determine whether there\n\t// exists a version which can satisfy it\n\tconst isSatisfiable = (comparators, options) => {\n\t let result = true;\n\t const remainingComparators = comparators.slice();\n\t let testComparator = remainingComparators.pop();\n\n\t while (result && remainingComparators.length) {\n\t result = remainingComparators.every((otherComparator) => {\n\t return testComparator.intersects(otherComparator, options)\n\t });\n\n\t testComparator = remainingComparators.pop();\n\t }\n\n\t return result\n\t};\n\n\t// comprised of xranges, tildes, stars, and gtlt's at this point.\n\t// already replaced the hyphen ranges\n\t// turn into a set of JUST comparators.\n\tconst parseComparator = (comp, options) => {\n\t debug('comp', comp, options);\n\t comp = replaceCarets(comp, options);\n\t debug('caret', comp);\n\t comp = replaceTildes(comp, options);\n\t debug('tildes', comp);\n\t comp = replaceXRanges(comp, options);\n\t debug('xrange', comp);\n\t comp = replaceStars(comp, options);\n\t debug('stars', comp);\n\t return comp\n\t};\n\n\tconst isX = id => !id || id.toLowerCase() === 'x' || id === '*';\n\n\t// ~, ~> --> * (any, kinda silly)\n\t// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n\t// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n\t// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n\t// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n\t// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n\t// ~0.0.1 --> >=0.0.1 <0.1.0-0\n\tconst replaceTildes = (comp, options) => {\n\t return comp\n\t .trim()\n\t .split(/\\s+/)\n\t .map((c) => replaceTilde(c, options))\n\t .join(' ')\n\t};\n\n\tconst replaceTilde = (comp, options) => {\n\t const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE];\n\t return comp.replace(r, (_, M, m, p, pr) => {\n\t debug('tilde', comp, _, M, m, p, pr);\n\t let ret;\n\n\t if (isX(M)) {\n\t ret = '';\n\t } else if (isX(m)) {\n\t ret = `>=${M}.0.0 <${+M + 1}.0.0-0`;\n\t } else if (isX(p)) {\n\t // ~1.2 == >=1.2.0 <1.3.0-0\n\t ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`;\n\t } else if (pr) {\n\t debug('replaceTilde pr', pr);\n\t ret = `>=${M}.${m}.${p}-${pr\n\t } <${M}.${+m + 1}.0-0`;\n\t } else {\n\t // ~1.2.3 == >=1.2.3 <1.3.0-0\n\t ret = `>=${M}.${m}.${p\n\t } <${M}.${+m + 1}.0-0`;\n\t }\n\n\t debug('tilde return', ret);\n\t return ret\n\t })\n\t};\n\n\t// ^ --> * (any, kinda silly)\n\t// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n\t// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n\t// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n\t// ^1.2.3 --> >=1.2.3 <2.0.0-0\n\t// ^1.2.0 --> >=1.2.0 <2.0.0-0\n\t// ^0.0.1 --> >=0.0.1 <0.0.2-0\n\t// ^0.1.0 --> >=0.1.0 <0.2.0-0\n\tconst replaceCarets = (comp, options) => {\n\t return comp\n\t .trim()\n\t .split(/\\s+/)\n\t .map((c) => replaceCaret(c, options))\n\t .join(' ')\n\t};\n\n\tconst replaceCaret = (comp, options) => {\n\t debug('caret', comp, options);\n\t const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET];\n\t const z = options.includePrerelease ? '-0' : '';\n\t return comp.replace(r, (_, M, m, p, pr) => {\n\t debug('caret', comp, _, M, m, p, pr);\n\t let ret;\n\n\t if (isX(M)) {\n\t ret = '';\n\t } else if (isX(m)) {\n\t ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`;\n\t } else if (isX(p)) {\n\t if (M === '0') {\n\t ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`;\n\t } else {\n\t ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`;\n\t }\n\t } else if (pr) {\n\t debug('replaceCaret pr', pr);\n\t if (M === '0') {\n\t if (m === '0') {\n\t ret = `>=${M}.${m}.${p}-${pr\n\t } <${M}.${m}.${+p + 1}-0`;\n\t } else {\n\t ret = `>=${M}.${m}.${p}-${pr\n\t } <${M}.${+m + 1}.0-0`;\n\t }\n\t } else {\n\t ret = `>=${M}.${m}.${p}-${pr\n\t } <${+M + 1}.0.0-0`;\n\t }\n\t } else {\n\t debug('no pr');\n\t if (M === '0') {\n\t if (m === '0') {\n\t ret = `>=${M}.${m}.${p\n\t }${z} <${M}.${m}.${+p + 1}-0`;\n\t } else {\n\t ret = `>=${M}.${m}.${p\n\t }${z} <${M}.${+m + 1}.0-0`;\n\t }\n\t } else {\n\t ret = `>=${M}.${m}.${p\n\t } <${+M + 1}.0.0-0`;\n\t }\n\t }\n\n\t debug('caret return', ret);\n\t return ret\n\t })\n\t};\n\n\tconst replaceXRanges = (comp, options) => {\n\t debug('replaceXRanges', comp, options);\n\t return comp\n\t .split(/\\s+/)\n\t .map((c) => replaceXRange(c, options))\n\t .join(' ')\n\t};\n\n\tconst replaceXRange = (comp, options) => {\n\t comp = comp.trim();\n\t const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE];\n\t return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n\t debug('xRange', comp, ret, gtlt, M, m, p, pr);\n\t const xM = isX(M);\n\t const xm = xM || isX(m);\n\t const xp = xm || isX(p);\n\t const anyX = xp;\n\n\t if (gtlt === '=' && anyX) {\n\t gtlt = '';\n\t }\n\n\t // if we're including prereleases in the match, then we need\n\t // to fix this to -0, the lowest possible prerelease value\n\t pr = options.includePrerelease ? '-0' : '';\n\n\t if (xM) {\n\t if (gtlt === '>' || gtlt === '<') {\n\t // nothing is allowed\n\t ret = '<0.0.0-0';\n\t } else {\n\t // nothing is forbidden\n\t ret = '*';\n\t }\n\t } else if (gtlt && anyX) {\n\t // we know patch is an x, because we have any x at all.\n\t // replace X with 0\n\t if (xm) {\n\t m = 0;\n\t }\n\t p = 0;\n\n\t if (gtlt === '>') {\n\t // >1 => >=2.0.0\n\t // >1.2 => >=1.3.0\n\t gtlt = '>=';\n\t if (xm) {\n\t M = +M + 1;\n\t m = 0;\n\t p = 0;\n\t } else {\n\t m = +m + 1;\n\t p = 0;\n\t }\n\t } else if (gtlt === '<=') {\n\t // <=0.7.x is actually <0.8.0, since any 0.7.x should\n\t // pass. Similarly, <=7.x is actually <8.0.0, etc.\n\t gtlt = '<';\n\t if (xm) {\n\t M = +M + 1;\n\t } else {\n\t m = +m + 1;\n\t }\n\t }\n\n\t if (gtlt === '<') {\n\t pr = '-0';\n\t }\n\n\t ret = `${gtlt + M}.${m}.${p}${pr}`;\n\t } else if (xm) {\n\t ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`;\n\t } else if (xp) {\n\t ret = `>=${M}.${m}.0${pr\n\t } <${M}.${+m + 1}.0-0`;\n\t }\n\n\t debug('xRange return', ret);\n\n\t return ret\n\t })\n\t};\n\n\t// Because * is AND-ed with everything else in the comparator,\n\t// and '' means \"any version\", just remove the *s entirely.\n\tconst replaceStars = (comp, options) => {\n\t debug('replaceStars', comp, options);\n\t // Looseness is ignored here. star is always as loose as it gets!\n\t return comp\n\t .trim()\n\t .replace(re[t.STAR], '')\n\t};\n\n\tconst replaceGTE0 = (comp, options) => {\n\t debug('replaceGTE0', comp, options);\n\t return comp\n\t .trim()\n\t .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n\t};\n\n\t// This function is passed to string.replace(re[t.HYPHENRANGE])\n\t// M, m, patch, prerelease, build\n\t// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n\t// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n\t// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\n\t// TODO build?\n\tconst hyphenReplace = incPr => ($0,\n\t from, fM, fm, fp, fpr, fb,\n\t to, tM, tm, tp, tpr) => {\n\t if (isX(fM)) {\n\t from = '';\n\t } else if (isX(fm)) {\n\t from = `>=${fM}.0.0${incPr ? '-0' : ''}`;\n\t } else if (isX(fp)) {\n\t from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`;\n\t } else if (fpr) {\n\t from = `>=${from}`;\n\t } else {\n\t from = `>=${from}${incPr ? '-0' : ''}`;\n\t }\n\n\t if (isX(tM)) {\n\t to = '';\n\t } else if (isX(tm)) {\n\t to = `<${+tM + 1}.0.0-0`;\n\t } else if (isX(tp)) {\n\t to = `<${tM}.${+tm + 1}.0-0`;\n\t } else if (tpr) {\n\t to = `<=${tM}.${tm}.${tp}-${tpr}`;\n\t } else if (incPr) {\n\t to = `<${tM}.${tm}.${+tp + 1}-0`;\n\t } else {\n\t to = `<=${to}`;\n\t }\n\n\t return `${from} ${to}`.trim()\n\t};\n\n\tconst testSet = (set, version, options) => {\n\t for (let i = 0; i < set.length; i++) {\n\t if (!set[i].test(version)) {\n\t return false\n\t }\n\t }\n\n\t if (version.prerelease.length && !options.includePrerelease) {\n\t // Find the set of versions that are allowed to have prereleases\n\t // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n\t // That should allow `1.2.3-pr.2` to pass.\n\t // However, `1.2.4-alpha.notready` should NOT be allowed,\n\t // even though it's within the range set by the comparators.\n\t for (let i = 0; i < set.length; i++) {\n\t debug(set[i].semver);\n\t if (set[i].semver === Comparator.ANY) {\n\t continue\n\t }\n\n\t if (set[i].semver.prerelease.length > 0) {\n\t const allowed = set[i].semver;\n\t if (allowed.major === version.major &&\n\t allowed.minor === version.minor &&\n\t allowed.patch === version.patch) {\n\t return true\n\t }\n\t }\n\t }\n\n\t // Version has a -pre, but it's not one of the ones we like.\n\t return false\n\t }\n\n\t return true\n\t};\n\treturn range;\n}\n\nvar comparator;\nvar hasRequiredComparator;\n\nfunction requireComparator () {\n\tif (hasRequiredComparator) return comparator;\n\thasRequiredComparator = 1;\n\tconst ANY = Symbol('SemVer ANY');\n\t// hoisted class for cyclic dependency\n\tclass Comparator {\n\t static get ANY () {\n\t return ANY\n\t }\n\n\t constructor (comp, options) {\n\t options = parseOptions(options);\n\n\t if (comp instanceof Comparator) {\n\t if (comp.loose === !!options.loose) {\n\t return comp\n\t } else {\n\t comp = comp.value;\n\t }\n\t }\n\n\t comp = comp.trim().split(/\\s+/).join(' ');\n\t debug('comparator', comp, options);\n\t this.options = options;\n\t this.loose = !!options.loose;\n\t this.parse(comp);\n\n\t if (this.semver === ANY) {\n\t this.value = '';\n\t } else {\n\t this.value = this.operator + this.semver.version;\n\t }\n\n\t debug('comp', this);\n\t }\n\n\t parse (comp) {\n\t const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR];\n\t const m = comp.match(r);\n\n\t if (!m) {\n\t throw new TypeError(`Invalid comparator: ${comp}`)\n\t }\n\n\t this.operator = m[1] !== undefined ? m[1] : '';\n\t if (this.operator === '=') {\n\t this.operator = '';\n\t }\n\n\t // if it literally is just '>' or '' then allow anything.\n\t if (!m[2]) {\n\t this.semver = ANY;\n\t } else {\n\t this.semver = new SemVer(m[2], this.options.loose);\n\t }\n\t }\n\n\t toString () {\n\t return this.value\n\t }\n\n\t test (version) {\n\t debug('Comparator.test', version, this.options.loose);\n\n\t if (this.semver === ANY || version === ANY) {\n\t return true\n\t }\n\n\t if (typeof version === 'string') {\n\t try {\n\t version = new SemVer(version, this.options);\n\t } catch (er) {\n\t return false\n\t }\n\t }\n\n\t return cmp(version, this.operator, this.semver, this.options)\n\t }\n\n\t intersects (comp, options) {\n\t if (!(comp instanceof Comparator)) {\n\t throw new TypeError('a Comparator is required')\n\t }\n\n\t if (this.operator === '') {\n\t if (this.value === '') {\n\t return true\n\t }\n\t return new Range(comp.value, options).test(this.value)\n\t } else if (comp.operator === '') {\n\t if (comp.value === '') {\n\t return true\n\t }\n\t return new Range(this.value, options).test(comp.semver)\n\t }\n\n\t options = parseOptions(options);\n\n\t // Special cases where nothing can possibly be lower\n\t if (options.includePrerelease &&\n\t (this.value === '<0.0.0-0' || comp.value === '<0.0.0-0')) {\n\t return false\n\t }\n\t if (!options.includePrerelease &&\n\t (this.value.startsWith('<0.0.0') || comp.value.startsWith('<0.0.0'))) {\n\t return false\n\t }\n\n\t // Same direction increasing (> or >=)\n\t if (this.operator.startsWith('>') && comp.operator.startsWith('>')) {\n\t return true\n\t }\n\t // Same direction decreasing (< or <=)\n\t if (this.operator.startsWith('<') && comp.operator.startsWith('<')) {\n\t return true\n\t }\n\t // same SemVer and both sides are inclusive (<= or >=)\n\t if (\n\t (this.semver.version === comp.semver.version) &&\n\t this.operator.includes('=') && comp.operator.includes('=')) {\n\t return true\n\t }\n\t // opposite directions less than\n\t if (cmp(this.semver, '<', comp.semver, options) &&\n\t this.operator.startsWith('>') && comp.operator.startsWith('<')) {\n\t return true\n\t }\n\t // opposite directions greater than\n\t if (cmp(this.semver, '>', comp.semver, options) &&\n\t this.operator.startsWith('<') && comp.operator.startsWith('>')) {\n\t return true\n\t }\n\t return false\n\t }\n\t}\n\n\tcomparator = Comparator;\n\n\tconst parseOptions = parseOptions_1;\n\tconst { safeRe: re, t } = reExports;\n\tconst cmp = cmp_1;\n\tconst debug = debug_1;\n\tconst SemVer = semver$2;\n\tconst Range = requireRange();\n\treturn comparator;\n}\n\nconst Range$9 = requireRange();\nconst satisfies$4 = (version, range, options) => {\n try {\n range = new Range$9(range, options);\n } catch (er) {\n return false\n }\n return range.test(version)\n};\nvar satisfies_1 = satisfies$4;\n\nconst Range$8 = requireRange();\n\n// Mostly just for testing and legacy API reasons\nconst toComparators$1 = (range, options) =>\n new Range$8(range, options).set\n .map(comp => comp.map(c => c.value).join(' ').trim().split(' '));\n\nvar toComparators_1 = toComparators$1;\n\nconst SemVer$4 = semver$2;\nconst Range$7 = requireRange();\n\nconst maxSatisfying$1 = (versions, range, options) => {\n let max = null;\n let maxSV = null;\n let rangeObj = null;\n try {\n rangeObj = new Range$7(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$4(max, options);\n }\n }\n });\n return max\n};\nvar maxSatisfying_1 = maxSatisfying$1;\n\nconst SemVer$3 = semver$2;\nconst Range$6 = requireRange();\nconst minSatisfying$1 = (versions, range, options) => {\n let min = null;\n let minSV = null;\n let rangeObj = null;\n try {\n rangeObj = new Range$6(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$3(min, options);\n }\n }\n });\n return min\n};\nvar minSatisfying_1 = minSatisfying$1;\n\nconst SemVer$2 = semver$2;\nconst Range$5 = requireRange();\nconst gt$2 = gt_1;\n\nconst minVersion$1 = (range, loose) => {\n range = new Range$5(range, loose);\n\n let minver = new SemVer$2('0.0.0');\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer$2('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$2(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$2(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$2(minver, setMin))) {\n minver = setMin;\n }\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n};\nvar minVersion_1 = minVersion$1;\n\nconst Range$4 = requireRange();\nconst validRange$1 = (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$4(range, options).range || '*'\n } catch (er) {\n return null\n }\n};\nvar valid$1 = validRange$1;\n\nconst SemVer$1 = semver$2;\nconst Comparator$2 = requireComparator();\nconst { ANY: ANY$1 } = Comparator$2;\nconst Range$3 = requireRange();\nconst satisfies$3 = satisfies_1;\nconst gt$1 = gt_1;\nconst lt$1 = lt_1;\nconst lte$1 = lte_1;\nconst gte$1 = gte_1;\n\nconst outside$3 = (version, range, hilo, options) => {\n version = new SemVer$1(version, options);\n range = new Range$3(range, options);\n\n let gtfn, ltefn, ltfn, comp, ecomp;\n switch (hilo) {\n case '>':\n gtfn = gt$1;\n ltefn = lte$1;\n ltfn = lt$1;\n comp = '>';\n ecomp = '>=';\n break\n case '<':\n gtfn = lt$1;\n ltefn = gte$1;\n ltfn = gt$1;\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$3(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$1) {\n comparator = new Comparator$2('>=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\nvar outside_1 = outside$3;\n\n// Determine if version is greater than all the versions possible in the range.\nconst outside$2 = outside_1;\nconst gtr$1 = (version, range, options) => outside$2(version, range, '>', options);\nvar gtr_1 = gtr$1;\n\nconst outside$1 = outside_1;\n// Determine if version is less than all the versions possible in the range\nconst ltr$1 = (version, range, options) => outside$1(version, range, '<', options);\nvar ltr_1 = ltr$1;\n\nconst Range$2 = requireRange();\nconst intersects$1 = (r1, r2, options) => {\n r1 = new Range$2(r1, options);\n r2 = new Range$2(r2, options);\n return r1.intersects(r2, options)\n};\nvar intersects_1 = intersects$1;\n\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$2 = satisfies_1;\nconst compare$2 = compare_1;\nvar simplify = (versions, range, options) => {\n const set = [];\n let first = null;\n let prev = null;\n const v = versions.sort((a, b) => compare$2(a, b, options));\n for (const version of v) {\n const included = satisfies$2(version, range, options);\n if (included) {\n prev = version;\n if (!first) {\n first = version;\n }\n } else {\n if (prev) {\n set.push([first, prev]);\n }\n prev = null;\n first = null;\n }\n }\n if (first) {\n set.push([first, null]);\n }\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 }\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\nconst Range$1 = requireRange();\nconst Comparator$1 = requireComparator();\nconst { ANY } = Comparator$1;\nconst satisfies$1 = satisfies_1;\nconst compare$1 = compare_1;\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$1 = (sub, dom, options = {}) => {\n if (sub === dom) {\n return true\n }\n\n sub = new Range$1(sub, options);\n dom = new Range$1(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 }\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 }\n return true\n};\n\nconst minimumVersionWithPreRelease = [new Comparator$1('>=0.0.0-0')];\nconst minimumVersion = [new Comparator$1('>=0.0.0')];\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub === dom) {\n return true\n }\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 = minimumVersionWithPreRelease;\n } else {\n sub = minimumVersion;\n }\n }\n\n if (dom.length === 1 && dom[0].semver === ANY) {\n if (options.includePrerelease) {\n return true\n } else {\n dom = minimumVersion;\n }\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\n if (eqSet.size > 1) {\n return null\n }\n\n let gtltComp;\n if (gt && lt) {\n gtltComp = compare$1(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\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies$1(eq, String(gt), options)) {\n return null\n }\n\n if (lt && !satisfies$1(eq, String(lt), options)) {\n return null\n }\n\n for (const c of dom) {\n if (!satisfies$1(eq, String(c), options)) {\n return false\n }\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 }\n } else if (gt.operator === '>=' && !satisfies$1(gt.semver, String(c), options)) {\n return false\n }\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 }\n } else if (lt.operator === '<=' && !satisfies$1(lt.semver, String(c), options)) {\n return false\n }\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0) {\n return false\n }\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\n if (lt && hasDomGT && !gt && gtltComp !== 0) {\n return false\n }\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\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 }\n const comp = compare$1(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 }\n const comp = compare$1(a.semver, b.semver, options);\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n};\n\nvar subset_1 = subset$1;\n\n// just pre-load all the stuff that index.js lazily exports\nconst internalRe = reExports;\nconst constants = constants$1;\nconst SemVer = semver$2;\nconst identifiers = identifiers$1;\nconst parse = parse_1;\nconst valid = valid_1;\nconst clean = clean_1;\nconst inc = inc_1;\nconst diff = diff_1;\nconst major = major_1;\nconst minor = minor_1;\nconst patch = patch_1;\nconst prerelease = prerelease_1;\nconst compare = compare_1;\nconst rcompare = rcompare_1;\nconst compareLoose = compareLoose_1;\nconst compareBuild = compareBuild_1;\nconst sort = sort_1;\nconst rsort = rsort_1;\nconst gt = gt_1;\nconst lt = lt_1;\nconst eq = eq_1;\nconst neq = neq_1;\nconst gte = gte_1;\nconst lte = lte_1;\nconst cmp = cmp_1;\nconst coerce = coerce_1;\nconst Comparator = requireComparator();\nconst Range = requireRange();\nconst satisfies = satisfies_1;\nconst toComparators = toComparators_1;\nconst maxSatisfying = maxSatisfying_1;\nconst minSatisfying = minSatisfying_1;\nconst minVersion = minVersion_1;\nconst validRange = valid$1;\nconst outside = outside_1;\nconst gtr = gtr_1;\nconst ltr = ltr_1;\nconst intersects = intersects_1;\nconst simplifyRange = simplify;\nconst subset = subset_1;\nvar semver$1 = {\n parse,\n valid,\n clean,\n inc,\n diff,\n major,\n minor,\n patch,\n prerelease,\n compare,\n rcompare,\n compareLoose,\n compareBuild,\n sort,\n rsort,\n gt,\n lt,\n eq,\n neq,\n gte,\n lte,\n cmp,\n coerce,\n Comparator,\n Range,\n satisfies,\n toComparators,\n maxSatisfying,\n minSatisfying,\n minVersion,\n validRange,\n outside,\n gtr,\n ltr,\n intersects,\n simplifyRange,\n subset,\n SemVer,\n re: internalRe.re,\n src: internalRe.src,\n tokens: internalRe.t,\n SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION,\n RELEASE_TYPES: constants.RELEASE_TYPES,\n compareIdentifiers: identifiers.compareIdentifiers,\n rcompareIdentifiers: identifiers.rcompareIdentifiers,\n};\n\nconst semver = semver$1;\n\nconst permanentModules = [\n 'assert',\n 'buffer',\n 'child_process',\n 'cluster',\n 'console',\n 'constants',\n 'crypto',\n 'dgram',\n 'dns',\n 'domain',\n 'events',\n 'fs',\n 'http',\n 'https',\n 'module',\n 'net',\n 'os',\n 'path',\n 'punycode',\n 'querystring',\n 'readline',\n 'repl',\n 'stream',\n 'string_decoder',\n 'sys',\n 'timers',\n 'tls',\n 'tty',\n 'url',\n 'util',\n 'vm',\n 'zlib'\n];\n\nconst versionLockedModules = {\n freelist: '<6.0.0',\n v8: '>=1.0.0',\n process: '>=1.1.0',\n inspector: '>=8.0.0',\n async_hooks: '>=8.1.0',\n http2: '>=8.4.0',\n perf_hooks: '>=8.5.0',\n trace_events: '>=10.0.0',\n worker_threads: '>=12.0.0',\n 'node:test': '>=18.0.0'\n};\n\nconst experimentalModules = {\n worker_threads: '>=10.5.0',\n wasi: '>=12.16.0',\n diagnostics_channel: '^14.17.0 || >=15.1.0'\n};\n\nvar builtins = ({ version = process.version, experimental = false } = {}) => {\n const builtins = [...permanentModules];\n\n for (const [name, semverRange] of Object.entries(versionLockedModules)) {\n if (version === '*' || semver.satisfies(version, semverRange)) {\n builtins.push(name);\n }\n }\n\n if (experimental) {\n for (const [name, semverRange] of Object.entries(experimentalModules)) {\n if (\n !builtins.includes(name) &&\n (version === '*' || semver.satisfies(version, semverRange))\n ) {\n builtins.push(name);\n }\n }\n }\n\n return builtins\n};\n\n// Manually \u201ctree shaken\u201d from:\n// \n// Removed the native dependency.\n// Also: no need to cache, we do that in resolve already.\n\n\nconst reader = {read};\nvar packageJsonReader = reader;\n\n/**\n * @param {string} jsonPath\n * @returns {{string: string}}\n */\nfunction read(jsonPath) {\n return find(path.dirname(jsonPath))\n}\n\n/**\n * @param {string} dir\n * @returns {{string: string}}\n */\nfunction find(dir) {\n try {\n const string = fs.readFileSync(\n path.toNamespacedPath(path.join(dir, 'package.json')),\n 'utf8'\n );\n return {string}\n } catch (error) {\n if (error.code === 'ENOENT') {\n const parent = path.dirname(dir);\n if (dir !== parent) return find(parent)\n return {string: undefined}\n // Throw all other errors.\n /* c8 ignore next 4 */\n }\n\n throw error\n }\n}\n\n// Manually \u201ctree shaken\u201d from:\n// \n\nconst isWindows = process.platform === 'win32';\n\nconst own$1 = {}.hasOwnProperty;\n\nconst codes = {};\n\n/**\n * @typedef {(...args: unknown[]) => string} MessageFunction\n */\n\n/** @type {Map} */\nconst messages = new Map();\nconst nodeInternalPrefix = '__node_internal_';\n/** @type {number} */\nlet userStackTraceLimit;\n\ncodes.ERR_INVALID_MODULE_SPECIFIER = createError(\n 'ERR_INVALID_MODULE_SPECIFIER',\n /**\n * @param {string} request\n * @param {string} reason\n * @param {string} [base]\n */\n (request, reason, base = undefined) => {\n return `Invalid module \"${request}\" ${reason}${\n base ? ` imported from ${base}` : ''\n }`\n },\n TypeError\n);\n\ncodes.ERR_INVALID_PACKAGE_CONFIG = createError(\n 'ERR_INVALID_PACKAGE_CONFIG',\n /**\n * @param {string} path\n * @param {string} [base]\n * @param {string} [message]\n */\n (path, base, message) => {\n return `Invalid package config ${path}${\n base ? ` while importing ${base}` : ''\n }${message ? `. ${message}` : ''}`\n },\n Error\n);\n\ncodes.ERR_INVALID_PACKAGE_TARGET = createError(\n 'ERR_INVALID_PACKAGE_TARGET',\n /**\n * @param {string} pkgPath\n * @param {string} key\n * @param {unknown} target\n * @param {boolean} [isImport=false]\n * @param {string} [base]\n */\n (pkgPath, key, target, isImport = false, base = undefined) => {\n const relError =\n typeof target === 'string' &&\n !isImport &&\n target.length > 0 &&\n !target.startsWith('./');\n if (key === '.') {\n assert(isImport === false);\n return (\n `Invalid \"exports\" main target ${JSON.stringify(target)} defined ` +\n `in the package config ${pkgPath}package.json${\n base ? ` imported from ${base}` : ''\n }${relError ? '; targets must start with \"./\"' : ''}`\n )\n }\n\n return `Invalid \"${\n isImport ? 'imports' : 'exports'\n }\" target ${JSON.stringify(\n target\n )} defined for '${key}' in the package config ${pkgPath}package.json${\n base ? ` imported from ${base}` : ''\n }${relError ? '; targets must start with \"./\"' : ''}`\n },\n Error\n);\n\ncodes.ERR_MODULE_NOT_FOUND = createError(\n 'ERR_MODULE_NOT_FOUND',\n /**\n * @param {string} path\n * @param {string} base\n * @param {string} [type]\n */\n (path, base, type = 'package') => {\n return `Cannot find ${type} '${path}' imported from ${base}`\n },\n Error\n);\n\ncodes.ERR_PACKAGE_IMPORT_NOT_DEFINED = createError(\n 'ERR_PACKAGE_IMPORT_NOT_DEFINED',\n /**\n * @param {string} specifier\n * @param {string} packagePath\n * @param {string} base\n */\n (specifier, packagePath, base) => {\n return `Package import specifier \"${specifier}\" is not defined${\n packagePath ? ` in package ${packagePath}package.json` : ''\n } imported from ${base}`\n },\n TypeError\n);\n\ncodes.ERR_PACKAGE_PATH_NOT_EXPORTED = createError(\n 'ERR_PACKAGE_PATH_NOT_EXPORTED',\n /**\n * @param {string} pkgPath\n * @param {string} subpath\n * @param {string} [base]\n */\n (pkgPath, subpath, base = undefined) => {\n if (subpath === '.')\n return `No \"exports\" main defined in ${pkgPath}package.json${\n base ? ` imported from ${base}` : ''\n }`\n return `Package subpath '${subpath}' is not defined by \"exports\" in ${pkgPath}package.json${\n base ? ` imported from ${base}` : ''\n }`\n },\n Error\n);\n\ncodes.ERR_UNSUPPORTED_DIR_IMPORT = createError(\n 'ERR_UNSUPPORTED_DIR_IMPORT',\n \"Directory import '%s' is not supported \" +\n 'resolving ES modules imported from %s',\n Error\n);\n\ncodes.ERR_UNKNOWN_FILE_EXTENSION = createError(\n 'ERR_UNKNOWN_FILE_EXTENSION',\n 'Unknown file extension \"%s\" for %s',\n TypeError\n);\n\ncodes.ERR_INVALID_ARG_VALUE = createError(\n 'ERR_INVALID_ARG_VALUE',\n /**\n * @param {string} name\n * @param {unknown} value\n * @param {string} [reason='is invalid']\n */\n (name, value, reason = 'is invalid') => {\n let inspected = inspect(value);\n\n if (inspected.length > 128) {\n inspected = `${inspected.slice(0, 128)}...`;\n }\n\n const type = name.includes('.') ? 'property' : 'argument';\n\n return `The ${type} '${name}' ${reason}. Received ${inspected}`\n },\n TypeError\n // Note: extra classes have been shaken out.\n // , RangeError\n);\n\ncodes.ERR_UNSUPPORTED_ESM_URL_SCHEME = createError(\n 'ERR_UNSUPPORTED_ESM_URL_SCHEME',\n /**\n * @param {URL} url\n */\n (url) => {\n let message =\n 'Only file and data URLs are supported by the default ESM loader';\n\n if (isWindows && url.protocol.length === 2) {\n message += '. On Windows, absolute paths must be valid file:// URLs';\n }\n\n message += `. Received protocol '${url.protocol}'`;\n return message\n },\n Error\n);\n\n/**\n * Utility function for registering the error codes. Only used here. Exported\n * *only* to allow for testing.\n * @param {string} sym\n * @param {MessageFunction|string} value\n * @param {ErrorConstructor} def\n * @returns {new (...args: unknown[]) => Error}\n */\nfunction createError(sym, value, def) {\n // Special case for SystemError that formats the error message differently\n // The SystemErrors only have SystemError as their base classes.\n messages.set(sym, value);\n\n return makeNodeErrorWithCode(def, sym)\n}\n\n/**\n * @param {ErrorConstructor} Base\n * @param {string} key\n * @returns {ErrorConstructor}\n */\nfunction makeNodeErrorWithCode(Base, key) {\n // @ts-expect-error It\u2019s a Node error.\n return NodeError\n /**\n * @param {unknown[]} args\n */\n function NodeError(...args) {\n const limit = Error.stackTraceLimit;\n if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = 0;\n const error = new Base();\n // Reset the limit and setting the name property.\n if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = limit;\n const message = getMessage(key, args, error);\n Object.defineProperty(error, 'message', {\n value: message,\n enumerable: false,\n writable: true,\n configurable: true\n });\n Object.defineProperty(error, 'toString', {\n /** @this {Error} */\n value() {\n return `${this.name} [${key}]: ${this.message}`\n },\n enumerable: false,\n writable: true,\n configurable: true\n });\n addCodeToName(error, Base.name, key);\n // @ts-expect-error It\u2019s a Node error.\n error.code = key;\n return error\n }\n}\n\nconst addCodeToName = hideStackFrames(\n /**\n * @param {Error} error\n * @param {string} name\n * @param {string} code\n * @returns {void}\n */\n function (error, name, code) {\n // Set the stack\n error = captureLargerStackTrace(error);\n // Add the error code to the name to include it in the stack trace.\n error.name = `${name} [${code}]`;\n // Access the stack to generate the error message including the error code\n // from the name.\n error.stack; // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n if (name === 'SystemError') {\n Object.defineProperty(error, 'name', {\n value: name,\n enumerable: false,\n writable: true,\n configurable: true\n });\n } else {\n delete error.name;\n }\n }\n);\n\n/**\n * @returns {boolean}\n */\nfunction isErrorStackTraceLimitWritable() {\n const desc = Object.getOwnPropertyDescriptor(Error, 'stackTraceLimit');\n if (desc === undefined) {\n return Object.isExtensible(Error)\n }\n\n return own$1.call(desc, 'writable') ? desc.writable : desc.set !== undefined\n}\n\n/**\n * This function removes unnecessary frames from Node.js core errors.\n * @template {(...args: unknown[]) => unknown} T\n * @type {(fn: T) => T}\n */\nfunction hideStackFrames(fn) {\n // We rename the functions that will be hidden to cut off the stacktrace\n // at the outermost one\n const hidden = nodeInternalPrefix + fn.name;\n Object.defineProperty(fn, 'name', {value: hidden});\n return fn\n}\n\nconst captureLargerStackTrace = hideStackFrames(\n /**\n * @param {Error} error\n * @returns {Error}\n */\n function (error) {\n const stackTraceLimitIsWritable = isErrorStackTraceLimitWritable();\n if (stackTraceLimitIsWritable) {\n userStackTraceLimit = Error.stackTraceLimit;\n Error.stackTraceLimit = Number.POSITIVE_INFINITY;\n }\n\n Error.captureStackTrace(error);\n\n // Reset the limit\n if (stackTraceLimitIsWritable) Error.stackTraceLimit = userStackTraceLimit;\n\n return error\n }\n);\n\n/**\n * @param {string} key\n * @param {unknown[]} args\n * @param {Error} self\n * @returns {string}\n */\nfunction getMessage(key, args, self) {\n const message = messages.get(key);\n\n if (typeof message === 'function') {\n assert(\n message.length <= args.length, // Default options do not count.\n `Code: ${key}; The provided arguments length (${args.length}) does not ` +\n `match the required ones (${message.length}).`\n );\n return Reflect.apply(message, self, args)\n }\n\n const expectedLength = (message.match(/%[dfijoOs]/g) || []).length;\n assert(\n expectedLength === args.length,\n `Code: ${key}; The provided arguments length (${args.length}) does not ` +\n `match the required ones (${expectedLength}).`\n );\n if (args.length === 0) return message\n\n args.unshift(message);\n return Reflect.apply(format, null, args)\n}\n\n// Manually \u201ctree shaken\u201d from:\n// \n\nconst {ERR_UNKNOWN_FILE_EXTENSION} = codes;\n\nconst extensionFormatMap = {\n __proto__: null,\n '.cjs': 'commonjs',\n '.js': 'module',\n '.mjs': 'module'\n};\n\n/**\n * @param {string} url\n * @returns {{format: string|null}}\n */\nfunction defaultGetFormat(url) {\n if (url.startsWith('node:')) {\n return {format: 'builtin'}\n }\n\n const parsed = new URL(url);\n\n if (parsed.protocol === 'data:') {\n const {1: mime} = /^([^/]+\\/[^;,]+)[^,]*?(;base64)?,/.exec(\n parsed.pathname\n ) || [null, null];\n const format = mime === 'text/javascript' ? 'module' : null;\n return {format}\n }\n\n if (parsed.protocol === 'file:') {\n const ext = path.extname(parsed.pathname);\n /** @type {string} */\n let format;\n if (ext === '.js') {\n format = getPackageType(parsed.href) === 'module' ? 'module' : 'commonjs';\n } else {\n format = extensionFormatMap[ext];\n }\n\n if (!format) {\n throw new ERR_UNKNOWN_FILE_EXTENSION(ext, fileURLToPath(url))\n }\n\n return {format: format || null}\n }\n\n return {format: null}\n}\n\n// Manually \u201ctree shaken\u201d from:\n// \n\n\nconst listOfBuiltins = builtins();\n\nconst {\n ERR_INVALID_MODULE_SPECIFIER,\n ERR_INVALID_PACKAGE_CONFIG,\n ERR_INVALID_PACKAGE_TARGET,\n ERR_MODULE_NOT_FOUND,\n ERR_PACKAGE_IMPORT_NOT_DEFINED,\n ERR_PACKAGE_PATH_NOT_EXPORTED,\n ERR_UNSUPPORTED_DIR_IMPORT,\n ERR_UNSUPPORTED_ESM_URL_SCHEME,\n ERR_INVALID_ARG_VALUE\n} = codes;\n\nconst own = {}.hasOwnProperty;\n\nconst DEFAULT_CONDITIONS = Object.freeze(['node', 'import']);\nconst DEFAULT_CONDITIONS_SET = new Set(DEFAULT_CONDITIONS);\n\nconst invalidSegmentRegEx = /(^|\\\\|\\/)(\\.\\.?|node_modules)(\\\\|\\/|$)/;\nconst patternRegEx = /\\*/g;\nconst encodedSepRegEx = /%2f|%2c/i;\n/** @type {Set} */\nconst emittedPackageWarnings = new Set();\n/** @type {Map} */\nconst packageJsonCache = new Map();\n\n/**\n * @param {string} match\n * @param {URL} pjsonUrl\n * @param {boolean} isExports\n * @param {URL} base\n * @returns {void}\n */\nfunction emitFolderMapDeprecation(match, pjsonUrl, isExports, base) {\n const pjsonPath = fileURLToPath(pjsonUrl);\n\n if (emittedPackageWarnings.has(pjsonPath + '|' + match)) return\n emittedPackageWarnings.add(pjsonPath + '|' + match);\n process.emitWarning(\n `Use of deprecated folder mapping \"${match}\" in the ${\n isExports ? '\"exports\"' : '\"imports\"'\n } field module resolution of the package at ${pjsonPath}${\n base ? ` imported from ${fileURLToPath(base)}` : ''\n }.\\n` +\n `Update this package.json to use a subpath pattern like \"${match}*\".`,\n 'DeprecationWarning',\n 'DEP0148'\n );\n}\n\n/**\n * @param {URL} url\n * @param {URL} packageJsonUrl\n * @param {URL} base\n * @param {unknown} [main]\n * @returns {void}\n */\nfunction emitLegacyIndexDeprecation(url, packageJsonUrl, base, main) {\n const {format} = defaultGetFormat(url.href);\n if (format !== 'module') return\n const path = fileURLToPath(url.href);\n const pkgPath = fileURLToPath(new URL('.', packageJsonUrl));\n const basePath = fileURLToPath(base);\n if (main)\n process.emitWarning(\n `Package ${pkgPath} has a \"main\" field set to ${JSON.stringify(main)}, ` +\n `excluding the full filename and extension to the resolved file at \"${path.slice(\n pkgPath.length\n )}\", imported from ${basePath}.\\n Automatic extension resolution of the \"main\" field is` +\n 'deprecated for ES modules.',\n 'DeprecationWarning',\n 'DEP0151'\n );\n else\n process.emitWarning(\n `No \"main\" or \"exports\" field defined in the package.json for ${pkgPath} resolving the main entry point \"${path.slice(\n pkgPath.length\n )}\", imported from ${basePath}.\\nDefault \"index\" lookups for the main are deprecated for ES modules.`,\n 'DeprecationWarning',\n 'DEP0151'\n );\n}\n\n/**\n * @param {string[]} [conditions]\n * @returns {Set}\n */\nfunction getConditionsSet(conditions) {\n if (conditions !== undefined && conditions !== DEFAULT_CONDITIONS) {\n if (!Array.isArray(conditions)) {\n throw new ERR_INVALID_ARG_VALUE(\n 'conditions',\n conditions,\n 'expected an array'\n )\n }\n\n return new Set(conditions)\n }\n\n return DEFAULT_CONDITIONS_SET\n}\n\n/**\n * @param {string} path\n * @returns {Stats}\n */\nfunction tryStatSync(path) {\n // Note: from Node 15 onwards we can use `throwIfNoEntry: false` instead.\n try {\n return statSync(path)\n } catch {\n return new Stats()\n }\n}\n\n/**\n * @param {string} path\n * @param {string|URL} specifier Note: `specifier` is actually optional, not base.\n * @param {URL} [base]\n * @returns {PackageConfig}\n */\nfunction getPackageConfig(path, specifier, base) {\n const existing = packageJsonCache.get(path);\n if (existing !== undefined) {\n return existing\n }\n\n const source = packageJsonReader.read(path).string;\n\n if (source === undefined) {\n /** @type {PackageConfig} */\n const packageConfig = {\n pjsonPath: path,\n exists: false,\n main: undefined,\n name: undefined,\n type: 'none',\n exports: undefined,\n imports: undefined\n };\n packageJsonCache.set(path, packageConfig);\n return packageConfig\n }\n\n /** @type {Object.} */\n let packageJson;\n try {\n packageJson = JSON.parse(source);\n } catch (error) {\n throw new ERR_INVALID_PACKAGE_CONFIG(\n path,\n (base ? `\"${specifier}\" from ` : '') + fileURLToPath(base || specifier),\n error.message\n )\n }\n\n const {exports, imports, main, name, type} = packageJson;\n\n /** @type {PackageConfig} */\n const packageConfig = {\n pjsonPath: path,\n exists: true,\n main: typeof main === 'string' ? main : undefined,\n name: typeof name === 'string' ? name : undefined,\n type: type === 'module' || type === 'commonjs' ? type : 'none',\n // @ts-expect-error Assume `Object.`.\n exports,\n // @ts-expect-error Assume `Object.`.\n imports: imports && typeof imports === 'object' ? imports : undefined\n };\n packageJsonCache.set(path, packageConfig);\n return packageConfig\n}\n\n/**\n * @param {URL|string} resolved\n * @returns {PackageConfig}\n */\nfunction getPackageScopeConfig(resolved) {\n let packageJsonUrl = new URL('./package.json', resolved);\n\n while (true) {\n const packageJsonPath = packageJsonUrl.pathname;\n\n if (packageJsonPath.endsWith('node_modules/package.json')) break\n\n const packageConfig = getPackageConfig(\n fileURLToPath(packageJsonUrl),\n resolved\n );\n if (packageConfig.exists) return packageConfig\n\n const lastPackageJsonUrl = packageJsonUrl;\n packageJsonUrl = new URL('../package.json', packageJsonUrl);\n\n // Terminates at root where ../package.json equals ../../package.json\n // (can't just check \"/package.json\" for Windows support).\n if (packageJsonUrl.pathname === lastPackageJsonUrl.pathname) break\n }\n\n const packageJsonPath = fileURLToPath(packageJsonUrl);\n /** @type {PackageConfig} */\n const packageConfig = {\n pjsonPath: packageJsonPath,\n exists: false,\n main: undefined,\n name: undefined,\n type: 'none',\n exports: undefined,\n imports: undefined\n };\n packageJsonCache.set(packageJsonPath, packageConfig);\n return packageConfig\n}\n\n/**\n * Legacy CommonJS main resolution:\n * 1. let M = pkg_url + (json main field)\n * 2. TRY(M, M.js, M.json, M.node)\n * 3. TRY(M/index.js, M/index.json, M/index.node)\n * 4. TRY(pkg_url/index.js, pkg_url/index.json, pkg_url/index.node)\n * 5. NOT_FOUND\n *\n * @param {URL} url\n * @returns {boolean}\n */\nfunction fileExists(url) {\n return tryStatSync(fileURLToPath(url)).isFile()\n}\n\n/**\n * @param {URL} packageJsonUrl\n * @param {PackageConfig} packageConfig\n * @param {URL} base\n * @returns {URL}\n */\nfunction legacyMainResolve(packageJsonUrl, packageConfig, base) {\n /** @type {URL} */\n let guess;\n if (packageConfig.main !== undefined) {\n guess = new URL(`./${packageConfig.main}`, packageJsonUrl);\n // Note: fs check redundances will be handled by Descriptor cache here.\n if (fileExists(guess)) return guess\n\n const tries = [\n `./${packageConfig.main}.js`,\n `./${packageConfig.main}.json`,\n `./${packageConfig.main}.node`,\n `./${packageConfig.main}/index.js`,\n `./${packageConfig.main}/index.json`,\n `./${packageConfig.main}/index.node`\n ];\n let i = -1;\n\n while (++i < tries.length) {\n guess = new URL(tries[i], packageJsonUrl);\n if (fileExists(guess)) break\n guess = undefined;\n }\n\n if (guess) {\n emitLegacyIndexDeprecation(\n guess,\n packageJsonUrl,\n base,\n packageConfig.main\n );\n return guess\n }\n // Fallthrough.\n }\n\n const tries = ['./index.js', './index.json', './index.node'];\n let i = -1;\n\n while (++i < tries.length) {\n guess = new URL(tries[i], packageJsonUrl);\n if (fileExists(guess)) break\n guess = undefined;\n }\n\n if (guess) {\n emitLegacyIndexDeprecation(guess, packageJsonUrl, base, packageConfig.main);\n return guess\n }\n\n // Not found.\n throw new ERR_MODULE_NOT_FOUND(\n fileURLToPath(new URL('.', packageJsonUrl)),\n fileURLToPath(base)\n )\n}\n\n/**\n * @param {URL} resolved\n * @param {URL} base\n * @returns {URL}\n */\nfunction finalizeResolution(resolved, base) {\n if (encodedSepRegEx.test(resolved.pathname))\n throw new ERR_INVALID_MODULE_SPECIFIER(\n resolved.pathname,\n 'must not include encoded \"/\" or \"\\\\\" characters',\n fileURLToPath(base)\n )\n\n const path = fileURLToPath(resolved);\n\n const stats = tryStatSync(path.endsWith('/') ? path.slice(-1) : path);\n\n if (stats.isDirectory()) {\n const error = new ERR_UNSUPPORTED_DIR_IMPORT(path, fileURLToPath(base));\n // @ts-expect-error Add this for `import.meta.resolve`.\n error.url = String(resolved);\n throw error\n }\n\n if (!stats.isFile()) {\n throw new ERR_MODULE_NOT_FOUND(\n path || resolved.pathname,\n base && fileURLToPath(base),\n 'module'\n )\n }\n\n return resolved\n}\n\n/**\n * @param {string} specifier\n * @param {URL?} packageJsonUrl\n * @param {URL} base\n * @returns {never}\n */\nfunction throwImportNotDefined(specifier, packageJsonUrl, base) {\n throw new ERR_PACKAGE_IMPORT_NOT_DEFINED(\n specifier,\n packageJsonUrl && fileURLToPath(new URL('.', packageJsonUrl)),\n fileURLToPath(base)\n )\n}\n\n/**\n * @param {string} subpath\n * @param {URL} packageJsonUrl\n * @param {URL} base\n * @returns {never}\n */\nfunction throwExportsNotFound(subpath, packageJsonUrl, base) {\n throw new ERR_PACKAGE_PATH_NOT_EXPORTED(\n fileURLToPath(new URL('.', packageJsonUrl)),\n subpath,\n base && fileURLToPath(base)\n )\n}\n\n/**\n * @param {string} subpath\n * @param {URL} packageJsonUrl\n * @param {boolean} internal\n * @param {URL} [base]\n * @returns {never}\n */\nfunction throwInvalidSubpath(subpath, packageJsonUrl, internal, base) {\n const reason = `request is not a valid subpath for the \"${\n internal ? 'imports' : 'exports'\n }\" resolution of ${fileURLToPath(packageJsonUrl)}`;\n\n throw new ERR_INVALID_MODULE_SPECIFIER(\n subpath,\n reason,\n base && fileURLToPath(base)\n )\n}\n\n/**\n * @param {string} subpath\n * @param {unknown} target\n * @param {URL} packageJsonUrl\n * @param {boolean} internal\n * @param {URL} [base]\n * @returns {never}\n */\nfunction throwInvalidPackageTarget(\n subpath,\n target,\n packageJsonUrl,\n internal,\n base\n) {\n target =\n typeof target === 'object' && target !== null\n ? JSON.stringify(target, null, '')\n : `${target}`;\n\n throw new ERR_INVALID_PACKAGE_TARGET(\n fileURLToPath(new URL('.', packageJsonUrl)),\n subpath,\n target,\n internal,\n base && fileURLToPath(base)\n )\n}\n\n/**\n * @param {string} target\n * @param {string} subpath\n * @param {string} match\n * @param {URL} packageJsonUrl\n * @param {URL} base\n * @param {boolean} pattern\n * @param {boolean} internal\n * @param {Set} conditions\n * @returns {URL}\n */\nfunction resolvePackageTargetString(\n target,\n subpath,\n match,\n packageJsonUrl,\n base,\n pattern,\n internal,\n conditions\n) {\n if (subpath !== '' && !pattern && target[target.length - 1] !== '/')\n throwInvalidPackageTarget(match, target, packageJsonUrl, internal, base);\n\n if (!target.startsWith('./')) {\n if (internal && !target.startsWith('../') && !target.startsWith('/')) {\n let isURL = false;\n\n try {\n new URL(target);\n isURL = true;\n } catch {}\n\n if (!isURL) {\n const exportTarget = pattern\n ? target.replace(patternRegEx, subpath)\n : target + subpath;\n\n return packageResolve(exportTarget, packageJsonUrl, conditions)\n }\n }\n\n throwInvalidPackageTarget(match, target, packageJsonUrl, internal, base);\n }\n\n if (invalidSegmentRegEx.test(target.slice(2)))\n throwInvalidPackageTarget(match, target, packageJsonUrl, internal, base);\n\n const resolved = new URL(target, packageJsonUrl);\n const resolvedPath = resolved.pathname;\n const packagePath = new URL('.', packageJsonUrl).pathname;\n\n if (!resolvedPath.startsWith(packagePath))\n throwInvalidPackageTarget(match, target, packageJsonUrl, internal, base);\n\n if (subpath === '') return resolved\n\n if (invalidSegmentRegEx.test(subpath))\n throwInvalidSubpath(match + subpath, packageJsonUrl, internal, base);\n\n if (pattern) return new URL(resolved.href.replace(patternRegEx, subpath))\n return new URL(subpath, resolved)\n}\n\n/**\n * @param {string} key\n * @returns {boolean}\n */\nfunction isArrayIndex(key) {\n const keyNumber = Number(key);\n if (`${keyNumber}` !== key) return false\n return keyNumber >= 0 && keyNumber < 0xffff_ffff\n}\n\n/**\n * @param {URL} packageJsonUrl\n * @param {unknown} target\n * @param {string} subpath\n * @param {string} packageSubpath\n * @param {URL} base\n * @param {boolean} pattern\n * @param {boolean} internal\n * @param {Set} conditions\n * @returns {URL}\n */\nfunction resolvePackageTarget(\n packageJsonUrl,\n target,\n subpath,\n packageSubpath,\n base,\n pattern,\n internal,\n conditions\n) {\n if (typeof target === 'string') {\n return resolvePackageTargetString(\n target,\n subpath,\n packageSubpath,\n packageJsonUrl,\n base,\n pattern,\n internal,\n conditions\n )\n }\n\n if (Array.isArray(target)) {\n /** @type {unknown[]} */\n const targetList = target;\n if (targetList.length === 0) return null\n\n /** @type {Error} */\n let lastException;\n let i = -1;\n\n while (++i < targetList.length) {\n const targetItem = targetList[i];\n /** @type {URL} */\n let resolved;\n try {\n resolved = resolvePackageTarget(\n packageJsonUrl,\n targetItem,\n subpath,\n packageSubpath,\n base,\n pattern,\n internal,\n conditions\n );\n } catch (error) {\n lastException = error;\n if (error.code === 'ERR_INVALID_PACKAGE_TARGET') continue\n throw error\n }\n\n if (resolved === undefined) continue\n\n if (resolved === null) {\n lastException = null;\n continue\n }\n\n return resolved\n }\n\n if (lastException === undefined || lastException === null) {\n // @ts-expect-error The diff between `undefined` and `null` seems to be\n // intentional\n return lastException\n }\n\n throw lastException\n }\n\n if (typeof target === 'object' && target !== null) {\n const keys = Object.getOwnPropertyNames(target);\n let i = -1;\n\n while (++i < keys.length) {\n const key = keys[i];\n if (isArrayIndex(key)) {\n throw new ERR_INVALID_PACKAGE_CONFIG(\n fileURLToPath(packageJsonUrl),\n base,\n '\"exports\" cannot contain numeric property keys.'\n )\n }\n }\n\n i = -1;\n\n while (++i < keys.length) {\n const key = keys[i];\n if (key === 'default' || (conditions && conditions.has(key))) {\n /** @type {unknown} */\n const conditionalTarget = target[key];\n const resolved = resolvePackageTarget(\n packageJsonUrl,\n conditionalTarget,\n subpath,\n packageSubpath,\n base,\n pattern,\n internal,\n conditions\n );\n if (resolved === undefined) continue\n return resolved\n }\n }\n\n return undefined\n }\n\n if (target === null) {\n return null\n }\n\n throwInvalidPackageTarget(\n packageSubpath,\n target,\n packageJsonUrl,\n internal,\n base\n );\n}\n\n/**\n * @param {unknown} exports\n * @param {URL} packageJsonUrl\n * @param {URL} base\n * @returns {boolean}\n */\nfunction isConditionalExportsMainSugar(exports, packageJsonUrl, base) {\n if (typeof exports === 'string' || Array.isArray(exports)) return true\n if (typeof exports !== 'object' || exports === null) return false\n\n const keys = Object.getOwnPropertyNames(exports);\n let isConditionalSugar = false;\n let i = 0;\n let j = -1;\n while (++j < keys.length) {\n const key = keys[j];\n const curIsConditionalSugar = key === '' || key[0] !== '.';\n if (i++ === 0) {\n isConditionalSugar = curIsConditionalSugar;\n } else if (isConditionalSugar !== curIsConditionalSugar) {\n throw new ERR_INVALID_PACKAGE_CONFIG(\n fileURLToPath(packageJsonUrl),\n base,\n '\"exports\" cannot contain some keys starting with \\'.\\' and some not.' +\n ' The exports object must either be an object of package subpath keys' +\n ' or an object of main entry condition name keys only.'\n )\n }\n }\n\n return isConditionalSugar\n}\n\n/**\n * @param {URL} packageJsonUrl\n * @param {string} packageSubpath\n * @param {Object.} packageConfig\n * @param {URL} base\n * @param {Set} conditions\n * @returns {ResolveObject}\n */\nfunction packageExportsResolve(\n packageJsonUrl,\n packageSubpath,\n packageConfig,\n base,\n conditions\n) {\n let exports = packageConfig.exports;\n if (isConditionalExportsMainSugar(exports, packageJsonUrl, base))\n exports = {'.': exports};\n\n if (own.call(exports, packageSubpath)) {\n const target = exports[packageSubpath];\n const resolved = resolvePackageTarget(\n packageJsonUrl,\n target,\n '',\n packageSubpath,\n base,\n false,\n false,\n conditions\n );\n if (resolved === null || resolved === undefined)\n throwExportsNotFound(packageSubpath, packageJsonUrl, base);\n return {resolved, exact: true}\n }\n\n let bestMatch = '';\n const keys = Object.getOwnPropertyNames(exports);\n let i = -1;\n\n while (++i < keys.length) {\n const key = keys[i];\n if (\n key[key.length - 1] === '*' &&\n packageSubpath.startsWith(key.slice(0, -1)) &&\n packageSubpath.length >= key.length &&\n key.length > bestMatch.length\n ) {\n bestMatch = key;\n } else if (\n key[key.length - 1] === '/' &&\n packageSubpath.startsWith(key) &&\n key.length > bestMatch.length\n ) {\n bestMatch = key;\n }\n }\n\n if (bestMatch) {\n const target = exports[bestMatch];\n const pattern = bestMatch[bestMatch.length - 1] === '*';\n const subpath = packageSubpath.slice(bestMatch.length - (pattern ? 1 : 0));\n const resolved = resolvePackageTarget(\n packageJsonUrl,\n target,\n subpath,\n bestMatch,\n base,\n pattern,\n false,\n conditions\n );\n if (resolved === null || resolved === undefined)\n throwExportsNotFound(packageSubpath, packageJsonUrl, base);\n if (!pattern)\n emitFolderMapDeprecation(bestMatch, packageJsonUrl, true, base);\n return {resolved, exact: pattern}\n }\n\n throwExportsNotFound(packageSubpath, packageJsonUrl, base);\n}\n\n/**\n * @param {string} name\n * @param {URL} base\n * @param {Set} [conditions]\n * @returns {ResolveObject}\n */\nfunction packageImportsResolve(name, base, conditions) {\n if (name === '#' || name.startsWith('#/')) {\n const reason = 'is not a valid internal imports specifier name';\n throw new ERR_INVALID_MODULE_SPECIFIER(name, reason, fileURLToPath(base))\n }\n\n /** @type {URL} */\n let packageJsonUrl;\n\n const packageConfig = getPackageScopeConfig(base);\n\n if (packageConfig.exists) {\n packageJsonUrl = pathToFileURL(packageConfig.pjsonPath);\n const imports = packageConfig.imports;\n if (imports) {\n if (own.call(imports, name)) {\n const resolved = resolvePackageTarget(\n packageJsonUrl,\n imports[name],\n '',\n name,\n base,\n false,\n true,\n conditions\n );\n if (resolved !== null) return {resolved, exact: true}\n } else {\n let bestMatch = '';\n const keys = Object.getOwnPropertyNames(imports);\n let i = -1;\n\n while (++i < keys.length) {\n const key = keys[i];\n\n if (\n key[key.length - 1] === '*' &&\n name.startsWith(key.slice(0, -1)) &&\n name.length >= key.length &&\n key.length > bestMatch.length\n ) {\n bestMatch = key;\n } else if (\n key[key.length - 1] === '/' &&\n name.startsWith(key) &&\n key.length > bestMatch.length\n ) {\n bestMatch = key;\n }\n }\n\n if (bestMatch) {\n const target = imports[bestMatch];\n const pattern = bestMatch[bestMatch.length - 1] === '*';\n const subpath = name.slice(bestMatch.length - (pattern ? 1 : 0));\n const resolved = resolvePackageTarget(\n packageJsonUrl,\n target,\n subpath,\n bestMatch,\n base,\n pattern,\n true,\n conditions\n );\n if (resolved !== null) {\n if (!pattern)\n emitFolderMapDeprecation(bestMatch, packageJsonUrl, false, base);\n return {resolved, exact: pattern}\n }\n }\n }\n }\n }\n\n throwImportNotDefined(name, packageJsonUrl, base);\n}\n\n/**\n * @param {string} url\n * @returns {PackageType}\n */\nfunction getPackageType(url) {\n const packageConfig = getPackageScopeConfig(url);\n return packageConfig.type\n}\n\n/**\n * @param {string} specifier\n * @param {URL} base\n */\nfunction parsePackageName(specifier, base) {\n let separatorIndex = specifier.indexOf('/');\n let validPackageName = true;\n let isScoped = false;\n if (specifier[0] === '@') {\n isScoped = true;\n if (separatorIndex === -1 || specifier.length === 0) {\n validPackageName = false;\n } else {\n separatorIndex = specifier.indexOf('/', separatorIndex + 1);\n }\n }\n\n const packageName =\n separatorIndex === -1 ? specifier : specifier.slice(0, separatorIndex);\n\n // Package name cannot have leading . and cannot have percent-encoding or\n // separators.\n let i = -1;\n while (++i < packageName.length) {\n if (packageName[i] === '%' || packageName[i] === '\\\\') {\n validPackageName = false;\n break\n }\n }\n\n if (!validPackageName) {\n throw new ERR_INVALID_MODULE_SPECIFIER(\n specifier,\n 'is not a valid package name',\n fileURLToPath(base)\n )\n }\n\n const packageSubpath =\n '.' + (separatorIndex === -1 ? '' : specifier.slice(separatorIndex));\n\n return {packageName, packageSubpath, isScoped}\n}\n\n/**\n * @param {string} specifier\n * @param {URL} base\n * @param {Set} conditions\n * @returns {URL}\n */\nfunction packageResolve(specifier, base, conditions) {\n const {packageName, packageSubpath, isScoped} = parsePackageName(\n specifier,\n base\n );\n\n // ResolveSelf\n const packageConfig = getPackageScopeConfig(base);\n\n // Can\u2019t test.\n /* c8 ignore next 16 */\n if (packageConfig.exists) {\n const packageJsonUrl = pathToFileURL(packageConfig.pjsonPath);\n if (\n packageConfig.name === packageName &&\n packageConfig.exports !== undefined &&\n packageConfig.exports !== null\n ) {\n return packageExportsResolve(\n packageJsonUrl,\n packageSubpath,\n packageConfig,\n base,\n conditions\n ).resolved\n }\n }\n\n let packageJsonUrl = new URL(\n './node_modules/' + packageName + '/package.json',\n base\n );\n let packageJsonPath = fileURLToPath(packageJsonUrl);\n /** @type {string} */\n let lastPath;\n do {\n const stat = tryStatSync(packageJsonPath.slice(0, -13));\n if (!stat.isDirectory()) {\n lastPath = packageJsonPath;\n packageJsonUrl = new URL(\n (isScoped ? '../../../../node_modules/' : '../../../node_modules/') +\n packageName +\n '/package.json',\n packageJsonUrl\n );\n packageJsonPath = fileURLToPath(packageJsonUrl);\n continue\n }\n\n // Package match.\n const packageConfig = getPackageConfig(packageJsonPath, specifier, base);\n if (packageConfig.exports !== undefined && packageConfig.exports !== null)\n return packageExportsResolve(\n packageJsonUrl,\n packageSubpath,\n packageConfig,\n base,\n conditions\n ).resolved\n if (packageSubpath === '.')\n return legacyMainResolve(packageJsonUrl, packageConfig, base)\n return new URL(packageSubpath, packageJsonUrl)\n // Cross-platform root check.\n } while (packageJsonPath.length !== lastPath.length)\n\n throw new ERR_MODULE_NOT_FOUND(packageName, fileURLToPath(base))\n}\n\n/**\n * @param {string} specifier\n * @returns {boolean}\n */\nfunction isRelativeSpecifier(specifier) {\n if (specifier[0] === '.') {\n if (specifier.length === 1 || specifier[1] === '/') return true\n if (\n specifier[1] === '.' &&\n (specifier.length === 2 || specifier[2] === '/')\n ) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * @param {string} specifier\n * @returns {boolean}\n */\nfunction shouldBeTreatedAsRelativeOrAbsolutePath(specifier) {\n if (specifier === '') return false\n if (specifier[0] === '/') return true\n return isRelativeSpecifier(specifier)\n}\n\n/**\n * The \u201cResolver Algorithm Specification\u201d as detailed in the Node docs (which is\n * sync and slightly lower-level than `resolve`).\n *\n *\n *\n * @param {string} specifier\n * @param {URL} base\n * @param {Set} [conditions]\n * @returns {URL}\n */\nfunction moduleResolve(specifier, base, conditions) {\n // Order swapped from spec for minor perf gain.\n // Ok since relative URLs cannot parse as URLs.\n /** @type {URL} */\n let resolved;\n\n if (shouldBeTreatedAsRelativeOrAbsolutePath(specifier)) {\n resolved = new URL(specifier, base);\n } else if (specifier[0] === '#') {\n({resolved} = packageImportsResolve(specifier, base, conditions));\n } else {\n try {\n resolved = new URL(specifier);\n } catch {\n resolved = packageResolve(specifier, base, conditions);\n }\n }\n\n return finalizeResolution(resolved, base)\n}\n\n/**\n * @param {string} specifier\n * @param {{parentURL?: string, conditions?: string[]}} context\n * @returns {{url: string}}\n */\nfunction defaultResolve(specifier, context = {}) {\n const {parentURL} = context;\n /** @type {URL} */\n let parsed;\n\n try {\n parsed = new URL(specifier);\n if (parsed.protocol === 'data:') {\n return {url: specifier}\n }\n } catch {}\n\n if (parsed && parsed.protocol === 'node:') return {url: specifier}\n if (parsed && parsed.protocol !== 'file:' && parsed.protocol !== 'data:')\n throw new ERR_UNSUPPORTED_ESM_URL_SCHEME(parsed)\n\n if (listOfBuiltins.includes(specifier)) {\n return {url: 'node:' + specifier}\n }\n\n if (parentURL.startsWith('data:')) {\n // This is gonna blow up, we want the error\n new URL(specifier, parentURL);\n }\n\n const conditions = getConditionsSet(context.conditions);\n let url = moduleResolve(specifier, new URL(parentURL), conditions);\n\n const urlPath = fileURLToPath(url);\n const real = realpathSync(urlPath);\n const old = url;\n url = pathToFileURL(real + (urlPath.endsWith(path.sep) ? '/' : ''));\n url.search = old.search;\n url.hash = old.hash;\n\n return {url: `${url}`}\n}\n\n/**\n * Provides a module-relative resolution function scoped to each module,\n * returning the URL string.\n * `import.meta.resolve` also accepts a second argument which is the parent\n * module from which to resolve from.\n *\n * This function is asynchronous because the ES module resolver in Node.js is\n * allowed to be asynchronous.\n *\n * @param {string} specifier The module specifier to resolve relative to parent.\n * @param {string} parent The absolute parent module URL to resolve from.\n * You should pass `import.meta.url` or something else\n * @returns {Promise}\n */\nasync function resolve(specifier, parent) {\n if (!parent) {\n throw new Error(\n 'Please pass `parent`: `import-meta-resolve` cannot ponyfill that'\n )\n }\n\n try {\n return defaultResolve(specifier, {parentURL: parent}).url\n } catch (error) {\n return error.code === 'ERR_UNSUPPORTED_DIR_IMPORT'\n ? error.url\n : Promise.reject(error)\n }\n}\n\nexport { moduleResolve, resolve };\n" │ │ │ │ │ + "\n/****************************************************************************\\\n * NOTE FROM BABEL AUTHORS *\n * This file is inlined from https://github.com/wooorm/import-meta-resolve, *\n * because we need to compile it to CommonJS. *\n\\****************************************************************************/\n\n/*\n(The MIT License)\n\nCopyright (c) 2021 Titus Wormer \n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n---\n\nThis is a derivative work based on:\n.\nWhich is licensed:\n\n\"\"\"\nCopyright Node.js contributors. All rights reserved.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to\ndeal in the Software without restriction, including without limitation the\nrights to use, copy, modify, merge, publish, distribute, sublicense, and/or\nsell copies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\nIN THE SOFTWARE.\n\"\"\"\n\nThis license applies to parts of Node.js originating from the\nhttps://github.com/joyent/node repository:\n\n\"\"\"\nCopyright Joyent, Inc. and other Node contributors. All rights reserved.\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to\ndeal in the Software without restriction, including without limitation the\nrights to use, copy, modify, merge, publish, distribute, sublicense, and/or\nsell copies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\nIN THE SOFTWARE.\n\"\"\"\n*/\n\nimport { URL, fileURLToPath, pathToFileURL } from 'url';\nimport fs, { realpathSync, statSync, Stats } from 'fs';\nimport path from 'path';\nimport assert from 'assert';\nimport { format, inspect } from 'util';\n\nvar re$2 = {exports: {}};\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$1 = 256;\nconst MAX_SAFE_INTEGER$1 = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991;\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16;\n\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst MAX_SAFE_BUILD_LENGTH = MAX_LENGTH$1 - 6;\n\nconst RELEASE_TYPES = [\n 'major',\n 'premajor',\n 'minor',\n 'preminor',\n 'patch',\n 'prepatch',\n 'prerelease',\n];\n\nvar constants$1 = {\n MAX_LENGTH: MAX_LENGTH$1,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER: MAX_SAFE_INTEGER$1,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 0b001,\n FLAG_LOOSE: 0b010,\n};\n\nconst debug$1 = (\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\nvar debug_1 = debug$1;\n\n(function (module, exports) {\n\tconst {\n\t MAX_SAFE_COMPONENT_LENGTH,\n\t MAX_SAFE_BUILD_LENGTH,\n\t MAX_LENGTH,\n\t} = constants$1;\n\tconst debug = debug_1;\n\texports = module.exports = {};\n\n\t// The actual regexps go on exports.re\n\tconst re = exports.re = [];\n\tconst safeRe = exports.safeRe = [];\n\tconst src = exports.src = [];\n\tconst t = exports.t = {};\n\tlet R = 0;\n\n\tconst LETTERDASHNUMBER = '[a-zA-Z0-9-]';\n\n\t// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n\t// used internally via the safeRe object since all inputs in this library get\n\t// normalized first to trim and collapse all extra whitespace. The original\n\t// regexes are exported for userland consumption and lower level usage. A\n\t// future breaking change could export the safer regex only with a note that\n\t// all input should have extra whitespace removed.\n\tconst safeRegexReplacements = [\n\t ['\\\\s', 1],\n\t ['\\\\d', MAX_LENGTH],\n\t [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n\t];\n\n\tconst makeSafeRegex = (value) => {\n\t for (const [token, max] of safeRegexReplacements) {\n\t value = value\n\t .split(`${token}*`).join(`${token}{0,${max}}`)\n\t .split(`${token}+`).join(`${token}{1,${max}}`);\n\t }\n\t return value\n\t};\n\n\tconst createToken = (name, value, isGlobal) => {\n\t const safe = makeSafeRegex(value);\n\t const index = R++;\n\t debug(name, index, value);\n\t t[name] = index;\n\t src[index] = value;\n\t re[index] = new RegExp(value, isGlobal ? 'g' : undefined);\n\t safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined);\n\t};\n\n\t// The following Regular Expressions can be used for tokenizing,\n\t// validating, and parsing SemVer version strings.\n\n\t// ## Numeric Identifier\n\t// A single `0`, or a non-zero digit followed by zero or more digits.\n\n\tcreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*');\n\tcreateToken('NUMERICIDENTIFIERLOOSE', '\\\\d+');\n\n\t// ## Non-numeric Identifier\n\t// Zero or more digits, followed by a letter or hyphen, and then zero or\n\t// more letters, digits, or hyphens.\n\n\tcreateToken('NONNUMERICIDENTIFIER', `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`);\n\n\t// ## Main Version\n\t// Three dot-separated numeric identifiers.\n\n\tcreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n\t `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n\t `(${src[t.NUMERICIDENTIFIER]})`);\n\n\tcreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n\t `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n\t `(${src[t.NUMERICIDENTIFIERLOOSE]})`);\n\n\t// ## Pre-release Version Identifier\n\t// A numeric identifier, or a non-numeric identifier.\n\n\tcreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]\n\t}|${src[t.NONNUMERICIDENTIFIER]})`);\n\n\tcreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]\n\t}|${src[t.NONNUMERICIDENTIFIER]})`);\n\n\t// ## Pre-release Version\n\t// Hyphen, followed by one or more dot-separated pre-release version\n\t// identifiers.\n\n\tcreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n\t}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`);\n\n\tcreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n\t}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`);\n\n\t// ## Build Metadata Identifier\n\t// Any combination of digits, letters, or hyphens.\n\n\tcreateToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`);\n\n\t// ## Build Metadata\n\t// Plus sign, followed by one or more period-separated build metadata\n\t// identifiers.\n\n\tcreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n\t}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`);\n\n\t// ## Full Version String\n\t// A main version, followed optionally by a pre-release version and\n\t// build metadata.\n\n\t// Note that the only major, minor, patch, and pre-release sections of\n\t// the version string are capturing groups. The build metadata is not a\n\t// capturing group, because it should not ever be used in version\n\t// comparison.\n\n\tcreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n\t}${src[t.PRERELEASE]}?${\n\t src[t.BUILD]}?`);\n\n\tcreateToken('FULL', `^${src[t.FULLPLAIN]}$`);\n\n\t// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n\t// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n\t// common in the npm registry.\n\tcreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n\t}${src[t.PRERELEASELOOSE]}?${\n\t src[t.BUILD]}?`);\n\n\tcreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`);\n\n\tcreateToken('GTLT', '((?:<|>)?=?)');\n\n\t// Something like \"2.*\" or \"1.2.x\".\n\t// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n\t// Only the first item is strictly required.\n\tcreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`);\n\tcreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`);\n\n\tcreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n\t `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n\t `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n\t `(?:${src[t.PRERELEASE]})?${\n\t src[t.BUILD]}?` +\n\t `)?)?`);\n\n\tcreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n\t `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n\t `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n\t `(?:${src[t.PRERELEASELOOSE]})?${\n\t src[t.BUILD]}?` +\n\t `)?)?`);\n\n\tcreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`);\n\tcreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`);\n\n\t// Coercion.\n\t// Extract anything that could conceivably be a part of a valid semver\n\tcreateToken('COERCEPLAIN', `${'(^|[^\\\\d])' +\n\t '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n\t `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n\t `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`);\n\tcreateToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\\\d])`);\n\tcreateToken('COERCEFULL', src[t.COERCEPLAIN] +\n\t `(?:${src[t.PRERELEASE]})?` +\n\t `(?:${src[t.BUILD]})?` +\n\t `(?:$|[^\\\\d])`);\n\tcreateToken('COERCERTL', src[t.COERCE], true);\n\tcreateToken('COERCERTLFULL', src[t.COERCEFULL], true);\n\n\t// Tilde ranges.\n\t// Meaning is \"reasonably at or greater than\"\n\tcreateToken('LONETILDE', '(?:~>?)');\n\n\tcreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true);\n\texports.tildeTrimReplace = '$1~';\n\n\tcreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`);\n\tcreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`);\n\n\t// Caret ranges.\n\t// Meaning is \"at least and backwards compatible with\"\n\tcreateToken('LONECARET', '(?:\\\\^)');\n\n\tcreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true);\n\texports.caretTrimReplace = '$1^';\n\n\tcreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`);\n\tcreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`);\n\n\t// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\n\tcreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`);\n\tcreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`);\n\n\t// An expression to strip any whitespace between the gtlt and the thing\n\t// it modifies, so that `> 1.2.3` ==> `>1.2.3`\n\tcreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n\t}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true);\n\texports.comparatorTrimReplace = '$1$2$3';\n\n\t// Something like `1.2.3 - 1.2.4`\n\t// Note that these all use the loose form, because they'll be\n\t// checked against either the strict or loose comparator form\n\t// later.\n\tcreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n\t `\\\\s+-\\\\s+` +\n\t `(${src[t.XRANGEPLAIN]})` +\n\t `\\\\s*$`);\n\n\tcreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n\t `\\\\s+-\\\\s+` +\n\t `(${src[t.XRANGEPLAINLOOSE]})` +\n\t `\\\\s*$`);\n\n\t// Star ranges basically just allow anything at all.\n\tcreateToken('STAR', '(<|>)?=?\\\\s*\\\\*');\n\t// >=0.0.0 is like a star\n\tcreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$');\n\tcreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$'); \n} (re$2, re$2.exports));\n\nvar reExports = re$2.exports;\n\n// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true });\nconst emptyOpts = Object.freeze({ });\nconst parseOptions$1 = options => {\n if (!options) {\n return emptyOpts\n }\n\n if (typeof options !== 'object') {\n return looseOption\n }\n\n return options\n};\nvar parseOptions_1 = parseOptions$1;\n\nconst numeric = /^[0-9]+$/;\nconst compareIdentifiers$1 = (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$1(b, a);\n\nvar identifiers$1 = {\n compareIdentifiers: compareIdentifiers$1,\n rcompareIdentifiers,\n};\n\nconst debug = debug_1;\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = constants$1;\nconst { safeRe: re$1, t: t$1 } = reExports;\n\nconst parseOptions = parseOptions_1;\nconst { compareIdentifiers } = identifiers$1;\nlet SemVer$d = class 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. Must be a string. Got type \"${typeof 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$1[t$1.LOOSE] : re$1[t$1.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('build 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, identifierBase) {\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, identifierBase);\n break\n case 'preminor':\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor++;\n this.inc('pre', identifier, identifierBase);\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, identifierBase);\n this.inc('pre', identifier, identifierBase);\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, identifierBase);\n }\n this.inc('pre', identifier, identifierBase);\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 const base = Number(identifierBase) ? 1 : 0;\n\n if (!identifier && identifierBase === false) {\n throw new Error('invalid increment argument: identifier is empty')\n }\n\n if (this.prerelease.length === 0) {\n this.prerelease = [base];\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 if (identifier === this.prerelease.join('.') && identifierBase === false) {\n throw new Error('invalid increment argument: identifier already exists')\n }\n this.prerelease.push(base);\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 let prerelease = [identifier, base];\n if (identifierBase === false) {\n prerelease = [identifier];\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease;\n }\n } else {\n this.prerelease = prerelease;\n }\n }\n break\n }\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.raw = this.format();\n if (this.build.length) {\n this.raw += `+${this.build.join('.')}`;\n }\n return this\n }\n};\n\nvar semver$2 = SemVer$d;\n\nconst SemVer$c = semver$2;\nconst parse$6 = (version, options, throwErrors = false) => {\n if (version instanceof SemVer$c) {\n return version\n }\n try {\n return new SemVer$c(version, options)\n } catch (er) {\n if (!throwErrors) {\n return null\n }\n throw er\n }\n};\n\nvar parse_1 = parse$6;\n\nconst parse$5 = parse_1;\nconst valid$2 = (version, options) => {\n const v = parse$5(version, options);\n return v ? v.version : null\n};\nvar valid_1 = valid$2;\n\nconst parse$4 = parse_1;\nconst clean$1 = (version, options) => {\n const s = parse$4(version.trim().replace(/^[=v]+/, ''), options);\n return s ? s.version : null\n};\nvar clean_1 = clean$1;\n\nconst SemVer$b = semver$2;\n\nconst inc$1 = (version, release, options, identifier, identifierBase) => {\n if (typeof (options) === 'string') {\n identifierBase = identifier;\n identifier = options;\n options = undefined;\n }\n\n try {\n return new SemVer$b(\n version instanceof SemVer$b ? version.version : version,\n options\n ).inc(release, identifier, identifierBase).version\n } catch (er) {\n return null\n }\n};\nvar inc_1 = inc$1;\n\nconst parse$3 = parse_1;\n\nconst diff$1 = (version1, version2) => {\n const v1 = parse$3(version1, null, true);\n const v2 = parse$3(version2, null, true);\n const comparison = v1.compare(v2);\n\n if (comparison === 0) {\n return null\n }\n\n const v1Higher = comparison > 0;\n const highVersion = v1Higher ? v1 : v2;\n const lowVersion = v1Higher ? v2 : v1;\n const highHasPre = !!highVersion.prerelease.length;\n const lowHasPre = !!lowVersion.prerelease.length;\n\n if (lowHasPre && !highHasPre) {\n // Going from prerelease -> no prerelease requires some special casing\n\n // If the low version has only a major, then it will always be a major\n // Some examples:\n // 1.0.0-1 -> 1.0.0\n // 1.0.0-1 -> 1.1.1\n // 1.0.0-1 -> 2.0.0\n if (!lowVersion.patch && !lowVersion.minor) {\n return 'major'\n }\n\n // Otherwise it can be determined by checking the high version\n\n if (highVersion.patch) {\n // anything higher than a patch bump would result in the wrong version\n return 'patch'\n }\n\n if (highVersion.minor) {\n // anything higher than a minor bump would result in the wrong version\n return 'minor'\n }\n\n // bumping major/minor/patch all have same result\n return 'major'\n }\n\n // add the `pre` prefix if we are going to a prerelease version\n const prefix = highHasPre ? 'pre' : '';\n\n if (v1.major !== v2.major) {\n return prefix + 'major'\n }\n\n if (v1.minor !== v2.minor) {\n return prefix + 'minor'\n }\n\n if (v1.patch !== v2.patch) {\n return prefix + 'patch'\n }\n\n // high and low are preleases\n return 'prerelease'\n};\n\nvar diff_1 = diff$1;\n\nconst SemVer$a = semver$2;\nconst major$1 = (a, loose) => new SemVer$a(a, loose).major;\nvar major_1 = major$1;\n\nconst SemVer$9 = semver$2;\nconst minor$1 = (a, loose) => new SemVer$9(a, loose).minor;\nvar minor_1 = minor$1;\n\nconst SemVer$8 = semver$2;\nconst patch$1 = (a, loose) => new SemVer$8(a, loose).patch;\nvar patch_1 = patch$1;\n\nconst parse$2 = parse_1;\nconst prerelease$1 = (version, options) => {\n const parsed = parse$2(version, options);\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n};\nvar prerelease_1 = prerelease$1;\n\nconst SemVer$7 = semver$2;\nconst compare$b = (a, b, loose) =>\n new SemVer$7(a, loose).compare(new SemVer$7(b, loose));\n\nvar compare_1 = compare$b;\n\nconst compare$a = compare_1;\nconst rcompare$1 = (a, b, loose) => compare$a(b, a, loose);\nvar rcompare_1 = rcompare$1;\n\nconst compare$9 = compare_1;\nconst compareLoose$1 = (a, b) => compare$9(a, b, true);\nvar compareLoose_1 = compareLoose$1;\n\nconst SemVer$6 = semver$2;\nconst compareBuild$3 = (a, b, loose) => {\n const versionA = new SemVer$6(a, loose);\n const versionB = new SemVer$6(b, loose);\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n};\nvar compareBuild_1 = compareBuild$3;\n\nconst compareBuild$2 = compareBuild_1;\nconst sort$1 = (list, loose) => list.sort((a, b) => compareBuild$2(a, b, loose));\nvar sort_1 = sort$1;\n\nconst compareBuild$1 = compareBuild_1;\nconst rsort$1 = (list, loose) => list.sort((a, b) => compareBuild$1(b, a, loose));\nvar rsort_1 = rsort$1;\n\nconst compare$8 = compare_1;\nconst gt$4 = (a, b, loose) => compare$8(a, b, loose) > 0;\nvar gt_1 = gt$4;\n\nconst compare$7 = compare_1;\nconst lt$3 = (a, b, loose) => compare$7(a, b, loose) < 0;\nvar lt_1 = lt$3;\n\nconst compare$6 = compare_1;\nconst eq$2 = (a, b, loose) => compare$6(a, b, loose) === 0;\nvar eq_1 = eq$2;\n\nconst compare$5 = compare_1;\nconst neq$2 = (a, b, loose) => compare$5(a, b, loose) !== 0;\nvar neq_1 = neq$2;\n\nconst compare$4 = compare_1;\nconst gte$3 = (a, b, loose) => compare$4(a, b, loose) >= 0;\nvar gte_1 = gte$3;\n\nconst compare$3 = compare_1;\nconst lte$3 = (a, b, loose) => compare$3(a, b, loose) <= 0;\nvar lte_1 = lte$3;\n\nconst eq$1 = eq_1;\nconst neq$1 = neq_1;\nconst gt$3 = gt_1;\nconst gte$2 = gte_1;\nconst lt$2 = lt_1;\nconst lte$2 = lte_1;\n\nconst cmp$1 = (a, op, b, loose) => {\n switch (op) {\n case '===':\n if (typeof a === 'object') {\n a = a.version;\n }\n if (typeof b === 'object') {\n b = b.version;\n }\n return a === b\n\n case '!==':\n if (typeof a === 'object') {\n a = a.version;\n }\n if (typeof b === 'object') {\n b = b.version;\n }\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq$1(a, b, loose)\n\n case '!=':\n return neq$1(a, b, loose)\n\n case '>':\n return gt$3(a, b, loose)\n\n case '>=':\n return gte$2(a, b, loose)\n\n case '<':\n return lt$2(a, b, loose)\n\n case '<=':\n return lte$2(a, b, loose)\n\n default:\n throw new TypeError(`Invalid operator: ${op}`)\n }\n};\nvar cmp_1 = cmp$1;\n\nconst SemVer$5 = semver$2;\nconst parse$1 = parse_1;\nconst { safeRe: re, t } = reExports;\n\nconst coerce$1 = (version, options) => {\n if (version instanceof SemVer$5) {\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(options.includePrerelease ? re[t.COERCEFULL] : 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 // With includePrerelease option set, '1.2.3.4-rc' wants to coerce '2.3.4-rc', not '2.3.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 const coerceRtlRegex = options.includePrerelease ? re[t.COERCERTLFULL] : re[t.COERCERTL];\n let next;\n while ((next = coerceRtlRegex.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 coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length;\n }\n // leave it in a clean state\n coerceRtlRegex.lastIndex = -1;\n }\n\n if (match === null) {\n return null\n }\n\n const major = match[2];\n const minor = match[3] || '0';\n const patch = match[4] || '0';\n const prerelease = options.includePrerelease && match[5] ? `-${match[5]}` : '';\n const build = options.includePrerelease && match[6] ? `+${match[6]}` : '';\n\n return parse$1(`${major}.${minor}.${patch}${prerelease}${build}`, options)\n};\nvar coerce_1 = coerce$1;\n\nclass LRUCache {\n constructor () {\n this.max = 1000;\n this.map = new Map();\n }\n\n get (key) {\n const value = this.map.get(key);\n if (value === undefined) {\n return undefined\n } else {\n // Remove the key from the map and add it to the end\n this.map.delete(key);\n this.map.set(key, value);\n return value\n }\n }\n\n delete (key) {\n if (this.map.has(key)) {\n this.map.delete(key);\n return true\n } else {\n return false\n }\n }\n\n set (key, value) {\n const deleted = this.delete(key);\n\n if (!deleted && value !== undefined) {\n // If cache is full, delete the least recently used item\n if (this.map.size >= this.max) {\n const firstKey = this.map.keys().next().value;\n this.delete(firstKey);\n }\n\n this.map.set(key, value);\n }\n\n return this\n }\n}\n\nvar lrucache = LRUCache;\n\nvar range;\nvar hasRequiredRange;\n\nfunction requireRange () {\n\tif (hasRequiredRange) return range;\n\thasRequiredRange = 1;\n\t// hoisted class for cyclic dependency\n\tclass Range {\n\t constructor (range, options) {\n\t options = parseOptions(options);\n\n\t if (range instanceof Range) {\n\t if (\n\t range.loose === !!options.loose &&\n\t range.includePrerelease === !!options.includePrerelease\n\t ) {\n\t return range\n\t } else {\n\t return new Range(range.raw, options)\n\t }\n\t }\n\n\t if (range instanceof Comparator) {\n\t // just put it in the set and return\n\t this.raw = range.value;\n\t this.set = [[range]];\n\t this.format();\n\t return this\n\t }\n\n\t this.options = options;\n\t this.loose = !!options.loose;\n\t this.includePrerelease = !!options.includePrerelease;\n\n\t // First reduce all whitespace as much as possible so we do not have to rely\n\t // on potentially slow regexes like \\s*. This is then stored and used for\n\t // future error messages as well.\n\t this.raw = range\n\t .trim()\n\t .split(/\\s+/)\n\t .join(' ');\n\n\t // First, split on ||\n\t this.set = this.raw\n\t .split('||')\n\t // map the range to a 2d array of comparators\n\t .map(r => this.parseRange(r.trim()))\n\t // throw out any comparator lists that are empty\n\t // this generally means that it was not a valid range, which is allowed\n\t // in loose mode, but will still throw if the WHOLE range is invalid.\n\t .filter(c => c.length);\n\n\t if (!this.set.length) {\n\t throw new TypeError(`Invalid SemVer Range: ${this.raw}`)\n\t }\n\n\t // if we have any that are not the null set, throw out null sets.\n\t if (this.set.length > 1) {\n\t // keep the first one, in case they're all null sets\n\t const first = this.set[0];\n\t this.set = this.set.filter(c => !isNullSet(c[0]));\n\t if (this.set.length === 0) {\n\t this.set = [first];\n\t } else if (this.set.length > 1) {\n\t // if we have any that are *, then the range is just *\n\t for (const c of this.set) {\n\t if (c.length === 1 && isAny(c[0])) {\n\t this.set = [c];\n\t break\n\t }\n\t }\n\t }\n\t }\n\n\t this.format();\n\t }\n\n\t format () {\n\t this.range = this.set\n\t .map((comps) => comps.join(' ').trim())\n\t .join('||')\n\t .trim();\n\t return this.range\n\t }\n\n\t toString () {\n\t return this.range\n\t }\n\n\t parseRange (range) {\n\t // memoize range parsing for performance.\n\t // this is a very hot path, and fully deterministic.\n\t const memoOpts =\n\t (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) |\n\t (this.options.loose && FLAG_LOOSE);\n\t const memoKey = memoOpts + ':' + range;\n\t const cached = cache.get(memoKey);\n\t if (cached) {\n\t return cached\n\t }\n\n\t const loose = this.options.loose;\n\t // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n\t const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE];\n\t range = range.replace(hr, hyphenReplace(this.options.includePrerelease));\n\t debug('hyphen replace', range);\n\n\t // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n\t range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace);\n\t debug('comparator trim', range);\n\n\t // `~ 1.2.3` => `~1.2.3`\n\t range = range.replace(re[t.TILDETRIM], tildeTrimReplace);\n\t debug('tilde trim', range);\n\n\t // `^ 1.2.3` => `^1.2.3`\n\t range = range.replace(re[t.CARETTRIM], caretTrimReplace);\n\t debug('caret trim', range);\n\n\t // At this point, the range is completely trimmed and\n\t // ready to be split into comparators.\n\n\t let rangeList = range\n\t .split(' ')\n\t .map(comp => parseComparator(comp, this.options))\n\t .join(' ')\n\t .split(/\\s+/)\n\t // >=0.0.0 is equivalent to *\n\t .map(comp => replaceGTE0(comp, this.options));\n\n\t if (loose) {\n\t // in loose mode, throw out any that are not valid comparators\n\t rangeList = rangeList.filter(comp => {\n\t debug('loose invalid filter', comp, this.options);\n\t return !!comp.match(re[t.COMPARATORLOOSE])\n\t });\n\t }\n\t debug('range list', rangeList);\n\n\t // if any comparators are the null set, then replace with JUST null set\n\t // if more than one comparator, remove any * comparators\n\t // also, don't include the same comparator more than once\n\t const rangeMap = new Map();\n\t const comparators = rangeList.map(comp => new Comparator(comp, this.options));\n\t for (const comp of comparators) {\n\t if (isNullSet(comp)) {\n\t return [comp]\n\t }\n\t rangeMap.set(comp.value, comp);\n\t }\n\t if (rangeMap.size > 1 && rangeMap.has('')) {\n\t rangeMap.delete('');\n\t }\n\n\t const result = [...rangeMap.values()];\n\t cache.set(memoKey, result);\n\t return result\n\t }\n\n\t intersects (range, options) {\n\t if (!(range instanceof Range)) {\n\t throw new TypeError('a Range is required')\n\t }\n\n\t return this.set.some((thisComparators) => {\n\t return (\n\t isSatisfiable(thisComparators, options) &&\n\t range.set.some((rangeComparators) => {\n\t return (\n\t isSatisfiable(rangeComparators, options) &&\n\t thisComparators.every((thisComparator) => {\n\t return rangeComparators.every((rangeComparator) => {\n\t return thisComparator.intersects(rangeComparator, options)\n\t })\n\t })\n\t )\n\t })\n\t )\n\t })\n\t }\n\n\t // if ANY of the sets match ALL of its comparators, then pass\n\t test (version) {\n\t if (!version) {\n\t return false\n\t }\n\n\t if (typeof version === 'string') {\n\t try {\n\t version = new SemVer(version, this.options);\n\t } catch (er) {\n\t return false\n\t }\n\t }\n\n\t for (let i = 0; i < this.set.length; i++) {\n\t if (testSet(this.set[i], version, this.options)) {\n\t return true\n\t }\n\t }\n\t return false\n\t }\n\t}\n\n\trange = Range;\n\n\tconst LRU = lrucache;\n\tconst cache = new LRU();\n\n\tconst parseOptions = parseOptions_1;\n\tconst Comparator = requireComparator();\n\tconst debug = debug_1;\n\tconst SemVer = semver$2;\n\tconst {\n\t safeRe: re,\n\t t,\n\t comparatorTrimReplace,\n\t tildeTrimReplace,\n\t caretTrimReplace,\n\t} = reExports;\n\tconst { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = constants$1;\n\n\tconst isNullSet = c => c.value === '<0.0.0-0';\n\tconst isAny = c => c.value === '';\n\n\t// take a set of comparators and determine whether there\n\t// exists a version which can satisfy it\n\tconst isSatisfiable = (comparators, options) => {\n\t let result = true;\n\t const remainingComparators = comparators.slice();\n\t let testComparator = remainingComparators.pop();\n\n\t while (result && remainingComparators.length) {\n\t result = remainingComparators.every((otherComparator) => {\n\t return testComparator.intersects(otherComparator, options)\n\t });\n\n\t testComparator = remainingComparators.pop();\n\t }\n\n\t return result\n\t};\n\n\t// comprised of xranges, tildes, stars, and gtlt's at this point.\n\t// already replaced the hyphen ranges\n\t// turn into a set of JUST comparators.\n\tconst parseComparator = (comp, options) => {\n\t debug('comp', comp, options);\n\t comp = replaceCarets(comp, options);\n\t debug('caret', comp);\n\t comp = replaceTildes(comp, options);\n\t debug('tildes', comp);\n\t comp = replaceXRanges(comp, options);\n\t debug('xrange', comp);\n\t comp = replaceStars(comp, options);\n\t debug('stars', comp);\n\t return comp\n\t};\n\n\tconst isX = id => !id || id.toLowerCase() === 'x' || id === '*';\n\n\t// ~, ~> --> * (any, kinda silly)\n\t// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n\t// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n\t// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n\t// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n\t// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n\t// ~0.0.1 --> >=0.0.1 <0.1.0-0\n\tconst replaceTildes = (comp, options) => {\n\t return comp\n\t .trim()\n\t .split(/\\s+/)\n\t .map((c) => replaceTilde(c, options))\n\t .join(' ')\n\t};\n\n\tconst replaceTilde = (comp, options) => {\n\t const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE];\n\t return comp.replace(r, (_, M, m, p, pr) => {\n\t debug('tilde', comp, _, M, m, p, pr);\n\t let ret;\n\n\t if (isX(M)) {\n\t ret = '';\n\t } else if (isX(m)) {\n\t ret = `>=${M}.0.0 <${+M + 1}.0.0-0`;\n\t } else if (isX(p)) {\n\t // ~1.2 == >=1.2.0 <1.3.0-0\n\t ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`;\n\t } else if (pr) {\n\t debug('replaceTilde pr', pr);\n\t ret = `>=${M}.${m}.${p}-${pr\n\t } <${M}.${+m + 1}.0-0`;\n\t } else {\n\t // ~1.2.3 == >=1.2.3 <1.3.0-0\n\t ret = `>=${M}.${m}.${p\n\t } <${M}.${+m + 1}.0-0`;\n\t }\n\n\t debug('tilde return', ret);\n\t return ret\n\t })\n\t};\n\n\t// ^ --> * (any, kinda silly)\n\t// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n\t// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n\t// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n\t// ^1.2.3 --> >=1.2.3 <2.0.0-0\n\t// ^1.2.0 --> >=1.2.0 <2.0.0-0\n\t// ^0.0.1 --> >=0.0.1 <0.0.2-0\n\t// ^0.1.0 --> >=0.1.0 <0.2.0-0\n\tconst replaceCarets = (comp, options) => {\n\t return comp\n\t .trim()\n\t .split(/\\s+/)\n\t .map((c) => replaceCaret(c, options))\n\t .join(' ')\n\t};\n\n\tconst replaceCaret = (comp, options) => {\n\t debug('caret', comp, options);\n\t const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET];\n\t const z = options.includePrerelease ? '-0' : '';\n\t return comp.replace(r, (_, M, m, p, pr) => {\n\t debug('caret', comp, _, M, m, p, pr);\n\t let ret;\n\n\t if (isX(M)) {\n\t ret = '';\n\t } else if (isX(m)) {\n\t ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`;\n\t } else if (isX(p)) {\n\t if (M === '0') {\n\t ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`;\n\t } else {\n\t ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`;\n\t }\n\t } else if (pr) {\n\t debug('replaceCaret pr', pr);\n\t if (M === '0') {\n\t if (m === '0') {\n\t ret = `>=${M}.${m}.${p}-${pr\n\t } <${M}.${m}.${+p + 1}-0`;\n\t } else {\n\t ret = `>=${M}.${m}.${p}-${pr\n\t } <${M}.${+m + 1}.0-0`;\n\t }\n\t } else {\n\t ret = `>=${M}.${m}.${p}-${pr\n\t } <${+M + 1}.0.0-0`;\n\t }\n\t } else {\n\t debug('no pr');\n\t if (M === '0') {\n\t if (m === '0') {\n\t ret = `>=${M}.${m}.${p\n\t }${z} <${M}.${m}.${+p + 1}-0`;\n\t } else {\n\t ret = `>=${M}.${m}.${p\n\t }${z} <${M}.${+m + 1}.0-0`;\n\t }\n\t } else {\n\t ret = `>=${M}.${m}.${p\n\t } <${+M + 1}.0.0-0`;\n\t }\n\t }\n\n\t debug('caret return', ret);\n\t return ret\n\t })\n\t};\n\n\tconst replaceXRanges = (comp, options) => {\n\t debug('replaceXRanges', comp, options);\n\t return comp\n\t .split(/\\s+/)\n\t .map((c) => replaceXRange(c, options))\n\t .join(' ')\n\t};\n\n\tconst replaceXRange = (comp, options) => {\n\t comp = comp.trim();\n\t const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE];\n\t return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n\t debug('xRange', comp, ret, gtlt, M, m, p, pr);\n\t const xM = isX(M);\n\t const xm = xM || isX(m);\n\t const xp = xm || isX(p);\n\t const anyX = xp;\n\n\t if (gtlt === '=' && anyX) {\n\t gtlt = '';\n\t }\n\n\t // if we're including prereleases in the match, then we need\n\t // to fix this to -0, the lowest possible prerelease value\n\t pr = options.includePrerelease ? '-0' : '';\n\n\t if (xM) {\n\t if (gtlt === '>' || gtlt === '<') {\n\t // nothing is allowed\n\t ret = '<0.0.0-0';\n\t } else {\n\t // nothing is forbidden\n\t ret = '*';\n\t }\n\t } else if (gtlt && anyX) {\n\t // we know patch is an x, because we have any x at all.\n\t // replace X with 0\n\t if (xm) {\n\t m = 0;\n\t }\n\t p = 0;\n\n\t if (gtlt === '>') {\n\t // >1 => >=2.0.0\n\t // >1.2 => >=1.3.0\n\t gtlt = '>=';\n\t if (xm) {\n\t M = +M + 1;\n\t m = 0;\n\t p = 0;\n\t } else {\n\t m = +m + 1;\n\t p = 0;\n\t }\n\t } else if (gtlt === '<=') {\n\t // <=0.7.x is actually <0.8.0, since any 0.7.x should\n\t // pass. Similarly, <=7.x is actually <8.0.0, etc.\n\t gtlt = '<';\n\t if (xm) {\n\t M = +M + 1;\n\t } else {\n\t m = +m + 1;\n\t }\n\t }\n\n\t if (gtlt === '<') {\n\t pr = '-0';\n\t }\n\n\t ret = `${gtlt + M}.${m}.${p}${pr}`;\n\t } else if (xm) {\n\t ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`;\n\t } else if (xp) {\n\t ret = `>=${M}.${m}.0${pr\n\t } <${M}.${+m + 1}.0-0`;\n\t }\n\n\t debug('xRange return', ret);\n\n\t return ret\n\t })\n\t};\n\n\t// Because * is AND-ed with everything else in the comparator,\n\t// and '' means \"any version\", just remove the *s entirely.\n\tconst replaceStars = (comp, options) => {\n\t debug('replaceStars', comp, options);\n\t // Looseness is ignored here. star is always as loose as it gets!\n\t return comp\n\t .trim()\n\t .replace(re[t.STAR], '')\n\t};\n\n\tconst replaceGTE0 = (comp, options) => {\n\t debug('replaceGTE0', comp, options);\n\t return comp\n\t .trim()\n\t .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n\t};\n\n\t// This function is passed to string.replace(re[t.HYPHENRANGE])\n\t// M, m, patch, prerelease, build\n\t// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n\t// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n\t// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\n\t// TODO build?\n\tconst hyphenReplace = incPr => ($0,\n\t from, fM, fm, fp, fpr, fb,\n\t to, tM, tm, tp, tpr) => {\n\t if (isX(fM)) {\n\t from = '';\n\t } else if (isX(fm)) {\n\t from = `>=${fM}.0.0${incPr ? '-0' : ''}`;\n\t } else if (isX(fp)) {\n\t from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`;\n\t } else if (fpr) {\n\t from = `>=${from}`;\n\t } else {\n\t from = `>=${from}${incPr ? '-0' : ''}`;\n\t }\n\n\t if (isX(tM)) {\n\t to = '';\n\t } else if (isX(tm)) {\n\t to = `<${+tM + 1}.0.0-0`;\n\t } else if (isX(tp)) {\n\t to = `<${tM}.${+tm + 1}.0-0`;\n\t } else if (tpr) {\n\t to = `<=${tM}.${tm}.${tp}-${tpr}`;\n\t } else if (incPr) {\n\t to = `<${tM}.${tm}.${+tp + 1}-0`;\n\t } else {\n\t to = `<=${to}`;\n\t }\n\n\t return `${from} ${to}`.trim()\n\t};\n\n\tconst testSet = (set, version, options) => {\n\t for (let i = 0; i < set.length; i++) {\n\t if (!set[i].test(version)) {\n\t return false\n\t }\n\t }\n\n\t if (version.prerelease.length && !options.includePrerelease) {\n\t // Find the set of versions that are allowed to have prereleases\n\t // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n\t // That should allow `1.2.3-pr.2` to pass.\n\t // However, `1.2.4-alpha.notready` should NOT be allowed,\n\t // even though it's within the range set by the comparators.\n\t for (let i = 0; i < set.length; i++) {\n\t debug(set[i].semver);\n\t if (set[i].semver === Comparator.ANY) {\n\t continue\n\t }\n\n\t if (set[i].semver.prerelease.length > 0) {\n\t const allowed = set[i].semver;\n\t if (allowed.major === version.major &&\n\t allowed.minor === version.minor &&\n\t allowed.patch === version.patch) {\n\t return true\n\t }\n\t }\n\t }\n\n\t // Version has a -pre, but it's not one of the ones we like.\n\t return false\n\t }\n\n\t return true\n\t};\n\treturn range;\n}\n\nvar comparator;\nvar hasRequiredComparator;\n\nfunction requireComparator () {\n\tif (hasRequiredComparator) return comparator;\n\thasRequiredComparator = 1;\n\tconst ANY = Symbol('SemVer ANY');\n\t// hoisted class for cyclic dependency\n\tclass Comparator {\n\t static get ANY () {\n\t return ANY\n\t }\n\n\t constructor (comp, options) {\n\t options = parseOptions(options);\n\n\t if (comp instanceof Comparator) {\n\t if (comp.loose === !!options.loose) {\n\t return comp\n\t } else {\n\t comp = comp.value;\n\t }\n\t }\n\n\t comp = comp.trim().split(/\\s+/).join(' ');\n\t debug('comparator', comp, options);\n\t this.options = options;\n\t this.loose = !!options.loose;\n\t this.parse(comp);\n\n\t if (this.semver === ANY) {\n\t this.value = '';\n\t } else {\n\t this.value = this.operator + this.semver.version;\n\t }\n\n\t debug('comp', this);\n\t }\n\n\t parse (comp) {\n\t const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR];\n\t const m = comp.match(r);\n\n\t if (!m) {\n\t throw new TypeError(`Invalid comparator: ${comp}`)\n\t }\n\n\t this.operator = m[1] !== undefined ? m[1] : '';\n\t if (this.operator === '=') {\n\t this.operator = '';\n\t }\n\n\t // if it literally is just '>' or '' then allow anything.\n\t if (!m[2]) {\n\t this.semver = ANY;\n\t } else {\n\t this.semver = new SemVer(m[2], this.options.loose);\n\t }\n\t }\n\n\t toString () {\n\t return this.value\n\t }\n\n\t test (version) {\n\t debug('Comparator.test', version, this.options.loose);\n\n\t if (this.semver === ANY || version === ANY) {\n\t return true\n\t }\n\n\t if (typeof version === 'string') {\n\t try {\n\t version = new SemVer(version, this.options);\n\t } catch (er) {\n\t return false\n\t }\n\t }\n\n\t return cmp(version, this.operator, this.semver, this.options)\n\t }\n\n\t intersects (comp, options) {\n\t if (!(comp instanceof Comparator)) {\n\t throw new TypeError('a Comparator is required')\n\t }\n\n\t if (this.operator === '') {\n\t if (this.value === '') {\n\t return true\n\t }\n\t return new Range(comp.value, options).test(this.value)\n\t } else if (comp.operator === '') {\n\t if (comp.value === '') {\n\t return true\n\t }\n\t return new Range(this.value, options).test(comp.semver)\n\t }\n\n\t options = parseOptions(options);\n\n\t // Special cases where nothing can possibly be lower\n\t if (options.includePrerelease &&\n\t (this.value === '<0.0.0-0' || comp.value === '<0.0.0-0')) {\n\t return false\n\t }\n\t if (!options.includePrerelease &&\n\t (this.value.startsWith('<0.0.0') || comp.value.startsWith('<0.0.0'))) {\n\t return false\n\t }\n\n\t // Same direction increasing (> or >=)\n\t if (this.operator.startsWith('>') && comp.operator.startsWith('>')) {\n\t return true\n\t }\n\t // Same direction decreasing (< or <=)\n\t if (this.operator.startsWith('<') && comp.operator.startsWith('<')) {\n\t return true\n\t }\n\t // same SemVer and both sides are inclusive (<= or >=)\n\t if (\n\t (this.semver.version === comp.semver.version) &&\n\t this.operator.includes('=') && comp.operator.includes('=')) {\n\t return true\n\t }\n\t // opposite directions less than\n\t if (cmp(this.semver, '<', comp.semver, options) &&\n\t this.operator.startsWith('>') && comp.operator.startsWith('<')) {\n\t return true\n\t }\n\t // opposite directions greater than\n\t if (cmp(this.semver, '>', comp.semver, options) &&\n\t this.operator.startsWith('<') && comp.operator.startsWith('>')) {\n\t return true\n\t }\n\t return false\n\t }\n\t}\n\n\tcomparator = Comparator;\n\n\tconst parseOptions = parseOptions_1;\n\tconst { safeRe: re, t } = reExports;\n\tconst cmp = cmp_1;\n\tconst debug = debug_1;\n\tconst SemVer = semver$2;\n\tconst Range = requireRange();\n\treturn comparator;\n}\n\nconst Range$9 = requireRange();\nconst satisfies$4 = (version, range, options) => {\n try {\n range = new Range$9(range, options);\n } catch (er) {\n return false\n }\n return range.test(version)\n};\nvar satisfies_1 = satisfies$4;\n\nconst Range$8 = requireRange();\n\n// Mostly just for testing and legacy API reasons\nconst toComparators$1 = (range, options) =>\n new Range$8(range, options).set\n .map(comp => comp.map(c => c.value).join(' ').trim().split(' '));\n\nvar toComparators_1 = toComparators$1;\n\nconst SemVer$4 = semver$2;\nconst Range$7 = requireRange();\n\nconst maxSatisfying$1 = (versions, range, options) => {\n let max = null;\n let maxSV = null;\n let rangeObj = null;\n try {\n rangeObj = new Range$7(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$4(max, options);\n }\n }\n });\n return max\n};\nvar maxSatisfying_1 = maxSatisfying$1;\n\nconst SemVer$3 = semver$2;\nconst Range$6 = requireRange();\nconst minSatisfying$1 = (versions, range, options) => {\n let min = null;\n let minSV = null;\n let rangeObj = null;\n try {\n rangeObj = new Range$6(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$3(min, options);\n }\n }\n });\n return min\n};\nvar minSatisfying_1 = minSatisfying$1;\n\nconst SemVer$2 = semver$2;\nconst Range$5 = requireRange();\nconst gt$2 = gt_1;\n\nconst minVersion$1 = (range, loose) => {\n range = new Range$5(range, loose);\n\n let minver = new SemVer$2('0.0.0');\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer$2('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$2(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$2(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$2(minver, setMin))) {\n minver = setMin;\n }\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n};\nvar minVersion_1 = minVersion$1;\n\nconst Range$4 = requireRange();\nconst validRange$1 = (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$4(range, options).range || '*'\n } catch (er) {\n return null\n }\n};\nvar valid$1 = validRange$1;\n\nconst SemVer$1 = semver$2;\nconst Comparator$2 = requireComparator();\nconst { ANY: ANY$1 } = Comparator$2;\nconst Range$3 = requireRange();\nconst satisfies$3 = satisfies_1;\nconst gt$1 = gt_1;\nconst lt$1 = lt_1;\nconst lte$1 = lte_1;\nconst gte$1 = gte_1;\n\nconst outside$3 = (version, range, hilo, options) => {\n version = new SemVer$1(version, options);\n range = new Range$3(range, options);\n\n let gtfn, ltefn, ltfn, comp, ecomp;\n switch (hilo) {\n case '>':\n gtfn = gt$1;\n ltefn = lte$1;\n ltfn = lt$1;\n comp = '>';\n ecomp = '>=';\n break\n case '<':\n gtfn = lt$1;\n ltefn = gte$1;\n ltfn = gt$1;\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$3(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$1) {\n comparator = new Comparator$2('>=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\nvar outside_1 = outside$3;\n\n// Determine if version is greater than all the versions possible in the range.\nconst outside$2 = outside_1;\nconst gtr$1 = (version, range, options) => outside$2(version, range, '>', options);\nvar gtr_1 = gtr$1;\n\nconst outside$1 = outside_1;\n// Determine if version is less than all the versions possible in the range\nconst ltr$1 = (version, range, options) => outside$1(version, range, '<', options);\nvar ltr_1 = ltr$1;\n\nconst Range$2 = requireRange();\nconst intersects$1 = (r1, r2, options) => {\n r1 = new Range$2(r1, options);\n r2 = new Range$2(r2, options);\n return r1.intersects(r2, options)\n};\nvar intersects_1 = intersects$1;\n\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$2 = satisfies_1;\nconst compare$2 = compare_1;\nvar simplify = (versions, range, options) => {\n const set = [];\n let first = null;\n let prev = null;\n const v = versions.sort((a, b) => compare$2(a, b, options));\n for (const version of v) {\n const included = satisfies$2(version, range, options);\n if (included) {\n prev = version;\n if (!first) {\n first = version;\n }\n } else {\n if (prev) {\n set.push([first, prev]);\n }\n prev = null;\n first = null;\n }\n }\n if (first) {\n set.push([first, null]);\n }\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 }\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\nconst Range$1 = requireRange();\nconst Comparator$1 = requireComparator();\nconst { ANY } = Comparator$1;\nconst satisfies$1 = satisfies_1;\nconst compare$1 = compare_1;\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$1 = (sub, dom, options = {}) => {\n if (sub === dom) {\n return true\n }\n\n sub = new Range$1(sub, options);\n dom = new Range$1(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 }\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 }\n return true\n};\n\nconst minimumVersionWithPreRelease = [new Comparator$1('>=0.0.0-0')];\nconst minimumVersion = [new Comparator$1('>=0.0.0')];\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub === dom) {\n return true\n }\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 = minimumVersionWithPreRelease;\n } else {\n sub = minimumVersion;\n }\n }\n\n if (dom.length === 1 && dom[0].semver === ANY) {\n if (options.includePrerelease) {\n return true\n } else {\n dom = minimumVersion;\n }\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\n if (eqSet.size > 1) {\n return null\n }\n\n let gtltComp;\n if (gt && lt) {\n gtltComp = compare$1(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\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies$1(eq, String(gt), options)) {\n return null\n }\n\n if (lt && !satisfies$1(eq, String(lt), options)) {\n return null\n }\n\n for (const c of dom) {\n if (!satisfies$1(eq, String(c), options)) {\n return false\n }\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 }\n } else if (gt.operator === '>=' && !satisfies$1(gt.semver, String(c), options)) {\n return false\n }\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 }\n } else if (lt.operator === '<=' && !satisfies$1(lt.semver, String(c), options)) {\n return false\n }\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0) {\n return false\n }\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\n if (lt && hasDomGT && !gt && gtltComp !== 0) {\n return false\n }\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\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 }\n const comp = compare$1(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 }\n const comp = compare$1(a.semver, b.semver, options);\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n};\n\nvar subset_1 = subset$1;\n\n// just pre-load all the stuff that index.js lazily exports\nconst internalRe = reExports;\nconst constants = constants$1;\nconst SemVer = semver$2;\nconst identifiers = identifiers$1;\nconst parse = parse_1;\nconst valid = valid_1;\nconst clean = clean_1;\nconst inc = inc_1;\nconst diff = diff_1;\nconst major = major_1;\nconst minor = minor_1;\nconst patch = patch_1;\nconst prerelease = prerelease_1;\nconst compare = compare_1;\nconst rcompare = rcompare_1;\nconst compareLoose = compareLoose_1;\nconst compareBuild = compareBuild_1;\nconst sort = sort_1;\nconst rsort = rsort_1;\nconst gt = gt_1;\nconst lt = lt_1;\nconst eq = eq_1;\nconst neq = neq_1;\nconst gte = gte_1;\nconst lte = lte_1;\nconst cmp = cmp_1;\nconst coerce = coerce_1;\nconst Comparator = requireComparator();\nconst Range = requireRange();\nconst satisfies = satisfies_1;\nconst toComparators = toComparators_1;\nconst maxSatisfying = maxSatisfying_1;\nconst minSatisfying = minSatisfying_1;\nconst minVersion = minVersion_1;\nconst validRange = valid$1;\nconst outside = outside_1;\nconst gtr = gtr_1;\nconst ltr = ltr_1;\nconst intersects = intersects_1;\nconst simplifyRange = simplify;\nconst subset = subset_1;\nvar semver$1 = {\n parse,\n valid,\n clean,\n inc,\n diff,\n major,\n minor,\n patch,\n prerelease,\n compare,\n rcompare,\n compareLoose,\n compareBuild,\n sort,\n rsort,\n gt,\n lt,\n eq,\n neq,\n gte,\n lte,\n cmp,\n coerce,\n Comparator,\n Range,\n satisfies,\n toComparators,\n maxSatisfying,\n minSatisfying,\n minVersion,\n validRange,\n outside,\n gtr,\n ltr,\n intersects,\n simplifyRange,\n subset,\n SemVer,\n re: internalRe.re,\n src: internalRe.src,\n tokens: internalRe.t,\n SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION,\n RELEASE_TYPES: constants.RELEASE_TYPES,\n compareIdentifiers: identifiers.compareIdentifiers,\n rcompareIdentifiers: identifiers.rcompareIdentifiers,\n};\n\nconst semver = semver$1;\n\nconst permanentModules = [\n 'assert',\n 'buffer',\n 'child_process',\n 'cluster',\n 'console',\n 'constants',\n 'crypto',\n 'dgram',\n 'dns',\n 'domain',\n 'events',\n 'fs',\n 'http',\n 'https',\n 'module',\n 'net',\n 'os',\n 'path',\n 'punycode',\n 'querystring',\n 'readline',\n 'repl',\n 'stream',\n 'string_decoder',\n 'sys',\n 'timers',\n 'tls',\n 'tty',\n 'url',\n 'util',\n 'vm',\n 'zlib'\n];\n\nconst versionLockedModules = {\n freelist: '<6.0.0',\n v8: '>=1.0.0',\n process: '>=1.1.0',\n inspector: '>=8.0.0',\n async_hooks: '>=8.1.0',\n http2: '>=8.4.0',\n perf_hooks: '>=8.5.0',\n trace_events: '>=10.0.0',\n worker_threads: '>=12.0.0',\n 'node:test': '>=18.0.0'\n};\n\nconst experimentalModules = {\n worker_threads: '>=10.5.0',\n wasi: '>=12.16.0',\n diagnostics_channel: '^14.17.0 || >=15.1.0'\n};\n\nvar builtins = ({ version = process.version, experimental = false } = {}) => {\n const builtins = [...permanentModules];\n\n for (const [name, semverRange] of Object.entries(versionLockedModules)) {\n if (version === '*' || semver.satisfies(version, semverRange)) {\n builtins.push(name);\n }\n }\n\n if (experimental) {\n for (const [name, semverRange] of Object.entries(experimentalModules)) {\n if (\n !builtins.includes(name) &&\n (version === '*' || semver.satisfies(version, semverRange))\n ) {\n builtins.push(name);\n }\n }\n }\n\n return builtins\n};\n\n// Manually \u201ctree shaken\u201d from:\n// \n// Removed the native dependency.\n// Also: no need to cache, we do that in resolve already.\n\n\nconst reader = {read};\nvar packageJsonReader = reader;\n\n/**\n * @param {string} jsonPath\n * @returns {{string: string}}\n */\nfunction read(jsonPath) {\n return find(path.dirname(jsonPath))\n}\n\n/**\n * @param {string} dir\n * @returns {{string: string}}\n */\nfunction find(dir) {\n try {\n const string = fs.readFileSync(\n path.toNamespacedPath(path.join(dir, 'package.json')),\n 'utf8'\n );\n return {string}\n } catch (error) {\n if (error.code === 'ENOENT') {\n const parent = path.dirname(dir);\n if (dir !== parent) return find(parent)\n return {string: undefined}\n // Throw all other errors.\n /* c8 ignore next 4 */\n }\n\n throw error\n }\n}\n\n// Manually \u201ctree shaken\u201d from:\n// \n\nconst isWindows = process.platform === 'win32';\n\nconst own$1 = {}.hasOwnProperty;\n\nconst codes = {};\n\n/**\n * @typedef {(...args: unknown[]) => string} MessageFunction\n */\n\n/** @type {Map} */\nconst messages = new Map();\nconst nodeInternalPrefix = '__node_internal_';\n/** @type {number} */\nlet userStackTraceLimit;\n\ncodes.ERR_INVALID_MODULE_SPECIFIER = createError(\n 'ERR_INVALID_MODULE_SPECIFIER',\n /**\n * @param {string} request\n * @param {string} reason\n * @param {string} [base]\n */\n (request, reason, base = undefined) => {\n return `Invalid module \"${request}\" ${reason}${\n base ? ` imported from ${base}` : ''\n }`\n },\n TypeError\n);\n\ncodes.ERR_INVALID_PACKAGE_CONFIG = createError(\n 'ERR_INVALID_PACKAGE_CONFIG',\n /**\n * @param {string} path\n * @param {string} [base]\n * @param {string} [message]\n */\n (path, base, message) => {\n return `Invalid package config ${path}${\n base ? ` while importing ${base}` : ''\n }${message ? `. ${message}` : ''}`\n },\n Error\n);\n\ncodes.ERR_INVALID_PACKAGE_TARGET = createError(\n 'ERR_INVALID_PACKAGE_TARGET',\n /**\n * @param {string} pkgPath\n * @param {string} key\n * @param {unknown} target\n * @param {boolean} [isImport=false]\n * @param {string} [base]\n */\n (pkgPath, key, target, isImport = false, base = undefined) => {\n const relError =\n typeof target === 'string' &&\n !isImport &&\n target.length > 0 &&\n !target.startsWith('./');\n if (key === '.') {\n assert(isImport === false);\n return (\n `Invalid \"exports\" main target ${JSON.stringify(target)} defined ` +\n `in the package config ${pkgPath}package.json${\n base ? ` imported from ${base}` : ''\n }${relError ? '; targets must start with \"./\"' : ''}`\n )\n }\n\n return `Invalid \"${\n isImport ? 'imports' : 'exports'\n }\" target ${JSON.stringify(\n target\n )} defined for '${key}' in the package config ${pkgPath}package.json${\n base ? ` imported from ${base}` : ''\n }${relError ? '; targets must start with \"./\"' : ''}`\n },\n Error\n);\n\ncodes.ERR_MODULE_NOT_FOUND = createError(\n 'ERR_MODULE_NOT_FOUND',\n /**\n * @param {string} path\n * @param {string} base\n * @param {string} [type]\n */\n (path, base, type = 'package') => {\n return `Cannot find ${type} '${path}' imported from ${base}`\n },\n Error\n);\n\ncodes.ERR_PACKAGE_IMPORT_NOT_DEFINED = createError(\n 'ERR_PACKAGE_IMPORT_NOT_DEFINED',\n /**\n * @param {string} specifier\n * @param {string} packagePath\n * @param {string} base\n */\n (specifier, packagePath, base) => {\n return `Package import specifier \"${specifier}\" is not defined${\n packagePath ? ` in package ${packagePath}package.json` : ''\n } imported from ${base}`\n },\n TypeError\n);\n\ncodes.ERR_PACKAGE_PATH_NOT_EXPORTED = createError(\n 'ERR_PACKAGE_PATH_NOT_EXPORTED',\n /**\n * @param {string} pkgPath\n * @param {string} subpath\n * @param {string} [base]\n */\n (pkgPath, subpath, base = undefined) => {\n if (subpath === '.')\n return `No \"exports\" main defined in ${pkgPath}package.json${\n base ? ` imported from ${base}` : ''\n }`\n return `Package subpath '${subpath}' is not defined by \"exports\" in ${pkgPath}package.json${\n base ? ` imported from ${base}` : ''\n }`\n },\n Error\n);\n\ncodes.ERR_UNSUPPORTED_DIR_IMPORT = createError(\n 'ERR_UNSUPPORTED_DIR_IMPORT',\n \"Directory import '%s' is not supported \" +\n 'resolving ES modules imported from %s',\n Error\n);\n\ncodes.ERR_UNKNOWN_FILE_EXTENSION = createError(\n 'ERR_UNKNOWN_FILE_EXTENSION',\n 'Unknown file extension \"%s\" for %s',\n TypeError\n);\n\ncodes.ERR_INVALID_ARG_VALUE = createError(\n 'ERR_INVALID_ARG_VALUE',\n /**\n * @param {string} name\n * @param {unknown} value\n * @param {string} [reason='is invalid']\n */\n (name, value, reason = 'is invalid') => {\n let inspected = inspect(value);\n\n if (inspected.length > 128) {\n inspected = `${inspected.slice(0, 128)}...`;\n }\n\n const type = name.includes('.') ? 'property' : 'argument';\n\n return `The ${type} '${name}' ${reason}. Received ${inspected}`\n },\n TypeError\n // Note: extra classes have been shaken out.\n // , RangeError\n);\n\ncodes.ERR_UNSUPPORTED_ESM_URL_SCHEME = createError(\n 'ERR_UNSUPPORTED_ESM_URL_SCHEME',\n /**\n * @param {URL} url\n */\n (url) => {\n let message =\n 'Only file and data URLs are supported by the default ESM loader';\n\n if (isWindows && url.protocol.length === 2) {\n message += '. On Windows, absolute paths must be valid file:// URLs';\n }\n\n message += `. Received protocol '${url.protocol}'`;\n return message\n },\n Error\n);\n\n/**\n * Utility function for registering the error codes. Only used here. Exported\n * *only* to allow for testing.\n * @param {string} sym\n * @param {MessageFunction|string} value\n * @param {ErrorConstructor} def\n * @returns {new (...args: unknown[]) => Error}\n */\nfunction createError(sym, value, def) {\n // Special case for SystemError that formats the error message differently\n // The SystemErrors only have SystemError as their base classes.\n messages.set(sym, value);\n\n return makeNodeErrorWithCode(def, sym)\n}\n\n/**\n * @param {ErrorConstructor} Base\n * @param {string} key\n * @returns {ErrorConstructor}\n */\nfunction makeNodeErrorWithCode(Base, key) {\n // @ts-expect-error It\u2019s a Node error.\n return NodeError\n /**\n * @param {unknown[]} args\n */\n function NodeError(...args) {\n const limit = Error.stackTraceLimit;\n if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = 0;\n const error = new Base();\n // Reset the limit and setting the name property.\n if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = limit;\n const message = getMessage(key, args, error);\n Object.defineProperty(error, 'message', {\n value: message,\n enumerable: false,\n writable: true,\n configurable: true\n });\n Object.defineProperty(error, 'toString', {\n /** @this {Error} */\n value() {\n return `${this.name} [${key}]: ${this.message}`\n },\n enumerable: false,\n writable: true,\n configurable: true\n });\n addCodeToName(error, Base.name, key);\n // @ts-expect-error It\u2019s a Node error.\n error.code = key;\n return error\n }\n}\n\nconst addCodeToName = hideStackFrames(\n /**\n * @param {Error} error\n * @param {string} name\n * @param {string} code\n * @returns {void}\n */\n function (error, name, code) {\n // Set the stack\n error = captureLargerStackTrace(error);\n // Add the error code to the name to include it in the stack trace.\n error.name = `${name} [${code}]`;\n // Access the stack to generate the error message including the error code\n // from the name.\n error.stack; // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n if (name === 'SystemError') {\n Object.defineProperty(error, 'name', {\n value: name,\n enumerable: false,\n writable: true,\n configurable: true\n });\n } else {\n delete error.name;\n }\n }\n);\n\n/**\n * @returns {boolean}\n */\nfunction isErrorStackTraceLimitWritable() {\n const desc = Object.getOwnPropertyDescriptor(Error, 'stackTraceLimit');\n if (desc === undefined) {\n return Object.isExtensible(Error)\n }\n\n return own$1.call(desc, 'writable') ? desc.writable : desc.set !== undefined\n}\n\n/**\n * This function removes unnecessary frames from Node.js core errors.\n * @template {(...args: unknown[]) => unknown} T\n * @type {(fn: T) => T}\n */\nfunction hideStackFrames(fn) {\n // We rename the functions that will be hidden to cut off the stacktrace\n // at the outermost one\n const hidden = nodeInternalPrefix + fn.name;\n Object.defineProperty(fn, 'name', {value: hidden});\n return fn\n}\n\nconst captureLargerStackTrace = hideStackFrames(\n /**\n * @param {Error} error\n * @returns {Error}\n */\n function (error) {\n const stackTraceLimitIsWritable = isErrorStackTraceLimitWritable();\n if (stackTraceLimitIsWritable) {\n userStackTraceLimit = Error.stackTraceLimit;\n Error.stackTraceLimit = Number.POSITIVE_INFINITY;\n }\n\n Error.captureStackTrace(error);\n\n // Reset the limit\n if (stackTraceLimitIsWritable) Error.stackTraceLimit = userStackTraceLimit;\n\n return error\n }\n);\n\n/**\n * @param {string} key\n * @param {unknown[]} args\n * @param {Error} self\n * @returns {string}\n */\nfunction getMessage(key, args, self) {\n const message = messages.get(key);\n\n if (typeof message === 'function') {\n assert(\n message.length <= args.length, // Default options do not count.\n `Code: ${key}; The provided arguments length (${args.length}) does not ` +\n `match the required ones (${message.length}).`\n );\n return Reflect.apply(message, self, args)\n }\n\n const expectedLength = (message.match(/%[dfijoOs]/g) || []).length;\n assert(\n expectedLength === args.length,\n `Code: ${key}; The provided arguments length (${args.length}) does not ` +\n `match the required ones (${expectedLength}).`\n );\n if (args.length === 0) return message\n\n args.unshift(message);\n return Reflect.apply(format, null, args)\n}\n\n// Manually \u201ctree shaken\u201d from:\n// \n\nconst {ERR_UNKNOWN_FILE_EXTENSION} = codes;\n\nconst extensionFormatMap = {\n __proto__: null,\n '.cjs': 'commonjs',\n '.js': 'module',\n '.mjs': 'module'\n};\n\n/**\n * @param {string} url\n * @returns {{format: string|null}}\n */\nfunction defaultGetFormat(url) {\n if (url.startsWith('node:')) {\n return {format: 'builtin'}\n }\n\n const parsed = new URL(url);\n\n if (parsed.protocol === 'data:') {\n const {1: mime} = /^([^/]+\\/[^;,]+)[^,]*?(;base64)?,/.exec(\n parsed.pathname\n ) || [null, null];\n const format = mime === 'text/javascript' ? 'module' : null;\n return {format}\n }\n\n if (parsed.protocol === 'file:') {\n const ext = path.extname(parsed.pathname);\n /** @type {string} */\n let format;\n if (ext === '.js') {\n format = getPackageType(parsed.href) === 'module' ? 'module' : 'commonjs';\n } else {\n format = extensionFormatMap[ext];\n }\n\n if (!format) {\n throw new ERR_UNKNOWN_FILE_EXTENSION(ext, fileURLToPath(url))\n }\n\n return {format: format || null}\n }\n\n return {format: null}\n}\n\n// Manually \u201ctree shaken\u201d from:\n// \n\n\nconst listOfBuiltins = builtins();\n\nconst {\n ERR_INVALID_MODULE_SPECIFIER,\n ERR_INVALID_PACKAGE_CONFIG,\n ERR_INVALID_PACKAGE_TARGET,\n ERR_MODULE_NOT_FOUND,\n ERR_PACKAGE_IMPORT_NOT_DEFINED,\n ERR_PACKAGE_PATH_NOT_EXPORTED,\n ERR_UNSUPPORTED_DIR_IMPORT,\n ERR_UNSUPPORTED_ESM_URL_SCHEME,\n ERR_INVALID_ARG_VALUE\n} = codes;\n\nconst own = {}.hasOwnProperty;\n\nconst DEFAULT_CONDITIONS = Object.freeze(['node', 'import']);\nconst DEFAULT_CONDITIONS_SET = new Set(DEFAULT_CONDITIONS);\n\nconst invalidSegmentRegEx = /(^|\\\\|\\/)(\\.\\.?|node_modules)(\\\\|\\/|$)/;\nconst patternRegEx = /\\*/g;\nconst encodedSepRegEx = /%2f|%2c/i;\n/** @type {Set} */\nconst emittedPackageWarnings = new Set();\n/** @type {Map} */\nconst packageJsonCache = new Map();\n\n/**\n * @param {string} match\n * @param {URL} pjsonUrl\n * @param {boolean} isExports\n * @param {URL} base\n * @returns {void}\n */\nfunction emitFolderMapDeprecation(match, pjsonUrl, isExports, base) {\n const pjsonPath = fileURLToPath(pjsonUrl);\n\n if (emittedPackageWarnings.has(pjsonPath + '|' + match)) return\n emittedPackageWarnings.add(pjsonPath + '|' + match);\n process.emitWarning(\n `Use of deprecated folder mapping \"${match}\" in the ${\n isExports ? '\"exports\"' : '\"imports\"'\n } field module resolution of the package at ${pjsonPath}${\n base ? ` imported from ${fileURLToPath(base)}` : ''\n }.\\n` +\n `Update this package.json to use a subpath pattern like \"${match}*\".`,\n 'DeprecationWarning',\n 'DEP0148'\n );\n}\n\n/**\n * @param {URL} url\n * @param {URL} packageJsonUrl\n * @param {URL} base\n * @param {unknown} [main]\n * @returns {void}\n */\nfunction emitLegacyIndexDeprecation(url, packageJsonUrl, base, main) {\n const {format} = defaultGetFormat(url.href);\n if (format !== 'module') return\n const path = fileURLToPath(url.href);\n const pkgPath = fileURLToPath(new URL('.', packageJsonUrl));\n const basePath = fileURLToPath(base);\n if (main)\n process.emitWarning(\n `Package ${pkgPath} has a \"main\" field set to ${JSON.stringify(main)}, ` +\n `excluding the full filename and extension to the resolved file at \"${path.slice(\n pkgPath.length\n )}\", imported from ${basePath}.\\n Automatic extension resolution of the \"main\" field is` +\n 'deprecated for ES modules.',\n 'DeprecationWarning',\n 'DEP0151'\n );\n else\n process.emitWarning(\n `No \"main\" or \"exports\" field defined in the package.json for ${pkgPath} resolving the main entry point \"${path.slice(\n pkgPath.length\n )}\", imported from ${basePath}.\\nDefault \"index\" lookups for the main are deprecated for ES modules.`,\n 'DeprecationWarning',\n 'DEP0151'\n );\n}\n\n/**\n * @param {string[]} [conditions]\n * @returns {Set}\n */\nfunction getConditionsSet(conditions) {\n if (conditions !== undefined && conditions !== DEFAULT_CONDITIONS) {\n if (!Array.isArray(conditions)) {\n throw new ERR_INVALID_ARG_VALUE(\n 'conditions',\n conditions,\n 'expected an array'\n )\n }\n\n return new Set(conditions)\n }\n\n return DEFAULT_CONDITIONS_SET\n}\n\n/**\n * @param {string} path\n * @returns {Stats}\n */\nfunction tryStatSync(path) {\n // Note: from Node 15 onwards we can use `throwIfNoEntry: false` instead.\n try {\n return statSync(path)\n } catch {\n return new Stats()\n }\n}\n\n/**\n * @param {string} path\n * @param {string|URL} specifier Note: `specifier` is actually optional, not base.\n * @param {URL} [base]\n * @returns {PackageConfig}\n */\nfunction getPackageConfig(path, specifier, base) {\n const existing = packageJsonCache.get(path);\n if (existing !== undefined) {\n return existing\n }\n\n const source = packageJsonReader.read(path).string;\n\n if (source === undefined) {\n /** @type {PackageConfig} */\n const packageConfig = {\n pjsonPath: path,\n exists: false,\n main: undefined,\n name: undefined,\n type: 'none',\n exports: undefined,\n imports: undefined\n };\n packageJsonCache.set(path, packageConfig);\n return packageConfig\n }\n\n /** @type {Object.} */\n let packageJson;\n try {\n packageJson = JSON.parse(source);\n } catch (error) {\n throw new ERR_INVALID_PACKAGE_CONFIG(\n path,\n (base ? `\"${specifier}\" from ` : '') + fileURLToPath(base || specifier),\n error.message\n )\n }\n\n const {exports, imports, main, name, type} = packageJson;\n\n /** @type {PackageConfig} */\n const packageConfig = {\n pjsonPath: path,\n exists: true,\n main: typeof main === 'string' ? main : undefined,\n name: typeof name === 'string' ? name : undefined,\n type: type === 'module' || type === 'commonjs' ? type : 'none',\n // @ts-expect-error Assume `Object.`.\n exports,\n // @ts-expect-error Assume `Object.`.\n imports: imports && typeof imports === 'object' ? imports : undefined\n };\n packageJsonCache.set(path, packageConfig);\n return packageConfig\n}\n\n/**\n * @param {URL|string} resolved\n * @returns {PackageConfig}\n */\nfunction getPackageScopeConfig(resolved) {\n let packageJsonUrl = new URL('./package.json', resolved);\n\n while (true) {\n const packageJsonPath = packageJsonUrl.pathname;\n\n if (packageJsonPath.endsWith('node_modules/package.json')) break\n\n const packageConfig = getPackageConfig(\n fileURLToPath(packageJsonUrl),\n resolved\n );\n if (packageConfig.exists) return packageConfig\n\n const lastPackageJsonUrl = packageJsonUrl;\n packageJsonUrl = new URL('../package.json', packageJsonUrl);\n\n // Terminates at root where ../package.json equals ../../package.json\n // (can't just check \"/package.json\" for Windows support).\n if (packageJsonUrl.pathname === lastPackageJsonUrl.pathname) break\n }\n\n const packageJsonPath = fileURLToPath(packageJsonUrl);\n /** @type {PackageConfig} */\n const packageConfig = {\n pjsonPath: packageJsonPath,\n exists: false,\n main: undefined,\n name: undefined,\n type: 'none',\n exports: undefined,\n imports: undefined\n };\n packageJsonCache.set(packageJsonPath, packageConfig);\n return packageConfig\n}\n\n/**\n * Legacy CommonJS main resolution:\n * 1. let M = pkg_url + (json main field)\n * 2. TRY(M, M.js, M.json, M.node)\n * 3. TRY(M/index.js, M/index.json, M/index.node)\n * 4. TRY(pkg_url/index.js, pkg_url/index.json, pkg_url/index.node)\n * 5. NOT_FOUND\n *\n * @param {URL} url\n * @returns {boolean}\n */\nfunction fileExists(url) {\n return tryStatSync(fileURLToPath(url)).isFile()\n}\n\n/**\n * @param {URL} packageJsonUrl\n * @param {PackageConfig} packageConfig\n * @param {URL} base\n * @returns {URL}\n */\nfunction legacyMainResolve(packageJsonUrl, packageConfig, base) {\n /** @type {URL} */\n let guess;\n if (packageConfig.main !== undefined) {\n guess = new URL(`./${packageConfig.main}`, packageJsonUrl);\n // Note: fs check redundances will be handled by Descriptor cache here.\n if (fileExists(guess)) return guess\n\n const tries = [\n `./${packageConfig.main}.js`,\n `./${packageConfig.main}.json`,\n `./${packageConfig.main}.node`,\n `./${packageConfig.main}/index.js`,\n `./${packageConfig.main}/index.json`,\n `./${packageConfig.main}/index.node`\n ];\n let i = -1;\n\n while (++i < tries.length) {\n guess = new URL(tries[i], packageJsonUrl);\n if (fileExists(guess)) break\n guess = undefined;\n }\n\n if (guess) {\n emitLegacyIndexDeprecation(\n guess,\n packageJsonUrl,\n base,\n packageConfig.main\n );\n return guess\n }\n // Fallthrough.\n }\n\n const tries = ['./index.js', './index.json', './index.node'];\n let i = -1;\n\n while (++i < tries.length) {\n guess = new URL(tries[i], packageJsonUrl);\n if (fileExists(guess)) break\n guess = undefined;\n }\n\n if (guess) {\n emitLegacyIndexDeprecation(guess, packageJsonUrl, base, packageConfig.main);\n return guess\n }\n\n // Not found.\n throw new ERR_MODULE_NOT_FOUND(\n fileURLToPath(new URL('.', packageJsonUrl)),\n fileURLToPath(base)\n )\n}\n\n/**\n * @param {URL} resolved\n * @param {URL} base\n * @returns {URL}\n */\nfunction finalizeResolution(resolved, base) {\n if (encodedSepRegEx.test(resolved.pathname))\n throw new ERR_INVALID_MODULE_SPECIFIER(\n resolved.pathname,\n 'must not include encoded \"/\" or \"\\\\\" characters',\n fileURLToPath(base)\n )\n\n const path = fileURLToPath(resolved);\n\n const stats = tryStatSync(path.endsWith('/') ? path.slice(-1) : path);\n\n if (stats.isDirectory()) {\n const error = new ERR_UNSUPPORTED_DIR_IMPORT(path, fileURLToPath(base));\n // @ts-expect-error Add this for `import.meta.resolve`.\n error.url = String(resolved);\n throw error\n }\n\n if (!stats.isFile()) {\n throw new ERR_MODULE_NOT_FOUND(\n path || resolved.pathname,\n base && fileURLToPath(base),\n 'module'\n )\n }\n\n return resolved\n}\n\n/**\n * @param {string} specifier\n * @param {URL?} packageJsonUrl\n * @param {URL} base\n * @returns {never}\n */\nfunction throwImportNotDefined(specifier, packageJsonUrl, base) {\n throw new ERR_PACKAGE_IMPORT_NOT_DEFINED(\n specifier,\n packageJsonUrl && fileURLToPath(new URL('.', packageJsonUrl)),\n fileURLToPath(base)\n )\n}\n\n/**\n * @param {string} subpath\n * @param {URL} packageJsonUrl\n * @param {URL} base\n * @returns {never}\n */\nfunction throwExportsNotFound(subpath, packageJsonUrl, base) {\n throw new ERR_PACKAGE_PATH_NOT_EXPORTED(\n fileURLToPath(new URL('.', packageJsonUrl)),\n subpath,\n base && fileURLToPath(base)\n )\n}\n\n/**\n * @param {string} subpath\n * @param {URL} packageJsonUrl\n * @param {boolean} internal\n * @param {URL} [base]\n * @returns {never}\n */\nfunction throwInvalidSubpath(subpath, packageJsonUrl, internal, base) {\n const reason = `request is not a valid subpath for the \"${\n internal ? 'imports' : 'exports'\n }\" resolution of ${fileURLToPath(packageJsonUrl)}`;\n\n throw new ERR_INVALID_MODULE_SPECIFIER(\n subpath,\n reason,\n base && fileURLToPath(base)\n )\n}\n\n/**\n * @param {string} subpath\n * @param {unknown} target\n * @param {URL} packageJsonUrl\n * @param {boolean} internal\n * @param {URL} [base]\n * @returns {never}\n */\nfunction throwInvalidPackageTarget(\n subpath,\n target,\n packageJsonUrl,\n internal,\n base\n) {\n target =\n typeof target === 'object' && target !== null\n ? JSON.stringify(target, null, '')\n : `${target}`;\n\n throw new ERR_INVALID_PACKAGE_TARGET(\n fileURLToPath(new URL('.', packageJsonUrl)),\n subpath,\n target,\n internal,\n base && fileURLToPath(base)\n )\n}\n\n/**\n * @param {string} target\n * @param {string} subpath\n * @param {string} match\n * @param {URL} packageJsonUrl\n * @param {URL} base\n * @param {boolean} pattern\n * @param {boolean} internal\n * @param {Set} conditions\n * @returns {URL}\n */\nfunction resolvePackageTargetString(\n target,\n subpath,\n match,\n packageJsonUrl,\n base,\n pattern,\n internal,\n conditions\n) {\n if (subpath !== '' && !pattern && target[target.length - 1] !== '/')\n throwInvalidPackageTarget(match, target, packageJsonUrl, internal, base);\n\n if (!target.startsWith('./')) {\n if (internal && !target.startsWith('../') && !target.startsWith('/')) {\n let isURL = false;\n\n try {\n new URL(target);\n isURL = true;\n } catch {}\n\n if (!isURL) {\n const exportTarget = pattern\n ? target.replace(patternRegEx, subpath)\n : target + subpath;\n\n return packageResolve(exportTarget, packageJsonUrl, conditions)\n }\n }\n\n throwInvalidPackageTarget(match, target, packageJsonUrl, internal, base);\n }\n\n if (invalidSegmentRegEx.test(target.slice(2)))\n throwInvalidPackageTarget(match, target, packageJsonUrl, internal, base);\n\n const resolved = new URL(target, packageJsonUrl);\n const resolvedPath = resolved.pathname;\n const packagePath = new URL('.', packageJsonUrl).pathname;\n\n if (!resolvedPath.startsWith(packagePath))\n throwInvalidPackageTarget(match, target, packageJsonUrl, internal, base);\n\n if (subpath === '') return resolved\n\n if (invalidSegmentRegEx.test(subpath))\n throwInvalidSubpath(match + subpath, packageJsonUrl, internal, base);\n\n if (pattern) return new URL(resolved.href.replace(patternRegEx, subpath))\n return new URL(subpath, resolved)\n}\n\n/**\n * @param {string} key\n * @returns {boolean}\n */\nfunction isArrayIndex(key) {\n const keyNumber = Number(key);\n if (`${keyNumber}` !== key) return false\n return keyNumber >= 0 && keyNumber < 0xffff_ffff\n}\n\n/**\n * @param {URL} packageJsonUrl\n * @param {unknown} target\n * @param {string} subpath\n * @param {string} packageSubpath\n * @param {URL} base\n * @param {boolean} pattern\n * @param {boolean} internal\n * @param {Set} conditions\n * @returns {URL}\n */\nfunction resolvePackageTarget(\n packageJsonUrl,\n target,\n subpath,\n packageSubpath,\n base,\n pattern,\n internal,\n conditions\n) {\n if (typeof target === 'string') {\n return resolvePackageTargetString(\n target,\n subpath,\n packageSubpath,\n packageJsonUrl,\n base,\n pattern,\n internal,\n conditions\n )\n }\n\n if (Array.isArray(target)) {\n /** @type {unknown[]} */\n const targetList = target;\n if (targetList.length === 0) return null\n\n /** @type {Error} */\n let lastException;\n let i = -1;\n\n while (++i < targetList.length) {\n const targetItem = targetList[i];\n /** @type {URL} */\n let resolved;\n try {\n resolved = resolvePackageTarget(\n packageJsonUrl,\n targetItem,\n subpath,\n packageSubpath,\n base,\n pattern,\n internal,\n conditions\n );\n } catch (error) {\n lastException = error;\n if (error.code === 'ERR_INVALID_PACKAGE_TARGET') continue\n throw error\n }\n\n if (resolved === undefined) continue\n\n if (resolved === null) {\n lastException = null;\n continue\n }\n\n return resolved\n }\n\n if (lastException === undefined || lastException === null) {\n // @ts-expect-error The diff between `undefined` and `null` seems to be\n // intentional\n return lastException\n }\n\n throw lastException\n }\n\n if (typeof target === 'object' && target !== null) {\n const keys = Object.getOwnPropertyNames(target);\n let i = -1;\n\n while (++i < keys.length) {\n const key = keys[i];\n if (isArrayIndex(key)) {\n throw new ERR_INVALID_PACKAGE_CONFIG(\n fileURLToPath(packageJsonUrl),\n base,\n '\"exports\" cannot contain numeric property keys.'\n )\n }\n }\n\n i = -1;\n\n while (++i < keys.length) {\n const key = keys[i];\n if (key === 'default' || (conditions && conditions.has(key))) {\n /** @type {unknown} */\n const conditionalTarget = target[key];\n const resolved = resolvePackageTarget(\n packageJsonUrl,\n conditionalTarget,\n subpath,\n packageSubpath,\n base,\n pattern,\n internal,\n conditions\n );\n if (resolved === undefined) continue\n return resolved\n }\n }\n\n return undefined\n }\n\n if (target === null) {\n return null\n }\n\n throwInvalidPackageTarget(\n packageSubpath,\n target,\n packageJsonUrl,\n internal,\n base\n );\n}\n\n/**\n * @param {unknown} exports\n * @param {URL} packageJsonUrl\n * @param {URL} base\n * @returns {boolean}\n */\nfunction isConditionalExportsMainSugar(exports, packageJsonUrl, base) {\n if (typeof exports === 'string' || Array.isArray(exports)) return true\n if (typeof exports !== 'object' || exports === null) return false\n\n const keys = Object.getOwnPropertyNames(exports);\n let isConditionalSugar = false;\n let i = 0;\n let j = -1;\n while (++j < keys.length) {\n const key = keys[j];\n const curIsConditionalSugar = key === '' || key[0] !== '.';\n if (i++ === 0) {\n isConditionalSugar = curIsConditionalSugar;\n } else if (isConditionalSugar !== curIsConditionalSugar) {\n throw new ERR_INVALID_PACKAGE_CONFIG(\n fileURLToPath(packageJsonUrl),\n base,\n '\"exports\" cannot contain some keys starting with \\'.\\' and some not.' +\n ' The exports object must either be an object of package subpath keys' +\n ' or an object of main entry condition name keys only.'\n )\n }\n }\n\n return isConditionalSugar\n}\n\n/**\n * @param {URL} packageJsonUrl\n * @param {string} packageSubpath\n * @param {Object.} packageConfig\n * @param {URL} base\n * @param {Set} conditions\n * @returns {ResolveObject}\n */\nfunction packageExportsResolve(\n packageJsonUrl,\n packageSubpath,\n packageConfig,\n base,\n conditions\n) {\n let exports = packageConfig.exports;\n if (isConditionalExportsMainSugar(exports, packageJsonUrl, base))\n exports = {'.': exports};\n\n if (own.call(exports, packageSubpath)) {\n const target = exports[packageSubpath];\n const resolved = resolvePackageTarget(\n packageJsonUrl,\n target,\n '',\n packageSubpath,\n base,\n false,\n false,\n conditions\n );\n if (resolved === null || resolved === undefined)\n throwExportsNotFound(packageSubpath, packageJsonUrl, base);\n return {resolved, exact: true}\n }\n\n let bestMatch = '';\n const keys = Object.getOwnPropertyNames(exports);\n let i = -1;\n\n while (++i < keys.length) {\n const key = keys[i];\n if (\n key[key.length - 1] === '*' &&\n packageSubpath.startsWith(key.slice(0, -1)) &&\n packageSubpath.length >= key.length &&\n key.length > bestMatch.length\n ) {\n bestMatch = key;\n } else if (\n key[key.length - 1] === '/' &&\n packageSubpath.startsWith(key) &&\n key.length > bestMatch.length\n ) {\n bestMatch = key;\n }\n }\n\n if (bestMatch) {\n const target = exports[bestMatch];\n const pattern = bestMatch[bestMatch.length - 1] === '*';\n const subpath = packageSubpath.slice(bestMatch.length - (pattern ? 1 : 0));\n const resolved = resolvePackageTarget(\n packageJsonUrl,\n target,\n subpath,\n bestMatch,\n base,\n pattern,\n false,\n conditions\n );\n if (resolved === null || resolved === undefined)\n throwExportsNotFound(packageSubpath, packageJsonUrl, base);\n if (!pattern)\n emitFolderMapDeprecation(bestMatch, packageJsonUrl, true, base);\n return {resolved, exact: pattern}\n }\n\n throwExportsNotFound(packageSubpath, packageJsonUrl, base);\n}\n\n/**\n * @param {string} name\n * @param {URL} base\n * @param {Set} [conditions]\n * @returns {ResolveObject}\n */\nfunction packageImportsResolve(name, base, conditions) {\n if (name === '#' || name.startsWith('#/')) {\n const reason = 'is not a valid internal imports specifier name';\n throw new ERR_INVALID_MODULE_SPECIFIER(name, reason, fileURLToPath(base))\n }\n\n /** @type {URL} */\n let packageJsonUrl;\n\n const packageConfig = getPackageScopeConfig(base);\n\n if (packageConfig.exists) {\n packageJsonUrl = pathToFileURL(packageConfig.pjsonPath);\n const imports = packageConfig.imports;\n if (imports) {\n if (own.call(imports, name)) {\n const resolved = resolvePackageTarget(\n packageJsonUrl,\n imports[name],\n '',\n name,\n base,\n false,\n true,\n conditions\n );\n if (resolved !== null) return {resolved, exact: true}\n } else {\n let bestMatch = '';\n const keys = Object.getOwnPropertyNames(imports);\n let i = -1;\n\n while (++i < keys.length) {\n const key = keys[i];\n\n if (\n key[key.length - 1] === '*' &&\n name.startsWith(key.slice(0, -1)) &&\n name.length >= key.length &&\n key.length > bestMatch.length\n ) {\n bestMatch = key;\n } else if (\n key[key.length - 1] === '/' &&\n name.startsWith(key) &&\n key.length > bestMatch.length\n ) {\n bestMatch = key;\n }\n }\n\n if (bestMatch) {\n const target = imports[bestMatch];\n const pattern = bestMatch[bestMatch.length - 1] === '*';\n const subpath = name.slice(bestMatch.length - (pattern ? 1 : 0));\n const resolved = resolvePackageTarget(\n packageJsonUrl,\n target,\n subpath,\n bestMatch,\n base,\n pattern,\n true,\n conditions\n );\n if (resolved !== null) {\n if (!pattern)\n emitFolderMapDeprecation(bestMatch, packageJsonUrl, false, base);\n return {resolved, exact: pattern}\n }\n }\n }\n }\n }\n\n throwImportNotDefined(name, packageJsonUrl, base);\n}\n\n/**\n * @param {string} url\n * @returns {PackageType}\n */\nfunction getPackageType(url) {\n const packageConfig = getPackageScopeConfig(url);\n return packageConfig.type\n}\n\n/**\n * @param {string} specifier\n * @param {URL} base\n */\nfunction parsePackageName(specifier, base) {\n let separatorIndex = specifier.indexOf('/');\n let validPackageName = true;\n let isScoped = false;\n if (specifier[0] === '@') {\n isScoped = true;\n if (separatorIndex === -1 || specifier.length === 0) {\n validPackageName = false;\n } else {\n separatorIndex = specifier.indexOf('/', separatorIndex + 1);\n }\n }\n\n const packageName =\n separatorIndex === -1 ? specifier : specifier.slice(0, separatorIndex);\n\n // Package name cannot have leading . and cannot have percent-encoding or\n // separators.\n let i = -1;\n while (++i < packageName.length) {\n if (packageName[i] === '%' || packageName[i] === '\\\\') {\n validPackageName = false;\n break\n }\n }\n\n if (!validPackageName) {\n throw new ERR_INVALID_MODULE_SPECIFIER(\n specifier,\n 'is not a valid package name',\n fileURLToPath(base)\n )\n }\n\n const packageSubpath =\n '.' + (separatorIndex === -1 ? '' : specifier.slice(separatorIndex));\n\n return {packageName, packageSubpath, isScoped}\n}\n\n/**\n * @param {string} specifier\n * @param {URL} base\n * @param {Set} conditions\n * @returns {URL}\n */\nfunction packageResolve(specifier, base, conditions) {\n const {packageName, packageSubpath, isScoped} = parsePackageName(\n specifier,\n base\n );\n\n // ResolveSelf\n const packageConfig = getPackageScopeConfig(base);\n\n // Can\u2019t test.\n /* c8 ignore next 16 */\n if (packageConfig.exists) {\n const packageJsonUrl = pathToFileURL(packageConfig.pjsonPath);\n if (\n packageConfig.name === packageName &&\n packageConfig.exports !== undefined &&\n packageConfig.exports !== null\n ) {\n return packageExportsResolve(\n packageJsonUrl,\n packageSubpath,\n packageConfig,\n base,\n conditions\n ).resolved\n }\n }\n\n let packageJsonUrl = new URL(\n './node_modules/' + packageName + '/package.json',\n base\n );\n let packageJsonPath = fileURLToPath(packageJsonUrl);\n /** @type {string} */\n let lastPath;\n do {\n const stat = tryStatSync(packageJsonPath.slice(0, -13));\n if (!stat.isDirectory()) {\n lastPath = packageJsonPath;\n packageJsonUrl = new URL(\n (isScoped ? '../../../../node_modules/' : '../../../node_modules/') +\n packageName +\n '/package.json',\n packageJsonUrl\n );\n packageJsonPath = fileURLToPath(packageJsonUrl);\n continue\n }\n\n // Package match.\n const packageConfig = getPackageConfig(packageJsonPath, specifier, base);\n if (packageConfig.exports !== undefined && packageConfig.exports !== null)\n return packageExportsResolve(\n packageJsonUrl,\n packageSubpath,\n packageConfig,\n base,\n conditions\n ).resolved\n if (packageSubpath === '.')\n return legacyMainResolve(packageJsonUrl, packageConfig, base)\n return new URL(packageSubpath, packageJsonUrl)\n // Cross-platform root check.\n } while (packageJsonPath.length !== lastPath.length)\n\n throw new ERR_MODULE_NOT_FOUND(packageName, fileURLToPath(base))\n}\n\n/**\n * @param {string} specifier\n * @returns {boolean}\n */\nfunction isRelativeSpecifier(specifier) {\n if (specifier[0] === '.') {\n if (specifier.length === 1 || specifier[1] === '/') return true\n if (\n specifier[1] === '.' &&\n (specifier.length === 2 || specifier[2] === '/')\n ) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * @param {string} specifier\n * @returns {boolean}\n */\nfunction shouldBeTreatedAsRelativeOrAbsolutePath(specifier) {\n if (specifier === '') return false\n if (specifier[0] === '/') return true\n return isRelativeSpecifier(specifier)\n}\n\n/**\n * The \u201cResolver Algorithm Specification\u201d as detailed in the Node docs (which is\n * sync and slightly lower-level than `resolve`).\n *\n *\n *\n * @param {string} specifier\n * @param {URL} base\n * @param {Set} [conditions]\n * @returns {URL}\n */\nfunction moduleResolve(specifier, base, conditions) {\n // Order swapped from spec for minor perf gain.\n // Ok since relative URLs cannot parse as URLs.\n /** @type {URL} */\n let resolved;\n\n if (shouldBeTreatedAsRelativeOrAbsolutePath(specifier)) {\n resolved = new URL(specifier, base);\n } else if (specifier[0] === '#') {\n({resolved} = packageImportsResolve(specifier, base, conditions));\n } else {\n try {\n resolved = new URL(specifier);\n } catch {\n resolved = packageResolve(specifier, base, conditions);\n }\n }\n\n return finalizeResolution(resolved, base)\n}\n\n/**\n * @param {string} specifier\n * @param {{parentURL?: string, conditions?: string[]}} context\n * @returns {{url: string}}\n */\nfunction defaultResolve(specifier, context = {}) {\n const {parentURL} = context;\n /** @type {URL} */\n let parsed;\n\n try {\n parsed = new URL(specifier);\n if (parsed.protocol === 'data:') {\n return {url: specifier}\n }\n } catch {}\n\n if (parsed && parsed.protocol === 'node:') return {url: specifier}\n if (parsed && parsed.protocol !== 'file:' && parsed.protocol !== 'data:')\n throw new ERR_UNSUPPORTED_ESM_URL_SCHEME(parsed)\n\n if (listOfBuiltins.includes(specifier)) {\n return {url: 'node:' + specifier}\n }\n\n if (parentURL.startsWith('data:')) {\n // This is gonna blow up, we want the error\n new URL(specifier, parentURL);\n }\n\n const conditions = getConditionsSet(context.conditions);\n let url = moduleResolve(specifier, new URL(parentURL), conditions);\n\n const urlPath = fileURLToPath(url);\n const real = realpathSync(urlPath);\n const old = url;\n url = pathToFileURL(real + (urlPath.endsWith(path.sep) ? '/' : ''));\n url.search = old.search;\n url.hash = old.hash;\n\n return {url: `${url}`}\n}\n\n/**\n * Provides a module-relative resolution function scoped to each module,\n * returning the URL string.\n * `import.meta.resolve` also accepts a second argument which is the parent\n * module from which to resolve from.\n *\n * This function is asynchronous because the ES module resolver in Node.js is\n * allowed to be asynchronous.\n *\n * @param {string} specifier The module specifier to resolve relative to parent.\n * @param {string} parent The absolute parent module URL to resolve from.\n * You should pass `import.meta.url` or something else\n * @returns {Promise}\n */\nasync function resolve(specifier, parent) {\n if (!parent) {\n throw new Error(\n 'Please pass `parent`: `import-meta-resolve` cannot ponyfill that'\n )\n }\n\n try {\n return defaultResolve(specifier, {parentURL: parent}).url\n } catch (error) {\n return error.code === 'ERR_UNSUPPORTED_DIR_IMPORT'\n ? error.url\n : Promise.reject(error)\n }\n}\n\nexport { moduleResolve, resolve };\n" │ │ │ │ │ ], │ │ │ │ │ "version": 3 │ │ │ │ │ } ├── node-babel7-standalone_7.20.15+ds1+~cs214.269.168-6_all.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2023-12-12 12:15:28.000000 debian-binary │ │ -rw-r--r-- 0 0 0 1436 2023-12-12 12:15:28.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 1000220 2023-12-12 12:15:28.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 1000444 2023-12-12 12:15:28.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -10,16 +10,16 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 73203 2023-02-02 17:44:46.000000 ./usr/share/doc/node-babel7-standalone/changelog.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 13364 2023-05-30 08:16:22.000000 ./usr/share/doc/node-babel7-standalone/copyright │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2023-12-12 12:15:28.000000 ./usr/share/doc/node-types-babel-standalone/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2041 2023-12-12 12:15:28.000000 ./usr/share/doc/node-types-babel-standalone/README.md │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2023-12-12 12:15:28.000000 ./usr/share/nodejs/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/standalone/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4662608 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/standalone/babel.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3519682 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/standalone/babel.min.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4662357 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/standalone/babel.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3519540 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/standalone/babel.min.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 7295 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/standalone/package.json │ │ │ │ -rw-r--r-- 0 root (0) root (0) 20982 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/standalone/pkgjs-lock.json │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@types/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@types/babel__standalone/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1295 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@types/babel__standalone/index.d.ts │ │ │ │ -rw-r--r-- 0 root (0) root (0) 880 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@types/babel__standalone/package.json │ │ │ │ -rw-r--r-- 0 root (0) root (0) 352 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@types/babel__standalone/pkgjs-lock.json │ │ │ ├── ./usr/share/nodejs/@babel/standalone/babel.js │ │ │ │ ├── js-beautify {} │ │ │ │ │ @@ -51218,60 +51218,52 @@ │ │ │ │ │ var patch = match[4] || '0'; │ │ │ │ │ var prerelease = options.includePrerelease && match[5] ? "-" + match[5] : ''; │ │ │ │ │ var build = options.includePrerelease && match[6] ? "+" + match[6] : ''; │ │ │ │ │ return parse$5(major + "." + minor + "." + patch + prerelease + build, options); │ │ │ │ │ }; │ │ │ │ │ var coerce_1 = coerce$1; │ │ │ │ │ │ │ │ │ │ - var lrucache; │ │ │ │ │ - var hasRequiredLrucache; │ │ │ │ │ - │ │ │ │ │ - function requireLrucache() { │ │ │ │ │ - if (hasRequiredLrucache) return lrucache; │ │ │ │ │ - hasRequiredLrucache = 1; │ │ │ │ │ - var LRUCache = function() { │ │ │ │ │ - function LRUCache() { │ │ │ │ │ - this.max = 1000; │ │ │ │ │ - this.map = new Map(); │ │ │ │ │ + var LRUCache$1 = function() { │ │ │ │ │ + function LRUCache() { │ │ │ │ │ + this.max = 1000; │ │ │ │ │ + this.map = new Map(); │ │ │ │ │ + } │ │ │ │ │ + var _proto = LRUCache.prototype; │ │ │ │ │ + _proto.get = function get(key) { │ │ │ │ │ + var value = this.map.get(key); │ │ │ │ │ + if (value === undefined) { │ │ │ │ │ + return undefined; │ │ │ │ │ + } else { │ │ │ │ │ + this.map["delete"](key); │ │ │ │ │ + this.map.set(key, value); │ │ │ │ │ + return value; │ │ │ │ │ } │ │ │ │ │ - var _proto = LRUCache.prototype; │ │ │ │ │ - _proto.get = function get(key) { │ │ │ │ │ - var value = this.map.get(key); │ │ │ │ │ - if (value === undefined) { │ │ │ │ │ - return undefined; │ │ │ │ │ - } else { │ │ │ │ │ - this.map["delete"](key); │ │ │ │ │ - this.map.set(key, value); │ │ │ │ │ - return value; │ │ │ │ │ - } │ │ │ │ │ - }; │ │ │ │ │ - _proto["delete"] = function _delete(key) { │ │ │ │ │ - if (this.map.has(key)) { │ │ │ │ │ - this.map["delete"](key); │ │ │ │ │ - return true; │ │ │ │ │ - } else { │ │ │ │ │ - return false; │ │ │ │ │ - } │ │ │ │ │ - }; │ │ │ │ │ - _proto.set = function set(key, value) { │ │ │ │ │ - var deleted = this["delete"](key); │ │ │ │ │ - if (!deleted && value !== undefined) { │ │ │ │ │ - if (this.map.size >= this.max) { │ │ │ │ │ - var firstKey = this.map.keys().next().value; │ │ │ │ │ - this["delete"](firstKey); │ │ │ │ │ - } │ │ │ │ │ - this.map.set(key, value); │ │ │ │ │ + }; │ │ │ │ │ + _proto["delete"] = function _delete(key) { │ │ │ │ │ + if (this.map.has(key)) { │ │ │ │ │ + this.map["delete"](key); │ │ │ │ │ + return true; │ │ │ │ │ + } else { │ │ │ │ │ + return false; │ │ │ │ │ + } │ │ │ │ │ + }; │ │ │ │ │ + _proto.set = function set(key, value) { │ │ │ │ │ + var deleted = this["delete"](key); │ │ │ │ │ + if (!deleted && value !== undefined) { │ │ │ │ │ + if (this.map.size >= this.max) { │ │ │ │ │ + var firstKey = this.map.keys().next().value; │ │ │ │ │ + this["delete"](firstKey); │ │ │ │ │ } │ │ │ │ │ - return this; │ │ │ │ │ - }; │ │ │ │ │ - return _createClass(LRUCache); │ │ │ │ │ - }(); │ │ │ │ │ - lrucache = LRUCache; │ │ │ │ │ - return lrucache; │ │ │ │ │ - } │ │ │ │ │ + this.map.set(key, value); │ │ │ │ │ + } │ │ │ │ │ + return this; │ │ │ │ │ + }; │ │ │ │ │ + return _createClass(LRUCache); │ │ │ │ │ + }(); │ │ │ │ │ + var lrucache = LRUCache$1; │ │ │ │ │ │ │ │ │ │ var range; │ │ │ │ │ var hasRequiredRange; │ │ │ │ │ │ │ │ │ │ function requireRange() { │ │ │ │ │ if (hasRequiredRange) return range; │ │ │ │ │ hasRequiredRange = 1; │ │ │ │ │ @@ -51414,15 +51406,15 @@ │ │ │ │ │ } │ │ │ │ │ } │ │ │ │ │ return false; │ │ │ │ │ }; │ │ │ │ │ return _createClass(Range); │ │ │ │ │ }(); │ │ │ │ │ range = Range; │ │ │ │ │ - var LRU = requireLrucache(); │ │ │ │ │ + var LRU = lrucache; │ │ │ │ │ var cache = new LRU(); │ │ │ │ │ var parseOptions = parseOptions_1; │ │ │ │ │ var Comparator = requireComparator(); │ │ │ │ │ var debug = debug_1; │ │ │ │ │ var SemVer = semver$3; │ │ │ │ │ var re = reExports.safeRe, │ │ │ │ │ t = reExports.t, │ │ │ ├── ./usr/share/nodejs/@babel/standalone/babel.min.js │ │ │ │ ├── js-beautify {} │ │ │ │ │ @@ -50149,60 +50149,52 @@ │ │ │ │ │ var minor = match[3] || "0"; │ │ │ │ │ var patch = match[4] || "0"; │ │ │ │ │ var prerelease = options.includePrerelease && match[5] ? "-" + match[5] : ""; │ │ │ │ │ var build = options.includePrerelease && match[6] ? "+" + match[6] : ""; │ │ │ │ │ return parse$5(major + "." + minor + "." + patch + prerelease + build, options) │ │ │ │ │ }; │ │ │ │ │ var coerce_1 = coerce$1; │ │ │ │ │ - var lrucache; │ │ │ │ │ - var hasRequiredLrucache; │ │ │ │ │ - │ │ │ │ │ - function requireLrucache() { │ │ │ │ │ - if (hasRequiredLrucache) return lrucache; │ │ │ │ │ - hasRequiredLrucache = 1; │ │ │ │ │ - var LRUCache = function() { │ │ │ │ │ - function LRUCache() { │ │ │ │ │ - this.max = 1e3; │ │ │ │ │ - this.map = new Map │ │ │ │ │ + var LRUCache$1 = function() { │ │ │ │ │ + function LRUCache() { │ │ │ │ │ + this.max = 1e3; │ │ │ │ │ + this.map = new Map │ │ │ │ │ + } │ │ │ │ │ + var _proto = LRUCache.prototype; │ │ │ │ │ + _proto.get = function get(key) { │ │ │ │ │ + var value = this.map.get(key); │ │ │ │ │ + if (value === undefined) { │ │ │ │ │ + return undefined │ │ │ │ │ + } else { │ │ │ │ │ + this.map["delete"](key); │ │ │ │ │ + this.map.set(key, value); │ │ │ │ │ + return value │ │ │ │ │ } │ │ │ │ │ - var _proto = LRUCache.prototype; │ │ │ │ │ - _proto.get = function get(key) { │ │ │ │ │ - var value = this.map.get(key); │ │ │ │ │ - if (value === undefined) { │ │ │ │ │ - return undefined │ │ │ │ │ - } else { │ │ │ │ │ - this.map["delete"](key); │ │ │ │ │ - this.map.set(key, value); │ │ │ │ │ - return value │ │ │ │ │ - } │ │ │ │ │ - }; │ │ │ │ │ - _proto["delete"] = function _delete(key) { │ │ │ │ │ - if (this.map.has(key)) { │ │ │ │ │ - this.map["delete"](key); │ │ │ │ │ - return true │ │ │ │ │ - } else { │ │ │ │ │ - return false │ │ │ │ │ - } │ │ │ │ │ - }; │ │ │ │ │ - _proto.set = function set(key, value) { │ │ │ │ │ - var deleted = this["delete"](key); │ │ │ │ │ - if (!deleted && value !== undefined) { │ │ │ │ │ - if (this.map.size >= this.max) { │ │ │ │ │ - var firstKey = this.map.keys().next().value; │ │ │ │ │ - this["delete"](firstKey) │ │ │ │ │ - } │ │ │ │ │ - this.map.set(key, value) │ │ │ │ │ + }; │ │ │ │ │ + _proto["delete"] = function _delete(key) { │ │ │ │ │ + if (this.map.has(key)) { │ │ │ │ │ + this.map["delete"](key); │ │ │ │ │ + return true │ │ │ │ │ + } else { │ │ │ │ │ + return false │ │ │ │ │ + } │ │ │ │ │ + }; │ │ │ │ │ + _proto.set = function set(key, value) { │ │ │ │ │ + var deleted = this["delete"](key); │ │ │ │ │ + if (!deleted && value !== undefined) { │ │ │ │ │ + if (this.map.size >= this.max) { │ │ │ │ │ + var firstKey = this.map.keys().next().value; │ │ │ │ │ + this["delete"](firstKey) │ │ │ │ │ } │ │ │ │ │ - return this │ │ │ │ │ - }; │ │ │ │ │ - return _createClass(LRUCache) │ │ │ │ │ - }(); │ │ │ │ │ - lrucache = LRUCache; │ │ │ │ │ - return lrucache │ │ │ │ │ - } │ │ │ │ │ + this.map.set(key, value) │ │ │ │ │ + } │ │ │ │ │ + return this │ │ │ │ │ + }; │ │ │ │ │ + return _createClass(LRUCache) │ │ │ │ │ + }(); │ │ │ │ │ + var lrucache = LRUCache$1; │ │ │ │ │ var range; │ │ │ │ │ var hasRequiredRange; │ │ │ │ │ │ │ │ │ │ function requireRange() { │ │ │ │ │ if (hasRequiredRange) return range; │ │ │ │ │ hasRequiredRange = 1; │ │ │ │ │ var Range = function() { │ │ │ │ │ @@ -50344,15 +50336,15 @@ │ │ │ │ │ } │ │ │ │ │ } │ │ │ │ │ return false │ │ │ │ │ }; │ │ │ │ │ return _createClass(Range) │ │ │ │ │ }(); │ │ │ │ │ range = Range; │ │ │ │ │ - var LRU = requireLrucache(); │ │ │ │ │ + var LRU = lrucache; │ │ │ │ │ var cache = new LRU; │ │ │ │ │ var parseOptions = parseOptions_1; │ │ │ │ │ var Comparator = requireComparator(); │ │ │ │ │ var debug = debug_1; │ │ │ │ │ var SemVer = semver$3; │ │ │ │ │ var re = reExports.safeRe, │ │ │ │ │ t = reExports.t, ├── node-babel7_7.20.15+ds1+~cs214.269.168-6_all.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2023-12-12 12:15:28.000000 debian-binary │ │ --rw-r--r-- 0 0 0 47548 2023-12-12 12:15:28.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 660844 2023-12-12 12:15:28.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 47528 2023-12-12 12:15:28.000000 control.tar.xz │ │ +-rw-r--r-- 0 0 0 660904 2023-12-12 12:15:28.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -526,15 +526,15 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3463 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/core/lib/transformation/index.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3816 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/core/lib/transformation/normalize-file.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1590 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/core/lib/transformation/normalize-opts.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1076 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/core/lib/transformation/plugin-pass.js │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/core/lib/transformation/util/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 942 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/core/lib/transformation/util/clone-deep.js │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/core/lib/vendor/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 82182 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/core/lib/vendor/import-meta-resolve.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 81945 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/core/lib/vendor/import-meta-resolve.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2992 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/core/package.json │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4282 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/core/pkgjs-lock.json │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/eslint-config-internal/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 859 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/eslint-config-internal/index.js │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/eslint-config-internal/lib/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 20 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/eslint-config-internal/lib/package.json │ │ │ │ -rw-r--r-- 0 root (0) root (0) 393 2023-12-12 12:15:28.000000 ./usr/share/nodejs/@babel/eslint-config-internal/package.json │ │ │ ├── ./usr/share/nodejs/@babel/core/lib/vendor/import-meta-resolve.js │ │ │ │ ├── js-beautify {} │ │ │ │ │ @@ -707,58 +707,50 @@ │ │ │ │ │ const minor = match[3] || '0'; │ │ │ │ │ const patch = match[4] || '0'; │ │ │ │ │ const prerelease = options.includePrerelease && match[5] ? `-${match[5]}` : ''; │ │ │ │ │ const build = options.includePrerelease && match[6] ? `+${match[6]}` : ''; │ │ │ │ │ return parse$1(`${major}.${minor}.${patch}${prerelease}${build}`, options); │ │ │ │ │ }; │ │ │ │ │ var coerce_1 = coerce$1; │ │ │ │ │ -var lrucache; │ │ │ │ │ -var hasRequiredLrucache; │ │ │ │ │ - │ │ │ │ │ -function requireLrucache() { │ │ │ │ │ - if (hasRequiredLrucache) return lrucache; │ │ │ │ │ - hasRequiredLrucache = 1; │ │ │ │ │ - class LRUCache { │ │ │ │ │ - constructor() { │ │ │ │ │ - this.max = 1000; │ │ │ │ │ - this.map = new Map(); │ │ │ │ │ - } │ │ │ │ │ - get(key) { │ │ │ │ │ - const value = this.map.get(key); │ │ │ │ │ - if (value === undefined) { │ │ │ │ │ - return undefined; │ │ │ │ │ - } else { │ │ │ │ │ - this.map.delete(key); │ │ │ │ │ - this.map.set(key, value); │ │ │ │ │ - return value; │ │ │ │ │ - } │ │ │ │ │ - } │ │ │ │ │ - delete(key) { │ │ │ │ │ - if (this.map.has(key)) { │ │ │ │ │ - this.map.delete(key); │ │ │ │ │ - return true; │ │ │ │ │ - } else { │ │ │ │ │ - return false; │ │ │ │ │ - } │ │ │ │ │ +class LRUCache { │ │ │ │ │ + constructor() { │ │ │ │ │ + this.max = 1000; │ │ │ │ │ + this.map = new Map(); │ │ │ │ │ + } │ │ │ │ │ + get(key) { │ │ │ │ │ + const value = this.map.get(key); │ │ │ │ │ + if (value === undefined) { │ │ │ │ │ + return undefined; │ │ │ │ │ + } else { │ │ │ │ │ + this.map.delete(key); │ │ │ │ │ + this.map.set(key, value); │ │ │ │ │ + return value; │ │ │ │ │ } │ │ │ │ │ - set(key, value) { │ │ │ │ │ - const deleted = this.delete(key); │ │ │ │ │ - if (!deleted && value !== undefined) { │ │ │ │ │ - if (this.map.size >= this.max) { │ │ │ │ │ - const firstKey = this.map.keys().next().value; │ │ │ │ │ - this.delete(firstKey); │ │ │ │ │ - } │ │ │ │ │ - this.map.set(key, value); │ │ │ │ │ + } │ │ │ │ │ + delete(key) { │ │ │ │ │ + if (this.map.has(key)) { │ │ │ │ │ + this.map.delete(key); │ │ │ │ │ + return true; │ │ │ │ │ + } else { │ │ │ │ │ + return false; │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + set(key, value) { │ │ │ │ │ + const deleted = this.delete(key); │ │ │ │ │ + if (!deleted && value !== undefined) { │ │ │ │ │ + if (this.map.size >= this.max) { │ │ │ │ │ + const firstKey = this.map.keys().next().value; │ │ │ │ │ + this.delete(firstKey); │ │ │ │ │ } │ │ │ │ │ - return this; │ │ │ │ │ + this.map.set(key, value); │ │ │ │ │ } │ │ │ │ │ + return this; │ │ │ │ │ } │ │ │ │ │ - lrucache = LRUCache; │ │ │ │ │ - return lrucache; │ │ │ │ │ } │ │ │ │ │ +var lrucache = LRUCache; │ │ │ │ │ var range; │ │ │ │ │ var hasRequiredRange; │ │ │ │ │ │ │ │ │ │ function requireRange() { │ │ │ │ │ if (hasRequiredRange) return range; │ │ │ │ │ hasRequiredRange = 1; │ │ │ │ │ class Range { │ │ │ │ │ @@ -880,15 +872,15 @@ │ │ │ │ │ return true; │ │ │ │ │ } │ │ │ │ │ } │ │ │ │ │ return false; │ │ │ │ │ } │ │ │ │ │ } │ │ │ │ │ range = Range; │ │ │ │ │ - const LRU = requireLrucache(); │ │ │ │ │ + const LRU = lrucache; │ │ │ │ │ const cache = new LRU(); │ │ │ │ │ const parseOptions = parseOptions_1; │ │ │ │ │ const Comparator = requireComparator(); │ │ │ │ │ const debug = debug_1; │ │ │ │ │ const SemVer = semver$2; │ │ │ │ │ const { │ │ │ │ │ safeRe: re,