8889841cplugin-syntax-import-assertions/README.md000066600000000671150432031470014354 0ustar00# @babel/plugin-syntax-import-assertions > Allow parsing of the module assertion attributes in the import statement See our website [@babel/plugin-syntax-import-assertions](https://babeljs.io/docs/en/babel-plugin-syntax-import-assertions) for more information. ## Install Using npm: ```sh npm install --save-dev @babel/plugin-syntax-import-assertions ``` or using yarn: ```sh yarn add @babel/plugin-syntax-import-assertions --dev ``` plugin-syntax-import-assertions/lib/index.js000066600000000733150432031470015307 0ustar00"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _helperPluginUtils = require("@babel/helper-plugin-utils"); var _default = (0, _helperPluginUtils.declare)(api => { api.assertVersion(7); return { name: "syntax-import-assertions", manipulateOptions(opts, parserOpts) { parserOpts.plugins.push("importAssertions"); } }; }); exports.default = _default; //# sourceMappingURL=index.js.map plugin-syntax-import-assertions/lib/index.js.map000066600000001302150432031470016054 0ustar00{"version":3,"names":["declare","api","assertVersion","name","manipulateOptions","opts","parserOpts","plugins","push"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\n\nexport default declare(api => {\n api.assertVersion(7);\n\n return {\n name: \"syntax-import-assertions\",\n\n manipulateOptions(opts, parserOpts) {\n parserOpts.plugins.push(\"importAssertions\");\n },\n };\n});\n"],"mappings":";;;;;;;AAAA;;eAEe,IAAAA,0BAAA,EAAQC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAJ,CAAkB,CAAlB;EAEA,OAAO;IACLC,IAAI,EAAE,0BADD;;IAGLC,iBAAiB,CAACC,IAAD,EAAOC,UAAP,EAAmB;MAClCA,UAAU,CAACC,OAAX,CAAmBC,IAAnB,CAAwB,kBAAxB;IACD;;EALI,CAAP;AAOD,CAVc,C"}plugin-syntax-import-assertions/LICENSE000066600000002122150432031470014073 0ustar00MIT License Copyright (c) 2014-present Sebastian McKenzie and other contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. plugin-syntax-import-assertions/package.json000066600000001400150432031470015352 0ustar00{ "name": "@babel/plugin-syntax-import-assertions", "version": "7.20.0", "description": "Allow parsing of the module assertion attributes in the import statement", "repository": { "type": "git", "url": "https://github.com/babel/babel.git", "directory": "packages/babel-plugin-syntax-import-assertions" }, "license": "MIT", "publishConfig": { "access": "public" }, "main": "./lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { "@babel/helper-plugin-utils": "^7.19.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" }, "devDependencies": { "@babel/core": "^7.19.6" }, "engines": { "node": ">=6.9.0" }, "author": "The Babel Team (https://babel.dev/team)", "type": "commonjs" }preset-env/data/core-js-compat.js000066600000000066150432031470012733 0ustar00module.exports = require("core-js-compat/data.json"); preset-env/data/shipped-proposals.js000066600000000267150432031470013567 0ustar00const { pluginSyntaxMap, proposalPlugins, proposalSyntaxPlugins } = require("../lib/shipped-proposals"); module.exports = { pluginSyntaxMap, proposalPlugins, proposalSyntaxPlugins }; preset-env/data/corejs2-built-ins.js000066600000000136150432031470013361 0ustar00// TODO: Remove in Babel 8 module.exports = require("@babel/compat-data/corejs2-built-ins"); preset-env/data/built-ins.json.js000066600000000202150432031470012756 0ustar00// TODO: Remove in Babel 8 // https://github.com/vuejs/vue-cli/issues/3671 module.exports = require("./corejs2-built-ins.json"); preset-env/data/corejs2-built-ins.json.js000066600000000136150432031470014331 0ustar00// TODO: Remove in Babel 8 module.exports = require("@babel/compat-data/corejs2-built-ins"); preset-env/data/unreleased-labels.js000066600000000154150432031470013475 0ustar00// TODO: Remove in Babel 8 module.exports = require("@babel/helper-compilation-targets").unreleasedLabels; preset-env/data/built-ins.js000066600000000202150432031470012006 0ustar00// TODO: Remove in Babel 8 // https://github.com/vuejs/vue-cli/issues/3671 module.exports = require("./corejs2-built-ins.json"); preset-env/data/plugins.json.js000066600000000124150432031470012534 0ustar00// TODO: Remove in Babel 8 module.exports = require("@babel/compat-data/plugins"); preset-env/data/plugins.js000066600000000124150432031470011564 0ustar00// TODO: Remove in Babel 8 module.exports = require("@babel/compat-data/plugins"); preset-env/data/built-in-modules.js000066600000000133150432031470013274 0ustar00// TODO: Remove in Babel 8 module.exports = require("@babel/compat-data/native-modules"); preset-env/data/built-in-modules.json.js000066600000000133150432031470014244 0ustar00// TODO: Remove in Babel 8 module.exports = require("@babel/compat-data/native-modules"); preset-env/data/package.json000066600000000026150432031470012034 0ustar00{ "type": "commonjs" }preset-env/README.md000066600000000710150432031470010114 0ustar00# @babel/preset-env > A Babel preset for each environment. See our website [@babel/preset-env](https://babeljs.io/docs/en/babel-preset-env) for more information or the [issues](https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20preset-env%22+is%3Aopen) associated with this package. ## Install Using npm: ```sh npm install --save-dev @babel/preset-env ``` or using yarn: ```sh yarn add @babel/preset-env --dev ``` preset-env/node_modules/semver/README.md000066600000041116150432031470014077 0ustar00semver(1) -- The semantic versioner for npm =========================================== ## Install ```bash npm install semver ```` ## Usage As a node module: ```js const semver = require('semver') semver.valid('1.2.3') // '1.2.3' semver.valid('a.b.c') // null semver.clean(' =v1.2.3 ') // '1.2.3' semver.satisfies('1.2.3', '1.x || >=2.5.0 || 5.0.0 - 7.2.3') // true semver.gt('1.2.3', '9.8.7') // false semver.lt('1.2.3', '9.8.7') // true semver.minVersion('>=1.0.0') // '1.0.0' semver.valid(semver.coerce('v2')) // '2.0.0' semver.valid(semver.coerce('42.6.7.9.3-alpha')) // '42.6.7' ``` As a command-line utility: ``` $ semver -h A JavaScript implementation of the https://semver.org/ specification Copyright Isaac Z. Schlueter Usage: semver [options] [ [...]] Prints valid versions sorted by SemVer precedence Options: -r --range Print versions that match the specified range. -i --increment [] Increment a version by the specified level. Level can be one of: major, minor, patch, premajor, preminor, prepatch, or prerelease. Default level is 'patch'. Only one version may be specified. --preid Identifier to be used to prefix premajor, preminor, prepatch or prerelease version increments. -l --loose Interpret versions and ranges loosely -p --include-prerelease Always include prerelease versions in range matching -c --coerce Coerce a string into SemVer if possible (does not imply --loose) --rtl Coerce version strings right to left --ltr Coerce version strings left to right (default) Program exits successfully if any valid version satisfies all supplied ranges, and prints all satisfying versions. If no satisfying versions are found, then exits failure. Versions are printed in ascending order, so supplying multiple versions to the utility will just sort them. ``` ## Versions A "version" is described by the `v2.0.0` specification found at . A leading `"="` or `"v"` character is stripped off and ignored. ## Ranges A `version range` is a set of `comparators` which specify versions that satisfy the range. A `comparator` is composed of an `operator` and a `version`. The set of primitive `operators` is: * `<` Less than * `<=` Less than or equal to * `>` Greater than * `>=` Greater than or equal to * `=` Equal. If no operator is specified, then equality is assumed, so this operator is optional, but MAY be included. For example, the comparator `>=1.2.7` would match the versions `1.2.7`, `1.2.8`, `2.5.3`, and `1.3.9`, but not the versions `1.2.6` or `1.1.0`. Comparators can be joined by whitespace to form a `comparator set`, which is satisfied by the **intersection** of all of the comparators it includes. A range is composed of one or more comparator sets, joined by `||`. A version matches a range if and only if every comparator in at least one of the `||`-separated comparator sets is satisfied by the version. For example, the range `>=1.2.7 <1.3.0` would match the versions `1.2.7`, `1.2.8`, and `1.2.99`, but not the versions `1.2.6`, `1.3.0`, or `1.1.0`. The range `1.2.7 || >=1.2.9 <2.0.0` would match the versions `1.2.7`, `1.2.9`, and `1.4.6`, but not the versions `1.2.8` or `2.0.0`. ### Prerelease Tags If a version has a prerelease tag (for example, `1.2.3-alpha.3`) then it will only be allowed to satisfy comparator sets if at least one comparator with the same `[major, minor, patch]` tuple also has a prerelease tag. For example, the range `>1.2.3-alpha.3` would be allowed to match the version `1.2.3-alpha.7`, but it would *not* be satisfied by `3.4.5-alpha.9`, even though `3.4.5-alpha.9` is technically "greater than" `1.2.3-alpha.3` according to the SemVer sort rules. The version range only accepts prerelease tags on the `1.2.3` version. The version `3.4.5` *would* satisfy the range, because it does not have a prerelease flag, and `3.4.5` is greater than `1.2.3-alpha.7`. The purpose for this behavior is twofold. First, prerelease versions frequently are updated very quickly, and contain many breaking changes that are (by the author's design) not yet fit for public consumption. Therefore, by default, they are excluded from range matching semantics. Second, a user who has opted into using a prerelease version has clearly indicated the intent to use *that specific* set of alpha/beta/rc versions. By including a prerelease tag in the range, the user is indicating that they are aware of the risk. However, it is still not appropriate to assume that they have opted into taking a similar risk on the *next* set of prerelease versions. Note that this behavior can be suppressed (treating all prerelease versions as if they were normal versions, for the purpose of range matching) by setting the `includePrerelease` flag on the options object to any [functions](https://github.com/npm/node-semver#functions) that do range matching. #### Prerelease Identifiers The method `.inc` takes an additional `identifier` string argument that will append the value of the string as a prerelease identifier: ```javascript semver.inc('1.2.3', 'prerelease', 'beta') // '1.2.4-beta.0' ``` command-line example: ```bash $ semver 1.2.3 -i prerelease --preid beta 1.2.4-beta.0 ``` Which then can be used to increment further: ```bash $ semver 1.2.4-beta.0 -i prerelease 1.2.4-beta.1 ``` ### Advanced Range Syntax Advanced range syntax desugars to primitive comparators in deterministic ways. Advanced ranges may be combined in the same way as primitive comparators using white space or `||`. #### Hyphen Ranges `X.Y.Z - A.B.C` Specifies an inclusive set. * `1.2.3 - 2.3.4` := `>=1.2.3 <=2.3.4` If a partial version is provided as the first version in the inclusive range, then the missing pieces are replaced with zeroes. * `1.2 - 2.3.4` := `>=1.2.0 <=2.3.4` If a partial version is provided as the second version in the inclusive range, then all versions that start with the supplied parts of the tuple are accepted, but nothing that would be greater than the provided tuple parts. * `1.2.3 - 2.3` := `>=1.2.3 <2.4.0` * `1.2.3 - 2` := `>=1.2.3 <3.0.0` #### X-Ranges `1.2.x` `1.X` `1.2.*` `*` Any of `X`, `x`, or `*` may be used to "stand in" for one of the numeric values in the `[major, minor, patch]` tuple. * `*` := `>=0.0.0` (Any version satisfies) * `1.x` := `>=1.0.0 <2.0.0` (Matching major version) * `1.2.x` := `>=1.2.0 <1.3.0` (Matching major and minor versions) A partial version range is treated as an X-Range, so the special character is in fact optional. * `""` (empty string) := `*` := `>=0.0.0` * `1` := `1.x.x` := `>=1.0.0 <2.0.0` * `1.2` := `1.2.x` := `>=1.2.0 <1.3.0` #### Tilde Ranges `~1.2.3` `~1.2` `~1` Allows patch-level changes if a minor version is specified on the comparator. Allows minor-level changes if not. * `~1.2.3` := `>=1.2.3 <1.(2+1).0` := `>=1.2.3 <1.3.0` * `~1.2` := `>=1.2.0 <1.(2+1).0` := `>=1.2.0 <1.3.0` (Same as `1.2.x`) * `~1` := `>=1.0.0 <(1+1).0.0` := `>=1.0.0 <2.0.0` (Same as `1.x`) * `~0.2.3` := `>=0.2.3 <0.(2+1).0` := `>=0.2.3 <0.3.0` * `~0.2` := `>=0.2.0 <0.(2+1).0` := `>=0.2.0 <0.3.0` (Same as `0.2.x`) * `~0` := `>=0.0.0 <(0+1).0.0` := `>=0.0.0 <1.0.0` (Same as `0.x`) * `~1.2.3-beta.2` := `>=1.2.3-beta.2 <1.3.0` Note that prereleases in the `1.2.3` version will be allowed, if they are greater than or equal to `beta.2`. So, `1.2.3-beta.4` would be allowed, but `1.2.4-beta.2` would not, because it is a prerelease of a different `[major, minor, patch]` tuple. #### Caret Ranges `^1.2.3` `^0.2.5` `^0.0.4` Allows changes that do not modify the left-most non-zero element in the `[major, minor, patch]` tuple. In other words, this allows patch and minor updates for versions `1.0.0` and above, patch updates for versions `0.X >=0.1.0`, and *no* updates for versions `0.0.X`. Many authors treat a `0.x` version as if the `x` were the major "breaking-change" indicator. Caret ranges are ideal when an author may make breaking changes between `0.2.4` and `0.3.0` releases, which is a common practice. However, it presumes that there will *not* be breaking changes between `0.2.4` and `0.2.5`. It allows for changes that are presumed to be additive (but non-breaking), according to commonly observed practices. * `^1.2.3` := `>=1.2.3 <2.0.0` * `^0.2.3` := `>=0.2.3 <0.3.0` * `^0.0.3` := `>=0.0.3 <0.0.4` * `^1.2.3-beta.2` := `>=1.2.3-beta.2 <2.0.0` Note that prereleases in the `1.2.3` version will be allowed, if they are greater than or equal to `beta.2`. So, `1.2.3-beta.4` would be allowed, but `1.2.4-beta.2` would not, because it is a prerelease of a different `[major, minor, patch]` tuple. * `^0.0.3-beta` := `>=0.0.3-beta <0.0.4` Note that prereleases in the `0.0.3` version *only* will be allowed, if they are greater than or equal to `beta`. So, `0.0.3-pr.2` would be allowed. When parsing caret ranges, a missing `patch` value desugars to the number `0`, but will allow flexibility within that value, even if the major and minor versions are both `0`. * `^1.2.x` := `>=1.2.0 <2.0.0` * `^0.0.x` := `>=0.0.0 <0.1.0` * `^0.0` := `>=0.0.0 <0.1.0` A missing `minor` and `patch` values will desugar to zero, but also allow flexibility within those values, even if the major version is zero. * `^1.x` := `>=1.0.0 <2.0.0` * `^0.x` := `>=0.0.0 <1.0.0` ### Range Grammar Putting all this together, here is a Backus-Naur grammar for ranges, for the benefit of parser authors: ```bnf range-set ::= range ( logical-or range ) * logical-or ::= ( ' ' ) * '||' ( ' ' ) * range ::= hyphen | simple ( ' ' simple ) * | '' hyphen ::= partial ' - ' partial simple ::= primitive | partial | tilde | caret primitive ::= ( '<' | '>' | '>=' | '<=' | '=' ) partial partial ::= xr ( '.' xr ( '.' xr qualifier ? )? )? xr ::= 'x' | 'X' | '*' | nr nr ::= '0' | ['1'-'9'] ( ['0'-'9'] ) * tilde ::= '~' partial caret ::= '^' partial qualifier ::= ( '-' pre )? ( '+' build )? pre ::= parts build ::= parts parts ::= part ( '.' part ) * part ::= nr | [-0-9A-Za-z]+ ``` ## Functions All methods and classes take a final `options` object argument. All options in this object are `false` by default. The options supported are: - `loose` Be more forgiving about not-quite-valid semver strings. (Any resulting output will always be 100% strict compliant, of course.) For backwards compatibility reasons, if the `options` argument is a boolean value instead of an object, it is interpreted to be the `loose` param. - `includePrerelease` Set to suppress the [default behavior](https://github.com/npm/node-semver#prerelease-tags) of excluding prerelease tagged versions from ranges unless they are explicitly opted into. Strict-mode Comparators and Ranges will be strict about the SemVer strings that they parse. * `valid(v)`: Return the parsed version, or null if it's not valid. * `inc(v, release)`: Return the version incremented by the release type (`major`, `premajor`, `minor`, `preminor`, `patch`, `prepatch`, or `prerelease`), or null if it's not valid * `premajor` in one call will bump the version up to the next major version and down to a prerelease of that major version. `preminor`, and `prepatch` work the same way. * If called from a non-prerelease version, the `prerelease` will work the same as `prepatch`. It increments the patch version, then makes a prerelease. If the input version is already a prerelease it simply increments it. * `prerelease(v)`: Returns an array of prerelease components, or null if none exist. Example: `prerelease('1.2.3-alpha.1') -> ['alpha', 1]` * `major(v)`: Return the major version number. * `minor(v)`: Return the minor version number. * `patch(v)`: Return the patch version number. * `intersects(r1, r2, loose)`: Return true if the two supplied ranges or comparators intersect. * `parse(v)`: Attempt to parse a string as a semantic version, returning either a `SemVer` object or `null`. ### Comparison * `gt(v1, v2)`: `v1 > v2` * `gte(v1, v2)`: `v1 >= v2` * `lt(v1, v2)`: `v1 < v2` * `lte(v1, v2)`: `v1 <= v2` * `eq(v1, v2)`: `v1 == v2` This is true if they're logically equivalent, even if they're not the exact same string. You already know how to compare strings. * `neq(v1, v2)`: `v1 != v2` The opposite of `eq`. * `cmp(v1, comparator, v2)`: Pass in a comparison string, and it'll call the corresponding function above. `"==="` and `"!=="` do simple string comparison, but are included for completeness. Throws if an invalid comparison string is provided. * `compare(v1, v2)`: Return `0` if `v1 == v2`, or `1` if `v1` is greater, or `-1` if `v2` is greater. Sorts in ascending order if passed to `Array.sort()`. * `rcompare(v1, v2)`: The reverse of compare. Sorts an array of versions in descending order when passed to `Array.sort()`. * `compareBuild(v1, v2)`: The same as `compare` but considers `build` when two versions are equal. Sorts in ascending order if passed to `Array.sort()`. `v2` is greater. Sorts in ascending order if passed to `Array.sort()`. * `diff(v1, v2)`: Returns difference between two versions by the release type (`major`, `premajor`, `minor`, `preminor`, `patch`, `prepatch`, or `prerelease`), or null if the versions are the same. ### Comparators * `intersects(comparator)`: Return true if the comparators intersect ### Ranges * `validRange(range)`: Return the valid range or null if it's not valid * `satisfies(version, range)`: Return true if the version satisfies the range. * `maxSatisfying(versions, range)`: Return the highest version in the list that satisfies the range, or `null` if none of them do. * `minSatisfying(versions, range)`: Return the lowest version in the list that satisfies the range, or `null` if none of them do. * `minVersion(range)`: Return the lowest version that can possibly match the given range. * `gtr(version, range)`: Return `true` if version is greater than all the versions possible in the range. * `ltr(version, range)`: Return `true` if version is less than all the versions possible in the range. * `outside(version, range, hilo)`: Return true if the version is outside the bounds of the range in either the high or low direction. The `hilo` argument must be either the string `'>'` or `'<'`. (This is the function called by `gtr` and `ltr`.) * `intersects(range)`: Return true if any of the ranges comparators intersect Note that, since ranges may be non-contiguous, a version might not be greater than a range, less than a range, *or* satisfy a range! For example, the range `1.2 <1.2.9 || >2.0.0` would have a hole from `1.2.9` until `2.0.0`, so the version `1.2.10` would not be greater than the range (because `2.0.1` satisfies, which is higher), nor less than the range (since `1.2.8` satisfies, which is lower), and it also does not satisfy the range. If you want to know if a version satisfies or does not satisfy a range, use the `satisfies(version, range)` function. ### Coercion * `coerce(version, options)`: Coerces a string to semver if possible This aims to provide a very forgiving translation of a non-semver string to semver. It looks for the first digit in a string, and consumes all remaining characters which satisfy at least a partial semver (e.g., `1`, `1.2`, `1.2.3`) up to the max permitted length (256 characters). Longer versions are simply truncated (`4.6.3.9.2-alpha2` becomes `4.6.3`). All surrounding text is simply ignored (`v3.4 replaces v3.3.1` becomes `3.4.0`). Only text which lacks digits will fail coercion (`version one` is not valid). The maximum length for any semver component considered for coercion is 16 characters; longer components will be ignored (`10000000000000000.4.7.4` becomes `4.7.4`). The maximum value for any semver component is `Integer.MAX_SAFE_INTEGER || (2**53 - 1)`; higher value components are invalid (`9999999999999999.4.7.4` is likely invalid). If the `options.rtl` flag is set, then `coerce` will return the right-most coercible tuple that does not share an ending index with a longer coercible tuple. For example, `1.2.3.4` will return `2.3.4` in rtl mode, not `4.0.0`. `1.2.3/4` will return `4.0.0`, because the `4` is not a part of any other overlapping SemVer tuple. ### Clean * `clean(version)`: Clean a string to be a valid semver if possible This will return a cleaned and trimmed semver version. If the provided version is not valid a null will be returned. This does not work for ranges. ex. * `s.clean(' = v 2.1.5foo')`: `null` * `s.clean(' = v 2.1.5foo', { loose: true })`: `'2.1.5-foo'` * `s.clean(' = v 2.1.5-foo')`: `null` * `s.clean(' = v 2.1.5-foo', { loose: true })`: `'2.1.5-foo'` * `s.clean('=v2.1.5')`: `'2.1.5'` * `s.clean(' =v2.1.5')`: `2.1.5` * `s.clean(' 2.1.5 ')`: `'2.1.5'` * `s.clean('~1.0.0')`: `null` preset-env/node_modules/semver/bin/semver.js000066600000011155150432031470015227 0ustar00#!/usr/bin/env node // Standalone semver comparison program. // Exits successfully and prints matching version(s) if // any supplied version is valid and passes all tests. var argv = process.argv.slice(2) var versions = [] var range = [] var inc = null var version = require('../package.json').version var loose = false var includePrerelease = false var coerce = false var rtl = false var identifier var semver = require('../semver') var reverse = false var options = {} main() function main () { if (!argv.length) return help() while (argv.length) { var a = argv.shift() var indexOfEqualSign = a.indexOf('=') if (indexOfEqualSign !== -1) { a = a.slice(0, indexOfEqualSign) argv.unshift(a.slice(indexOfEqualSign + 1)) } switch (a) { case '-rv': case '-rev': case '--rev': case '--reverse': reverse = true break case '-l': case '--loose': loose = true break case '-p': case '--include-prerelease': includePrerelease = true break case '-v': case '--version': versions.push(argv.shift()) break case '-i': case '--inc': case '--increment': switch (argv[0]) { case 'major': case 'minor': case 'patch': case 'prerelease': case 'premajor': case 'preminor': case 'prepatch': inc = argv.shift() break default: inc = 'patch' break } break case '--preid': identifier = argv.shift() break case '-r': case '--range': range.push(argv.shift()) break case '-c': case '--coerce': coerce = true break case '--rtl': rtl = true break case '--ltr': rtl = false break case '-h': case '--help': case '-?': return help() default: versions.push(a) break } } var options = { loose: loose, includePrerelease: includePrerelease, rtl: rtl } versions = versions.map(function (v) { return coerce ? (semver.coerce(v, options) || { version: v }).version : v }).filter(function (v) { return semver.valid(v) }) if (!versions.length) return fail() if (inc && (versions.length !== 1 || range.length)) { return failInc() } for (var i = 0, l = range.length; i < l; i++) { versions = versions.filter(function (v) { return semver.satisfies(v, range[i], options) }) if (!versions.length) return fail() } return success(versions) } function failInc () { console.error('--inc can only be used on a single version with no range') fail() } function fail () { process.exit(1) } function success () { var compare = reverse ? 'rcompare' : 'compare' versions.sort(function (a, b) { return semver[compare](a, b, options) }).map(function (v) { return semver.clean(v, options) }).map(function (v) { return inc ? semver.inc(v, inc, options, identifier) : v }).forEach(function (v, i, _) { console.log(v) }) } function help () { console.log(['SemVer ' + version, '', 'A JavaScript implementation of the https://semver.org/ specification', 'Copyright Isaac Z. Schlueter', '', 'Usage: semver [options] [ [...]]', 'Prints valid versions sorted by SemVer precedence', '', 'Options:', '-r --range ', ' Print versions that match the specified range.', '', '-i --increment []', ' Increment a version by the specified level. Level can', ' be one of: major, minor, patch, premajor, preminor,', " prepatch, or prerelease. Default level is 'patch'.", ' Only one version may be specified.', '', '--preid ', ' Identifier to be used to prefix premajor, preminor,', ' prepatch or prerelease version increments.', '', '-l --loose', ' Interpret versions and ranges loosely', '', '-p --include-prerelease', ' Always include prerelease versions in range matching', '', '-c --coerce', ' Coerce a string into SemVer if possible', ' (does not imply --loose)', '', '--rtl', ' Coerce version strings right to left', '', '--ltr', ' Coerce version strings left to right (default)', '', 'Program exits successfully if any valid version satisfies', 'all supplied ranges, and prints all satisfying versions.', '', 'If no satisfying versions are found, then exits failure.', '', 'Versions are printed in ascending order, so supplying', 'multiple versions to the utility will just sort them.' ].join('\n')) } preset-env/node_modules/semver/range.bnf000066600000001153150432031470014400 0ustar00range-set ::= range ( logical-or range ) * logical-or ::= ( ' ' ) * '||' ( ' ' ) * range ::= hyphen | simple ( ' ' simple ) * | '' hyphen ::= partial ' - ' partial simple ::= primitive | partial | tilde | caret primitive ::= ( '<' | '>' | '>=' | '<=' | '=' ) partial partial ::= xr ( '.' xr ( '.' xr qualifier ? )? )? xr ::= 'x' | 'X' | '*' | nr nr ::= '0' | [1-9] ( [0-9] ) * tilde ::= '~' partial caret ::= '^' partial qualifier ::= ( '-' pre )? ( '+' build )? pre ::= parts build ::= parts parts ::= part ( '.' part ) * part ::= nr | [-0-9A-Za-z]+ preset-env/node_modules/semver/LICENSE000066600000001375150432031470013630 0ustar00The ISC License Copyright (c) Isaac Z. Schlueter and Contributors Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. preset-env/node_modules/semver/semver.js000066600000126377150432031470014474 0ustar00exports = module.exports = SemVer var debug /* istanbul ignore next */ if (typeof process === 'object' && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG)) { debug = function () { var args = Array.prototype.slice.call(arguments, 0) args.unshift('SEMVER') console.log.apply(console, args) } } else { debug = function () {} } // Note: this is the semver.org version of the spec that it implements // Not necessarily the package version of this code. exports.SEMVER_SPEC_VERSION = '2.0.0' var MAX_LENGTH = 256 var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */ 9007199254740991 // Max safe segment length for coercion. var MAX_SAFE_COMPONENT_LENGTH = 16 var MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6 // The actual regexps go on exports.re var re = exports.re = [] var safeRe = exports.safeRe = [] var src = exports.src = [] var t = exports.tokens = {} var R = 0 function tok (n) { t[n] = R++ } var LETTERDASHNUMBER = '[a-zA-Z0-9-]' // Replace some greedy regex tokens to prevent regex dos issues. These regex are // used internally via the safeRe object since all inputs in this library get // normalized first to trim and collapse all extra whitespace. The original // regexes are exported for userland consumption and lower level usage. A // future breaking change could export the safer regex only with a note that // all input should have extra whitespace removed. var safeRegexReplacements = [ ['\\s', 1], ['\\d', MAX_LENGTH], [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH], ] function makeSafeRe (value) { for (var i = 0; i < safeRegexReplacements.length; i++) { var token = safeRegexReplacements[i][0] var max = safeRegexReplacements[i][1] value = value .split(token + '*').join(token + '{0,' + max + '}') .split(token + '+').join(token + '{1,' + max + '}') } return value } // The following Regular Expressions can be used for tokenizing, // validating, and parsing SemVer version strings. // ## Numeric Identifier // A single `0`, or a non-zero digit followed by zero or more digits. tok('NUMERICIDENTIFIER') src[t.NUMERICIDENTIFIER] = '0|[1-9]\\d*' tok('NUMERICIDENTIFIERLOOSE') src[t.NUMERICIDENTIFIERLOOSE] = '\\d+' // ## Non-numeric Identifier // Zero or more digits, followed by a letter or hyphen, and then zero or // more letters, digits, or hyphens. tok('NONNUMERICIDENTIFIER') src[t.NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-]' + LETTERDASHNUMBER + '*' // ## Main Version // Three dot-separated numeric identifiers. tok('MAINVERSION') src[t.MAINVERSION] = '(' + src[t.NUMERICIDENTIFIER] + ')\\.' + '(' + src[t.NUMERICIDENTIFIER] + ')\\.' + '(' + src[t.NUMERICIDENTIFIER] + ')' tok('MAINVERSIONLOOSE') src[t.MAINVERSIONLOOSE] = '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\.' + '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\.' + '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')' // ## Pre-release Version Identifier // A numeric identifier, or a non-numeric identifier. tok('PRERELEASEIDENTIFIER') src[t.PRERELEASEIDENTIFIER] = '(?:' + src[t.NUMERICIDENTIFIER] + '|' + src[t.NONNUMERICIDENTIFIER] + ')' tok('PRERELEASEIDENTIFIERLOOSE') src[t.PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[t.NUMERICIDENTIFIERLOOSE] + '|' + src[t.NONNUMERICIDENTIFIER] + ')' // ## Pre-release Version // Hyphen, followed by one or more dot-separated pre-release version // identifiers. tok('PRERELEASE') src[t.PRERELEASE] = '(?:-(' + src[t.PRERELEASEIDENTIFIER] + '(?:\\.' + src[t.PRERELEASEIDENTIFIER] + ')*))' tok('PRERELEASELOOSE') src[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] + '(?:\\.' + src[t.PRERELEASEIDENTIFIERLOOSE] + ')*))' // ## Build Metadata Identifier // Any combination of digits, letters, or hyphens. tok('BUILDIDENTIFIER') src[t.BUILDIDENTIFIER] = LETTERDASHNUMBER + '+' // ## Build Metadata // Plus sign, followed by one or more period-separated build metadata // identifiers. tok('BUILD') src[t.BUILD] = '(?:\\+(' + src[t.BUILDIDENTIFIER] + '(?:\\.' + src[t.BUILDIDENTIFIER] + ')*))' // ## Full Version String // A main version, followed optionally by a pre-release version and // build metadata. // Note that the only major, minor, patch, and pre-release sections of // the version string are capturing groups. The build metadata is not a // capturing group, because it should not ever be used in version // comparison. tok('FULL') tok('FULLPLAIN') src[t.FULLPLAIN] = 'v?' + src[t.MAINVERSION] + src[t.PRERELEASE] + '?' + src[t.BUILD] + '?' src[t.FULL] = '^' + src[t.FULLPLAIN] + '$' // like full, but allows v1.2.3 and =1.2.3, which people do sometimes. // also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty // common in the npm registry. tok('LOOSEPLAIN') src[t.LOOSEPLAIN] = '[v=\\s]*' + src[t.MAINVERSIONLOOSE] + src[t.PRERELEASELOOSE] + '?' + src[t.BUILD] + '?' tok('LOOSE') src[t.LOOSE] = '^' + src[t.LOOSEPLAIN] + '$' tok('GTLT') src[t.GTLT] = '((?:<|>)?=?)' // Something like "2.*" or "1.2.x". // Note that "x.x" is a valid xRange identifer, meaning "any version" // Only the first item is strictly required. tok('XRANGEIDENTIFIERLOOSE') src[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + '|x|X|\\*' tok('XRANGEIDENTIFIER') src[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + '|x|X|\\*' tok('XRANGEPLAIN') src[t.XRANGEPLAIN] = '[v=\\s]*(' + src[t.XRANGEIDENTIFIER] + ')' + '(?:\\.(' + src[t.XRANGEIDENTIFIER] + ')' + '(?:\\.(' + src[t.XRANGEIDENTIFIER] + ')' + '(?:' + src[t.PRERELEASE] + ')?' + src[t.BUILD] + '?' + ')?)?' tok('XRANGEPLAINLOOSE') src[t.XRANGEPLAINLOOSE] = '[v=\\s]*(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' + '(?:\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' + '(?:\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' + '(?:' + src[t.PRERELEASELOOSE] + ')?' + src[t.BUILD] + '?' + ')?)?' tok('XRANGE') src[t.XRANGE] = '^' + src[t.GTLT] + '\\s*' + src[t.XRANGEPLAIN] + '$' tok('XRANGELOOSE') src[t.XRANGELOOSE] = '^' + src[t.GTLT] + '\\s*' + src[t.XRANGEPLAINLOOSE] + '$' // Coercion. // Extract anything that could conceivably be a part of a valid semver tok('COERCE') src[t.COERCE] = '(^|[^\\d])' + '(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' + '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' + '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' + '(?:$|[^\\d])' tok('COERCERTL') re[t.COERCERTL] = new RegExp(src[t.COERCE], 'g') safeRe[t.COERCERTL] = new RegExp(makeSafeRe(src[t.COERCE]), 'g') // Tilde ranges. // Meaning is "reasonably at or greater than" tok('LONETILDE') src[t.LONETILDE] = '(?:~>?)' tok('TILDETRIM') src[t.TILDETRIM] = '(\\s*)' + src[t.LONETILDE] + '\\s+' re[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g') safeRe[t.TILDETRIM] = new RegExp(makeSafeRe(src[t.TILDETRIM]), 'g') var tildeTrimReplace = '$1~' tok('TILDE') src[t.TILDE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAIN] + '$' tok('TILDELOOSE') src[t.TILDELOOSE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + '$' // Caret ranges. // Meaning is "at least and backwards compatible with" tok('LONECARET') src[t.LONECARET] = '(?:\\^)' tok('CARETTRIM') src[t.CARETTRIM] = '(\\s*)' + src[t.LONECARET] + '\\s+' re[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g') safeRe[t.CARETTRIM] = new RegExp(makeSafeRe(src[t.CARETTRIM]), 'g') var caretTrimReplace = '$1^' tok('CARET') src[t.CARET] = '^' + src[t.LONECARET] + src[t.XRANGEPLAIN] + '$' tok('CARETLOOSE') src[t.CARETLOOSE] = '^' + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + '$' // A simple gt/lt/eq thing, or just "" to indicate "any version" tok('COMPARATORLOOSE') src[t.COMPARATORLOOSE] = '^' + src[t.GTLT] + '\\s*(' + src[t.LOOSEPLAIN] + ')$|^$' tok('COMPARATOR') src[t.COMPARATOR] = '^' + src[t.GTLT] + '\\s*(' + src[t.FULLPLAIN] + ')$|^$' // An expression to strip any whitespace between the gtlt and the thing // it modifies, so that `> 1.2.3` ==> `>1.2.3` tok('COMPARATORTRIM') src[t.COMPARATORTRIM] = '(\\s*)' + src[t.GTLT] + '\\s*(' + src[t.LOOSEPLAIN] + '|' + src[t.XRANGEPLAIN] + ')' // this one has to use the /g flag re[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g') safeRe[t.COMPARATORTRIM] = new RegExp(makeSafeRe(src[t.COMPARATORTRIM]), 'g') var comparatorTrimReplace = '$1$2$3' // Something like `1.2.3 - 1.2.4` // Note that these all use the loose form, because they'll be // checked against either the strict or loose comparator form // later. tok('HYPHENRANGE') src[t.HYPHENRANGE] = '^\\s*(' + src[t.XRANGEPLAIN] + ')' + '\\s+-\\s+' + '(' + src[t.XRANGEPLAIN] + ')' + '\\s*$' tok('HYPHENRANGELOOSE') src[t.HYPHENRANGELOOSE] = '^\\s*(' + src[t.XRANGEPLAINLOOSE] + ')' + '\\s+-\\s+' + '(' + src[t.XRANGEPLAINLOOSE] + ')' + '\\s*$' // Star ranges basically just allow anything at all. tok('STAR') src[t.STAR] = '(<|>)?=?\\s*\\*' // Compile to actual regexp objects. // All are flag-free, unless they were created above with a flag. for (var i = 0; i < R; i++) { debug(i, src[i]) if (!re[i]) { re[i] = new RegExp(src[i]) // Replace all greedy whitespace to prevent regex dos issues. These regex are // used internally via the safeRe object since all inputs in this library get // normalized first to trim and collapse all extra whitespace. The original // regexes are exported for userland consumption and lower level usage. A // future breaking change could export the safer regex only with a note that // all input should have extra whitespace removed. safeRe[i] = new RegExp(makeSafeRe(src[i])) } } exports.parse = parse function parse (version, options) { if (!options || typeof options !== 'object') { options = { loose: !!options, includePrerelease: false } } if (version instanceof SemVer) { return version } if (typeof version !== 'string') { return null } if (version.length > MAX_LENGTH) { return null } var r = options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL] if (!r.test(version)) { return null } try { return new SemVer(version, options) } catch (er) { return null } } exports.valid = valid function valid (version, options) { var v = parse(version, options) return v ? v.version : null } exports.clean = clean function clean (version, options) { var s = parse(version.trim().replace(/^[=v]+/, ''), options) return s ? s.version : null } exports.SemVer = SemVer function SemVer (version, options) { if (!options || typeof options !== 'object') { options = { loose: !!options, includePrerelease: false } } if (version instanceof SemVer) { if (version.loose === options.loose) { return version } else { version = version.version } } else if (typeof version !== 'string') { throw new TypeError('Invalid Version: ' + version) } if (version.length > MAX_LENGTH) { throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters') } if (!(this instanceof SemVer)) { return new SemVer(version, options) } debug('SemVer', version, options) this.options = options this.loose = !!options.loose var m = version.trim().match(options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]) if (!m) { throw new TypeError('Invalid Version: ' + version) } this.raw = version // these are actually numbers this.major = +m[1] this.minor = +m[2] this.patch = +m[3] if (this.major > MAX_SAFE_INTEGER || this.major < 0) { throw new TypeError('Invalid major version') } if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { throw new TypeError('Invalid minor version') } if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { throw new TypeError('Invalid patch version') } // numberify any prerelease numeric ids if (!m[4]) { this.prerelease = [] } else { this.prerelease = m[4].split('.').map(function (id) { if (/^[0-9]+$/.test(id)) { var num = +id if (num >= 0 && num < MAX_SAFE_INTEGER) { return num } } return id }) } this.build = m[5] ? m[5].split('.') : [] this.format() } SemVer.prototype.format = function () { this.version = this.major + '.' + this.minor + '.' + this.patch if (this.prerelease.length) { this.version += '-' + this.prerelease.join('.') } return this.version } SemVer.prototype.toString = function () { return this.version } SemVer.prototype.compare = function (other) { debug('SemVer.compare', this.version, this.options, other) if (!(other instanceof SemVer)) { other = new SemVer(other, this.options) } return this.compareMain(other) || this.comparePre(other) } SemVer.prototype.compareMain = function (other) { if (!(other instanceof SemVer)) { other = new SemVer(other, this.options) } return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch) } SemVer.prototype.comparePre = function (other) { if (!(other instanceof SemVer)) { other = new SemVer(other, this.options) } // NOT having a prerelease is > having one if (this.prerelease.length && !other.prerelease.length) { return -1 } else if (!this.prerelease.length && other.prerelease.length) { return 1 } else if (!this.prerelease.length && !other.prerelease.length) { return 0 } var i = 0 do { var a = this.prerelease[i] var b = other.prerelease[i] debug('prerelease compare', i, a, b) if (a === undefined && b === undefined) { return 0 } else if (b === undefined) { return 1 } else if (a === undefined) { return -1 } else if (a === b) { continue } else { return compareIdentifiers(a, b) } } while (++i) } SemVer.prototype.compareBuild = function (other) { if (!(other instanceof SemVer)) { other = new SemVer(other, this.options) } var i = 0 do { var a = this.build[i] var b = other.build[i] debug('prerelease compare', i, a, b) if (a === undefined && b === undefined) { return 0 } else if (b === undefined) { return 1 } else if (a === undefined) { return -1 } else if (a === b) { continue } else { return compareIdentifiers(a, b) } } while (++i) } // preminor will bump the version up to the next minor release, and immediately // down to pre-release. premajor and prepatch work the same way. SemVer.prototype.inc = function (release, identifier) { switch (release) { case 'premajor': this.prerelease.length = 0 this.patch = 0 this.minor = 0 this.major++ this.inc('pre', identifier) break case 'preminor': this.prerelease.length = 0 this.patch = 0 this.minor++ this.inc('pre', identifier) break case 'prepatch': // If this is already a prerelease, it will bump to the next version // drop any prereleases that might already exist, since they are not // relevant at this point. this.prerelease.length = 0 this.inc('patch', identifier) this.inc('pre', identifier) break // If the input is a non-prerelease version, this acts the same as // prepatch. case 'prerelease': if (this.prerelease.length === 0) { this.inc('patch', identifier) } this.inc('pre', identifier) break case 'major': // If this is a pre-major version, bump up to the same major version. // Otherwise increment major. // 1.0.0-5 bumps to 1.0.0 // 1.1.0 bumps to 2.0.0 if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) { this.major++ } this.minor = 0 this.patch = 0 this.prerelease = [] break case 'minor': // If this is a pre-minor version, bump up to the same minor version. // Otherwise increment minor. // 1.2.0-5 bumps to 1.2.0 // 1.2.1 bumps to 1.3.0 if (this.patch !== 0 || this.prerelease.length === 0) { this.minor++ } this.patch = 0 this.prerelease = [] break case 'patch': // If this is not a pre-release version, it will increment the patch. // If it is a pre-release it will bump up to the same patch version. // 1.2.0-5 patches to 1.2.0 // 1.2.0 patches to 1.2.1 if (this.prerelease.length === 0) { this.patch++ } this.prerelease = [] break // This probably shouldn't be used publicly. // 1.0.0 "pre" would become 1.0.0-0 which is the wrong direction. case 'pre': if (this.prerelease.length === 0) { this.prerelease = [0] } else { var i = this.prerelease.length while (--i >= 0) { if (typeof this.prerelease[i] === 'number') { this.prerelease[i]++ i = -2 } } if (i === -1) { // didn't increment anything this.prerelease.push(0) } } if (identifier) { // 1.2.0-beta.1 bumps to 1.2.0-beta.2, // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 if (this.prerelease[0] === identifier) { if (isNaN(this.prerelease[1])) { this.prerelease = [identifier, 0] } } else { this.prerelease = [identifier, 0] } } break default: throw new Error('invalid increment argument: ' + release) } this.format() this.raw = this.version return this } exports.inc = inc function inc (version, release, loose, identifier) { if (typeof (loose) === 'string') { identifier = loose loose = undefined } try { return new SemVer(version, loose).inc(release, identifier).version } catch (er) { return null } } exports.diff = diff function diff (version1, version2) { if (eq(version1, version2)) { return null } else { var v1 = parse(version1) var v2 = parse(version2) var prefix = '' if (v1.prerelease.length || v2.prerelease.length) { prefix = 'pre' var defaultResult = 'prerelease' } for (var key in v1) { if (key === 'major' || key === 'minor' || key === 'patch') { if (v1[key] !== v2[key]) { return prefix + key } } } return defaultResult // may be undefined } } exports.compareIdentifiers = compareIdentifiers var numeric = /^[0-9]+$/ function compareIdentifiers (a, b) { var anum = numeric.test(a) var bnum = numeric.test(b) if (anum && bnum) { a = +a b = +b } return a === b ? 0 : (anum && !bnum) ? -1 : (bnum && !anum) ? 1 : a < b ? -1 : 1 } exports.rcompareIdentifiers = rcompareIdentifiers function rcompareIdentifiers (a, b) { return compareIdentifiers(b, a) } exports.major = major function major (a, loose) { return new SemVer(a, loose).major } exports.minor = minor function minor (a, loose) { return new SemVer(a, loose).minor } exports.patch = patch function patch (a, loose) { return new SemVer(a, loose).patch } exports.compare = compare function compare (a, b, loose) { return new SemVer(a, loose).compare(new SemVer(b, loose)) } exports.compareLoose = compareLoose function compareLoose (a, b) { return compare(a, b, true) } exports.compareBuild = compareBuild function compareBuild (a, b, loose) { var versionA = new SemVer(a, loose) var versionB = new SemVer(b, loose) return versionA.compare(versionB) || versionA.compareBuild(versionB) } exports.rcompare = rcompare function rcompare (a, b, loose) { return compare(b, a, loose) } exports.sort = sort function sort (list, loose) { return list.sort(function (a, b) { return exports.compareBuild(a, b, loose) }) } exports.rsort = rsort function rsort (list, loose) { return list.sort(function (a, b) { return exports.compareBuild(b, a, loose) }) } exports.gt = gt function gt (a, b, loose) { return compare(a, b, loose) > 0 } exports.lt = lt function lt (a, b, loose) { return compare(a, b, loose) < 0 } exports.eq = eq function eq (a, b, loose) { return compare(a, b, loose) === 0 } exports.neq = neq function neq (a, b, loose) { return compare(a, b, loose) !== 0 } exports.gte = gte function gte (a, b, loose) { return compare(a, b, loose) >= 0 } exports.lte = lte function lte (a, b, loose) { return compare(a, b, loose) <= 0 } exports.cmp = cmp function cmp (a, op, b, loose) { switch (op) { case '===': if (typeof a === 'object') a = a.version if (typeof b === 'object') b = b.version return a === b case '!==': if (typeof a === 'object') a = a.version if (typeof b === 'object') b = b.version return a !== b case '': case '=': case '==': return eq(a, b, loose) case '!=': return neq(a, b, loose) case '>': return gt(a, b, loose) case '>=': return gte(a, b, loose) case '<': return lt(a, b, loose) case '<=': return lte(a, b, loose) default: throw new TypeError('Invalid operator: ' + op) } } exports.Comparator = Comparator function Comparator (comp, options) { if (!options || typeof options !== 'object') { options = { loose: !!options, includePrerelease: false } } if (comp instanceof Comparator) { if (comp.loose === !!options.loose) { return comp } else { comp = comp.value } } if (!(this instanceof Comparator)) { return new Comparator(comp, options) } comp = comp.trim().split(/\s+/).join(' ') debug('comparator', comp, options) this.options = options this.loose = !!options.loose this.parse(comp) if (this.semver === ANY) { this.value = '' } else { this.value = this.operator + this.semver.version } debug('comp', this) } var ANY = {} Comparator.prototype.parse = function (comp) { var r = this.options.loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR] var m = comp.match(r) if (!m) { throw new TypeError('Invalid comparator: ' + comp) } this.operator = m[1] !== undefined ? m[1] : '' if (this.operator === '=') { this.operator = '' } // if it literally is just '>' or '' then allow anything. if (!m[2]) { this.semver = ANY } else { this.semver = new SemVer(m[2], this.options.loose) } } Comparator.prototype.toString = function () { return this.value } Comparator.prototype.test = function (version) { debug('Comparator.test', version, this.options.loose) if (this.semver === ANY || version === ANY) { return true } if (typeof version === 'string') { try { version = new SemVer(version, this.options) } catch (er) { return false } } return cmp(version, this.operator, this.semver, this.options) } Comparator.prototype.intersects = function (comp, options) { if (!(comp instanceof Comparator)) { throw new TypeError('a Comparator is required') } if (!options || typeof options !== 'object') { options = { loose: !!options, includePrerelease: false } } var rangeTmp if (this.operator === '') { if (this.value === '') { return true } rangeTmp = new Range(comp.value, options) return satisfies(this.value, rangeTmp, options) } else if (comp.operator === '') { if (comp.value === '') { return true } rangeTmp = new Range(this.value, options) return satisfies(comp.semver, rangeTmp, options) } var sameDirectionIncreasing = (this.operator === '>=' || this.operator === '>') && (comp.operator === '>=' || comp.operator === '>') var sameDirectionDecreasing = (this.operator === '<=' || this.operator === '<') && (comp.operator === '<=' || comp.operator === '<') var sameSemVer = this.semver.version === comp.semver.version var differentDirectionsInclusive = (this.operator === '>=' || this.operator === '<=') && (comp.operator === '>=' || comp.operator === '<=') var oppositeDirectionsLessThan = cmp(this.semver, '<', comp.semver, options) && ((this.operator === '>=' || this.operator === '>') && (comp.operator === '<=' || comp.operator === '<')) var oppositeDirectionsGreaterThan = cmp(this.semver, '>', comp.semver, options) && ((this.operator === '<=' || this.operator === '<') && (comp.operator === '>=' || comp.operator === '>')) return sameDirectionIncreasing || sameDirectionDecreasing || (sameSemVer && differentDirectionsInclusive) || oppositeDirectionsLessThan || oppositeDirectionsGreaterThan } exports.Range = Range function Range (range, options) { if (!options || typeof options !== 'object') { options = { loose: !!options, includePrerelease: false } } if (range instanceof Range) { if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) { return range } else { return new Range(range.raw, options) } } if (range instanceof Comparator) { return new Range(range.value, options) } if (!(this instanceof Range)) { return new Range(range, options) } this.options = options this.loose = !!options.loose this.includePrerelease = !!options.includePrerelease // First reduce all whitespace as much as possible so we do not have to rely // on potentially slow regexes like \s*. This is then stored and used for // future error messages as well. this.raw = range .trim() .split(/\s+/) .join(' ') // First, split based on boolean or || this.set = this.raw.split('||').map(function (range) { return this.parseRange(range.trim()) }, this).filter(function (c) { // throw out any that are not relevant for whatever reason return c.length }) if (!this.set.length) { throw new TypeError('Invalid SemVer Range: ' + this.raw) } this.format() } Range.prototype.format = function () { this.range = this.set.map(function (comps) { return comps.join(' ').trim() }).join('||').trim() return this.range } Range.prototype.toString = function () { return this.range } Range.prototype.parseRange = function (range) { var loose = this.options.loose // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4` var hr = loose ? safeRe[t.HYPHENRANGELOOSE] : safeRe[t.HYPHENRANGE] range = range.replace(hr, hyphenReplace) debug('hyphen replace', range) // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5` range = range.replace(safeRe[t.COMPARATORTRIM], comparatorTrimReplace) debug('comparator trim', range, safeRe[t.COMPARATORTRIM]) // `~ 1.2.3` => `~1.2.3` range = range.replace(safeRe[t.TILDETRIM], tildeTrimReplace) // `^ 1.2.3` => `^1.2.3` range = range.replace(safeRe[t.CARETTRIM], caretTrimReplace) // normalize spaces range = range.split(/\s+/).join(' ') // At this point, the range is completely trimmed and // ready to be split into comparators. var compRe = loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR] var set = range.split(' ').map(function (comp) { return parseComparator(comp, this.options) }, this).join(' ').split(/\s+/) if (this.options.loose) { // in loose mode, throw out any that are not valid comparators set = set.filter(function (comp) { return !!comp.match(compRe) }) } set = set.map(function (comp) { return new Comparator(comp, this.options) }, this) return set } Range.prototype.intersects = function (range, options) { if (!(range instanceof Range)) { throw new TypeError('a Range is required') } return this.set.some(function (thisComparators) { return ( isSatisfiable(thisComparators, options) && range.set.some(function (rangeComparators) { return ( isSatisfiable(rangeComparators, options) && thisComparators.every(function (thisComparator) { return rangeComparators.every(function (rangeComparator) { return thisComparator.intersects(rangeComparator, options) }) }) ) }) ) }) } // take a set of comparators and determine whether there // exists a version which can satisfy it function isSatisfiable (comparators, options) { var result = true var remainingComparators = comparators.slice() var testComparator = remainingComparators.pop() while (result && remainingComparators.length) { result = remainingComparators.every(function (otherComparator) { return testComparator.intersects(otherComparator, options) }) testComparator = remainingComparators.pop() } return result } // Mostly just for testing and legacy API reasons exports.toComparators = toComparators function toComparators (range, options) { return new Range(range, options).set.map(function (comp) { return comp.map(function (c) { return c.value }).join(' ').trim().split(' ') }) } // comprised of xranges, tildes, stars, and gtlt's at this point. // already replaced the hyphen ranges // turn into a set of JUST comparators. function parseComparator (comp, options) { debug('comp', comp, options) comp = replaceCarets(comp, options) debug('caret', comp) comp = replaceTildes(comp, options) debug('tildes', comp) comp = replaceXRanges(comp, options) debug('xrange', comp) comp = replaceStars(comp, options) debug('stars', comp) return comp } function isX (id) { return !id || id.toLowerCase() === 'x' || id === '*' } // ~, ~> --> * (any, kinda silly) // ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0 // ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0 // ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0 // ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0 // ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0 function replaceTildes (comp, options) { return comp.trim().split(/\s+/).map(function (comp) { return replaceTilde(comp, options) }).join(' ') } function replaceTilde (comp, options) { var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE] return comp.replace(r, function (_, M, m, p, pr) { debug('tilde', comp, _, M, m, p, pr) var ret if (isX(M)) { ret = '' } else if (isX(m)) { ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0' } else if (isX(p)) { // ~1.2 == >=1.2.0 <1.3.0 ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0' } else if (pr) { debug('replaceTilde pr', pr) ret = '>=' + M + '.' + m + '.' + p + '-' + pr + ' <' + M + '.' + (+m + 1) + '.0' } else { // ~1.2.3 == >=1.2.3 <1.3.0 ret = '>=' + M + '.' + m + '.' + p + ' <' + M + '.' + (+m + 1) + '.0' } debug('tilde return', ret) return ret }) } // ^ --> * (any, kinda silly) // ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0 // ^2.0, ^2.0.x --> >=2.0.0 <3.0.0 // ^1.2, ^1.2.x --> >=1.2.0 <2.0.0 // ^1.2.3 --> >=1.2.3 <2.0.0 // ^1.2.0 --> >=1.2.0 <2.0.0 function replaceCarets (comp, options) { return comp.trim().split(/\s+/).map(function (comp) { return replaceCaret(comp, options) }).join(' ') } function replaceCaret (comp, options) { debug('caret', comp, options) var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET] return comp.replace(r, function (_, M, m, p, pr) { debug('caret', comp, _, M, m, p, pr) var ret if (isX(M)) { ret = '' } else if (isX(m)) { ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0' } else if (isX(p)) { if (M === '0') { ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0' } else { ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0' } } else if (pr) { debug('replaceCaret pr', pr) if (M === '0') { if (m === '0') { ret = '>=' + M + '.' + m + '.' + p + '-' + pr + ' <' + M + '.' + m + '.' + (+p + 1) } else { ret = '>=' + M + '.' + m + '.' + p + '-' + pr + ' <' + M + '.' + (+m + 1) + '.0' } } else { ret = '>=' + M + '.' + m + '.' + p + '-' + pr + ' <' + (+M + 1) + '.0.0' } } else { debug('no pr') if (M === '0') { if (m === '0') { ret = '>=' + M + '.' + m + '.' + p + ' <' + M + '.' + m + '.' + (+p + 1) } else { ret = '>=' + M + '.' + m + '.' + p + ' <' + M + '.' + (+m + 1) + '.0' } } else { ret = '>=' + M + '.' + m + '.' + p + ' <' + (+M + 1) + '.0.0' } } debug('caret return', ret) return ret }) } function replaceXRanges (comp, options) { debug('replaceXRanges', comp, options) return comp.split(/\s+/).map(function (comp) { return replaceXRange(comp, options) }).join(' ') } function replaceXRange (comp, options) { comp = comp.trim() var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE] return comp.replace(r, function (ret, gtlt, M, m, p, pr) { debug('xRange', comp, ret, gtlt, M, m, p, pr) var xM = isX(M) var xm = xM || isX(m) var xp = xm || isX(p) var anyX = xp if (gtlt === '=' && anyX) { gtlt = '' } // if we're including prereleases in the match, then we need // to fix this to -0, the lowest possible prerelease value pr = options.includePrerelease ? '-0' : '' if (xM) { if (gtlt === '>' || gtlt === '<') { // nothing is allowed ret = '<0.0.0-0' } else { // nothing is forbidden ret = '*' } } else if (gtlt && anyX) { // we know patch is an x, because we have any x at all. // replace X with 0 if (xm) { m = 0 } p = 0 if (gtlt === '>') { // >1 => >=2.0.0 // >1.2 => >=1.3.0 // >1.2.3 => >= 1.2.4 gtlt = '>=' if (xm) { M = +M + 1 m = 0 p = 0 } else { m = +m + 1 p = 0 } } else if (gtlt === '<=') { // <=0.7.x is actually <0.8.0, since any 0.7.x should // pass. Similarly, <=7.x is actually <8.0.0, etc. gtlt = '<' if (xm) { M = +M + 1 } else { m = +m + 1 } } ret = gtlt + M + '.' + m + '.' + p + pr } else if (xm) { ret = '>=' + M + '.0.0' + pr + ' <' + (+M + 1) + '.0.0' + pr } else if (xp) { ret = '>=' + M + '.' + m + '.0' + pr + ' <' + M + '.' + (+m + 1) + '.0' + pr } debug('xRange return', ret) return ret }) } // Because * is AND-ed with everything else in the comparator, // and '' means "any version", just remove the *s entirely. function replaceStars (comp, options) { debug('replaceStars', comp, options) // Looseness is ignored here. star is always as loose as it gets! return comp.trim().replace(safeRe[t.STAR], '') } // This function is passed to string.replace(re[t.HYPHENRANGE]) // M, m, patch, prerelease, build // 1.2 - 3.4.5 => >=1.2.0 <=3.4.5 // 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do // 1.2 - 3.4 => >=1.2.0 <3.5.0 function hyphenReplace ($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb) { if (isX(fM)) { from = '' } else if (isX(fm)) { from = '>=' + fM + '.0.0' } else if (isX(fp)) { from = '>=' + fM + '.' + fm + '.0' } else { from = '>=' + from } if (isX(tM)) { to = '' } else if (isX(tm)) { to = '<' + (+tM + 1) + '.0.0' } else if (isX(tp)) { to = '<' + tM + '.' + (+tm + 1) + '.0' } else if (tpr) { to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr } else { to = '<=' + to } return (from + ' ' + to).trim() } // if ANY of the sets match ALL of its comparators, then pass Range.prototype.test = function (version) { if (!version) { return false } if (typeof version === 'string') { try { version = new SemVer(version, this.options) } catch (er) { return false } } for (var i = 0; i < this.set.length; i++) { if (testSet(this.set[i], version, this.options)) { return true } } return false } function testSet (set, version, options) { for (var i = 0; i < set.length; i++) { if (!set[i].test(version)) { return false } } if (version.prerelease.length && !options.includePrerelease) { // Find the set of versions that are allowed to have prereleases // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0 // That should allow `1.2.3-pr.2` to pass. // However, `1.2.4-alpha.notready` should NOT be allowed, // even though it's within the range set by the comparators. for (i = 0; i < set.length; i++) { debug(set[i].semver) if (set[i].semver === ANY) { continue } if (set[i].semver.prerelease.length > 0) { var allowed = set[i].semver if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) { return true } } } // Version has a -pre, but it's not one of the ones we like. return false } return true } exports.satisfies = satisfies function satisfies (version, range, options) { try { range = new Range(range, options) } catch (er) { return false } return range.test(version) } exports.maxSatisfying = maxSatisfying function maxSatisfying (versions, range, options) { var max = null var maxSV = null try { var rangeObj = new Range(range, options) } catch (er) { return null } versions.forEach(function (v) { if (rangeObj.test(v)) { // satisfies(v, range, options) if (!max || maxSV.compare(v) === -1) { // compare(max, v, true) max = v maxSV = new SemVer(max, options) } } }) return max } exports.minSatisfying = minSatisfying function minSatisfying (versions, range, options) { var min = null var minSV = null try { var rangeObj = new Range(range, options) } catch (er) { return null } versions.forEach(function (v) { if (rangeObj.test(v)) { // satisfies(v, range, options) if (!min || minSV.compare(v) === 1) { // compare(min, v, true) min = v minSV = new SemVer(min, options) } } }) return min } exports.minVersion = minVersion function minVersion (range, loose) { range = new Range(range, loose) var minver = new SemVer('0.0.0') if (range.test(minver)) { return minver } minver = new SemVer('0.0.0-0') if (range.test(minver)) { return minver } minver = null for (var i = 0; i < range.set.length; ++i) { var comparators = range.set[i] comparators.forEach(function (comparator) { // Clone to avoid manipulating the comparator's semver object. var compver = new SemVer(comparator.semver.version) switch (comparator.operator) { case '>': if (compver.prerelease.length === 0) { compver.patch++ } else { compver.prerelease.push(0) } compver.raw = compver.format() /* fallthrough */ case '': case '>=': if (!minver || gt(minver, compver)) { minver = compver } break case '<': case '<=': /* Ignore maximum versions */ break /* istanbul ignore next */ default: throw new Error('Unexpected operation: ' + comparator.operator) } }) } if (minver && range.test(minver)) { return minver } return null } exports.validRange = validRange function validRange (range, options) { try { // Return '*' instead of '' so that truthiness works. // This will throw if it's invalid anyway return new Range(range, options).range || '*' } catch (er) { return null } } // Determine if version is less than all the versions possible in the range exports.ltr = ltr function ltr (version, range, options) { return outside(version, range, '<', options) } // Determine if version is greater than all the versions possible in the range. exports.gtr = gtr function gtr (version, range, options) { return outside(version, range, '>', options) } exports.outside = outside function outside (version, range, hilo, options) { version = new SemVer(version, options) range = new Range(range, options) var gtfn, ltefn, ltfn, comp, ecomp switch (hilo) { case '>': gtfn = gt ltefn = lte ltfn = lt comp = '>' ecomp = '>=' break case '<': gtfn = lt ltefn = gte ltfn = gt comp = '<' ecomp = '<=' break default: throw new TypeError('Must provide a hilo val of "<" or ">"') } // If it satisifes the range it is not outside if (satisfies(version, range, options)) { return false } // From now on, variable terms are as if we're in "gtr" mode. // but note that everything is flipped for the "ltr" function. for (var i = 0; i < range.set.length; ++i) { var comparators = range.set[i] var high = null var low = null comparators.forEach(function (comparator) { if (comparator.semver === ANY) { comparator = new Comparator('>=0.0.0') } high = high || comparator low = low || comparator if (gtfn(comparator.semver, high.semver, options)) { high = comparator } else if (ltfn(comparator.semver, low.semver, options)) { low = comparator } }) // If the edge version comparator has a operator then our version // isn't outside it if (high.operator === comp || high.operator === ecomp) { return false } // If the lowest version comparator has an operator and our version // is less than it then it isn't higher than the range if ((!low.operator || low.operator === comp) && ltefn(version, low.semver)) { return false } else if (low.operator === ecomp && ltfn(version, low.semver)) { return false } } return true } exports.prerelease = prerelease function prerelease (version, options) { var parsed = parse(version, options) return (parsed && parsed.prerelease.length) ? parsed.prerelease : null } exports.intersects = intersects function intersects (r1, r2, options) { r1 = new Range(r1, options) r2 = new Range(r2, options) return r1.intersects(r2) } exports.coerce = coerce function coerce (version, options) { if (version instanceof SemVer) { return version } if (typeof version === 'number') { version = String(version) } if (typeof version !== 'string') { return null } options = options || {} var match = null if (!options.rtl) { match = version.match(safeRe[t.COERCE]) } else { // Find the right-most coercible string that does not share // a terminus with a more left-ward coercible string. // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4' // // Walk through the string checking with a /g regexp // Manually set the index so as to pick up overlapping matches. // Stop when we get a match that ends at the string end, since no // coercible string can be more right-ward without the same terminus. var next while ((next = safeRe[t.COERCERTL].exec(version)) && (!match || match.index + match[0].length !== version.length) ) { if (!match || next.index + next[0].length !== match.index + match[0].length) { match = next } safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length } // leave it in a clean state safeRe[t.COERCERTL].lastIndex = -1 } if (match === null) { return null } return parse(match[2] + '.' + (match[3] || '0') + '.' + (match[4] || '0'), options) } preset-env/node_modules/semver/package.json000066600000001725150432031470015110 0ustar00{ "name": "semver", "version": "6.3.1", "description": "The semantic version parser used by npm.", "main": "semver.js", "scripts": { "test": "tap test/ --100 --timeout=30", "lint": "echo linting disabled", "postlint": "template-oss-check", "template-oss-apply": "template-oss-apply --force", "lintfix": "npm run lint -- --fix", "snap": "tap test/ --100 --timeout=30", "posttest": "npm run lint" }, "devDependencies": { "@npmcli/template-oss": "4.17.0", "tap": "^12.7.0" }, "license": "ISC", "repository": { "type": "git", "url": "https://github.com/npm/node-semver.git" }, "bin": { "semver": "./bin/semver.js" }, "files": [ "bin", "range.bnf", "semver.js" ], "author": "GitHub Inc.", "templateOSS": { "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.", "content": "./scripts/template-oss", "version": "4.17.0" } } preset-env/node_modules/.bin/semver000066600000000464150432031470013372 0ustar00#!/bin/sh basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") case `uname` in *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; esac if [ -x "$basedir/node" ]; then exec "$basedir/node" "$basedir/../semver/bin/semver.js" "$@" else exec node "$basedir/../semver/bin/semver.js" "$@" fi preset-env/node_modules/.bin/semver.cmd000077700000000505150432031470014133 0ustar00@ECHO off GOTO start :find_dp0 SET dp0=%~dp0 EXIT /b :start SETLOCAL CALL :find_dp0 IF EXIST "%dp0%\node.exe" ( SET "_prog=%dp0%\node.exe" ) ELSE ( SET "_prog=node" SET PATHEXT=%PATHEXT:;.JS;=;% ) endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\semver\bin\semver.js" %* preset-env/node_modules/.bin/semver.ps1000066600000001445150432031470014074 0ustar00#!/usr/bin/env pwsh $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent $exe="" if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { # Fix case when both the Windows and Linux builds of Node # are installed in the same directory $exe=".exe" } $ret=0 if (Test-Path "$basedir/node$exe") { # Support pipeline input if ($MyInvocation.ExpectingInput) { $input | & "$basedir/node$exe" "$basedir/../semver/bin/semver.js" $args } else { & "$basedir/node$exe" "$basedir/../semver/bin/semver.js" $args } $ret=$LASTEXITCODE } else { # Support pipeline input if ($MyInvocation.ExpectingInput) { $input | & "node$exe" "$basedir/../semver/bin/semver.js" $args } else { & "node$exe" "$basedir/../semver/bin/semver.js" $args } $ret=$LASTEXITCODE } exit $ret preset-env/lib/normalize-options.js000066600000017032150432031470013437 0ustar00"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.checkDuplicateIncludeExcludes = void 0; exports.default = normalizeOptions; exports.normalizeCoreJSOption = normalizeCoreJSOption; exports.validateUseBuiltInsOption = exports.validateModulesOption = exports.normalizePluginName = void 0; var _semver = require("semver"); var _corejs2BuiltIns = require("@babel/compat-data/corejs2-built-ins"); var _coreJsCompat = require("../data/core-js-compat"); var _pluginsCompatData = require("./plugins-compat-data"); var _moduleTransformations = require("./module-transformations"); var _options = require("./options"); var _helperValidatorOption = require("@babel/helper-validator-option"); const corejs2DefaultWebIncludes = ["web.timers", "web.immediate", "web.dom.iterable"]; const v = new _helperValidatorOption.OptionValidator("@babel/preset-env"); const allPluginsList = Object.keys(_pluginsCompatData.plugins); const modulePlugins = ["transform-dynamic-import", ...Object.keys(_moduleTransformations.default).map(m => _moduleTransformations.default[m])]; const getValidIncludesAndExcludes = (type, corejs) => Array.from(new Set([...allPluginsList, ...(type === "exclude" ? modulePlugins : []), ...(corejs ? corejs == 2 ? [...Object.keys(_corejs2BuiltIns), ...corejs2DefaultWebIncludes] : Object.keys(_coreJsCompat) : [])])); function flatMap(array, fn) { return Array.prototype.concat.apply([], array.map(fn)); } const normalizePluginName = plugin => plugin.replace(/^(@babel\/|babel-)(plugin-)?/, ""); exports.normalizePluginName = normalizePluginName; const expandIncludesAndExcludes = (filterList = [], type, corejs) => { if (filterList.length === 0) return []; const filterableItems = getValidIncludesAndExcludes(type, corejs); const invalidFilters = []; const selectedPlugins = flatMap(filterList, filter => { let re; if (typeof filter === "string") { try { re = new RegExp(`^${normalizePluginName(filter)}$`); } catch (e) { invalidFilters.push(filter); return []; } } else { re = filter; } const items = filterableItems.filter(item => re.test(item) || re.test(item.replace(/^transform-/, "proposal-"))); if (items.length === 0) invalidFilters.push(filter); return items; }); v.invariant(invalidFilters.length === 0, `The plugins/built-ins '${invalidFilters.join(", ")}' passed to the '${type}' option are not valid. Please check data/[plugin-features|built-in-features].js in babel-preset-env`); return selectedPlugins; }; const checkDuplicateIncludeExcludes = (include = [], exclude = []) => { const duplicates = include.filter(opt => exclude.indexOf(opt) >= 0); v.invariant(duplicates.length === 0, `The plugins/built-ins '${duplicates.join(", ")}' were found in both the "include" and "exclude" options.`); }; exports.checkDuplicateIncludeExcludes = checkDuplicateIncludeExcludes; const normalizeTargets = targets => { if (typeof targets === "string" || Array.isArray(targets)) { return { browsers: targets }; } return Object.assign({}, targets); }; const validateModulesOption = (modulesOpt = _options.ModulesOption.auto) => { v.invariant( _options.ModulesOption[modulesOpt.toString()] || modulesOpt === _options.ModulesOption.false, `The 'modules' option must be one of \n` + ` - 'false' to indicate no module processing\n` + ` - a specific module type: 'commonjs', 'amd', 'umd', 'systemjs'` + ` - 'auto' (default) which will automatically select 'false' if the current\n` + ` process is known to support ES module syntax, or "commonjs" otherwise\n`); return modulesOpt; }; exports.validateModulesOption = validateModulesOption; const validateUseBuiltInsOption = (builtInsOpt = false) => { v.invariant( _options.UseBuiltInsOption[builtInsOpt.toString()] || builtInsOpt === _options.UseBuiltInsOption.false, `The 'useBuiltIns' option must be either 'false' (default) to indicate no polyfill, '"entry"' to indicate replacing the entry polyfill, or '"usage"' to import only used polyfills per file`); return builtInsOpt; }; exports.validateUseBuiltInsOption = validateUseBuiltInsOption; function normalizeCoreJSOption(corejs, useBuiltIns) { let proposals = false; let rawVersion; if (useBuiltIns && corejs === undefined) { rawVersion = 2; console.warn("\nWARNING (@babel/preset-env): We noticed you're using the `useBuiltIns` option without declaring a " + "core-js version. Currently, we assume version 2.x when no version " + "is passed. Since this default version will likely change in future " + "versions of Babel, we recommend explicitly setting the core-js version " + "you are using via the `corejs` option.\n" + "\nYou should also be sure that the version you pass to the `corejs` " + "option matches the version specified in your `package.json`'s " + "`dependencies` section. If it doesn't, you need to run one of the " + "following commands:\n\n" + " npm install --save core-js@2 npm install --save core-js@3\n" + " yarn add core-js@2 yarn add core-js@3\n\n" + "More info about useBuiltIns: https://babeljs.io/docs/en/babel-preset-env#usebuiltins\n" + "More info about core-js: https://babeljs.io/docs/en/babel-preset-env#corejs"); } else if (typeof corejs === "object" && corejs !== null) { rawVersion = corejs.version; proposals = Boolean(corejs.proposals); } else { rawVersion = corejs; } const version = rawVersion ? _semver.coerce(String(rawVersion)) : false; if (!useBuiltIns && version) { console.warn("\nWARNING (@babel/preset-env): The `corejs` option only has an effect when the `useBuiltIns` option is not `false`\n"); } if (useBuiltIns && (!version || version.major < 2 || version.major > 3)) { throw new RangeError("Invalid Option: The version passed to `corejs` is invalid. Currently, " + "only core-js@2 and core-js@3 are supported."); } return { version, proposals }; } function normalizeOptions(opts) { v.validateTopLevelOptions(opts, _options.TopLevelOptions); const useBuiltIns = validateUseBuiltInsOption(opts.useBuiltIns); const corejs = normalizeCoreJSOption(opts.corejs, useBuiltIns); const include = expandIncludesAndExcludes(opts.include, _options.TopLevelOptions.include, !!corejs.version && corejs.version.major); const exclude = expandIncludesAndExcludes(opts.exclude, _options.TopLevelOptions.exclude, !!corejs.version && corejs.version.major); checkDuplicateIncludeExcludes(include, exclude); return { bugfixes: v.validateBooleanOption(_options.TopLevelOptions.bugfixes, opts.bugfixes, false), configPath: v.validateStringOption(_options.TopLevelOptions.configPath, opts.configPath, process.cwd()), corejs, debug: v.validateBooleanOption(_options.TopLevelOptions.debug, opts.debug, false), include, exclude, forceAllTransforms: v.validateBooleanOption(_options.TopLevelOptions.forceAllTransforms, opts.forceAllTransforms, false), ignoreBrowserslistConfig: v.validateBooleanOption(_options.TopLevelOptions.ignoreBrowserslistConfig, opts.ignoreBrowserslistConfig, false), loose: v.validateBooleanOption(_options.TopLevelOptions.loose, opts.loose), modules: validateModulesOption(opts.modules), shippedProposals: v.validateBooleanOption(_options.TopLevelOptions.shippedProposals, opts.shippedProposals, false), spec: v.validateBooleanOption(_options.TopLevelOptions.spec, opts.spec, false), targets: normalizeTargets(opts.targets), useBuiltIns: useBuiltIns, browserslistEnv: v.validateStringOption(_options.TopLevelOptions.browserslistEnv, opts.browserslistEnv) }; } //# sourceMappingURL=normalize-options.js.map preset-env/lib/index.js000066600000026313150432031470011057 0ustar00"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getPolyfillPlugins = exports.getModulesPluginNames = exports.default = void 0; exports.isPluginRequired = isPluginRequired; exports.transformIncludesAndExcludes = void 0; var _semver = require("semver"); var _debug = require("./debug"); var _getOptionSpecificExcludes = require("./get-option-specific-excludes"); var _filterItems = require("./filter-items"); var _moduleTransformations = require("./module-transformations"); var _normalizeOptions = require("./normalize-options"); var _shippedProposals = require("./shipped-proposals"); var _pluginsCompatData = require("./plugins-compat-data"); var _regenerator = require("./polyfills/regenerator"); var _babelPolyfill = require("./polyfills/babel-polyfill"); var _babelPluginPolyfillCorejs = require("babel-plugin-polyfill-corejs2"); var _babelPluginPolyfillCorejs2 = require("babel-plugin-polyfill-corejs3"); var _babelPluginPolyfillRegenerator = require("babel-plugin-polyfill-regenerator"); var _helperCompilationTargets = require("@babel/helper-compilation-targets"); var _availablePlugins = require("./available-plugins"); var _helperPluginUtils = require("@babel/helper-plugin-utils"); const pluginCoreJS2 = _babelPluginPolyfillCorejs.default || _babelPluginPolyfillCorejs; const pluginCoreJS3 = _babelPluginPolyfillCorejs2.default || _babelPluginPolyfillCorejs2; const pluginRegenerator = _babelPluginPolyfillRegenerator.default || _babelPluginPolyfillRegenerator; function isPluginRequired(targets, support) { return (0, _helperCompilationTargets.isRequired)("fake-name", targets, { compatData: { "fake-name": support } }); } function filterStageFromList(list, stageList) { return Object.keys(list).reduce((result, item) => { if (!stageList.has(item)) { result[item] = list[item]; } return result; }, {}); } const pluginLists = { withProposals: { withoutBugfixes: _pluginsCompatData.plugins, withBugfixes: Object.assign({}, _pluginsCompatData.plugins, _pluginsCompatData.pluginsBugfixes) }, withoutProposals: { withoutBugfixes: filterStageFromList(_pluginsCompatData.plugins, _shippedProposals.proposalPlugins), withBugfixes: filterStageFromList(Object.assign({}, _pluginsCompatData.plugins, _pluginsCompatData.pluginsBugfixes), _shippedProposals.proposalPlugins) } }; function getPluginList(proposals, bugfixes) { if (proposals) { if (bugfixes) return pluginLists.withProposals.withBugfixes;else return pluginLists.withProposals.withoutBugfixes; } else { if (bugfixes) return pluginLists.withoutProposals.withBugfixes;else return pluginLists.withoutProposals.withoutBugfixes; } } const getPlugin = pluginName => { const plugin = _availablePlugins.default[pluginName](); if (!plugin) { throw new Error(`Could not find plugin "${pluginName}". Ensure there is an entry in ./available-plugins.js for it.`); } return plugin; }; const transformIncludesAndExcludes = opts => { return opts.reduce((result, opt) => { const target = opt.match(/^(es|es6|es7|esnext|web)\./) ? "builtIns" : "plugins"; result[target].add(opt); return result; }, { all: opts, plugins: new Set(), builtIns: new Set() }); }; exports.transformIncludesAndExcludes = transformIncludesAndExcludes; const getModulesPluginNames = ({ modules, transformations, shouldTransformESM, shouldTransformDynamicImport, shouldTransformExportNamespaceFrom, shouldParseTopLevelAwait }) => { const modulesPluginNames = []; if (modules !== false && transformations[modules]) { if (shouldTransformESM) { modulesPluginNames.push(transformations[modules]); } if (shouldTransformDynamicImport && shouldTransformESM && modules !== "umd") { modulesPluginNames.push("transform-dynamic-import"); } else { if (shouldTransformDynamicImport) { console.warn("Dynamic import can only be supported when transforming ES modules" + " to AMD, CommonJS or SystemJS. Only the parser plugin will be enabled."); } modulesPluginNames.push("syntax-dynamic-import"); } } else { modulesPluginNames.push("syntax-dynamic-import"); } if (shouldTransformExportNamespaceFrom) { modulesPluginNames.push("transform-export-namespace-from"); } else { modulesPluginNames.push("syntax-export-namespace-from"); } if (shouldParseTopLevelAwait) { modulesPluginNames.push("syntax-top-level-await"); } return modulesPluginNames; }; exports.getModulesPluginNames = getModulesPluginNames; const getPolyfillPlugins = ({ useBuiltIns, corejs, polyfillTargets, include, exclude, proposals, shippedProposals, regenerator, debug }) => { const polyfillPlugins = []; if (useBuiltIns === "usage" || useBuiltIns === "entry") { const pluginOptions = { method: `${useBuiltIns}-global`, version: corejs ? corejs.toString() : undefined, targets: polyfillTargets, include, exclude, proposals, shippedProposals, debug }; if (corejs) { if (useBuiltIns === "usage") { if (corejs.major === 2) { polyfillPlugins.push([pluginCoreJS2, pluginOptions], [_babelPolyfill.default, { usage: true }]); } else { polyfillPlugins.push([pluginCoreJS3, pluginOptions], [_babelPolyfill.default, { usage: true, deprecated: true }]); } if (regenerator) { polyfillPlugins.push([pluginRegenerator, { method: "usage-global", debug }]); } } else { if (corejs.major === 2) { polyfillPlugins.push([_babelPolyfill.default, { regenerator }], [pluginCoreJS2, pluginOptions]); } else { polyfillPlugins.push([pluginCoreJS3, pluginOptions], [_babelPolyfill.default, { deprecated: true }]); if (!regenerator) { polyfillPlugins.push([_regenerator.default, pluginOptions]); } } } } } return polyfillPlugins; }; exports.getPolyfillPlugins = getPolyfillPlugins; function getLocalTargets(optionsTargets, ignoreBrowserslistConfig, configPath, browserslistEnv) { if (optionsTargets != null && optionsTargets.esmodules && optionsTargets.browsers) { console.warn(` @babel/preset-env: esmodules and browsers targets have been specified together. \`browsers\` target, \`${optionsTargets.browsers.toString()}\` will be ignored. `); } return (0, _helperCompilationTargets.default)(optionsTargets, { ignoreBrowserslistConfig, configPath, browserslistEnv }); } function supportsStaticESM(caller) { return !!(caller != null && caller.supportsStaticESM); } function supportsDynamicImport(caller) { return !!(caller != null && caller.supportsDynamicImport); } function supportsExportNamespaceFrom(caller) { return !!(caller != null && caller.supportsExportNamespaceFrom); } function supportsTopLevelAwait(caller) { return !!(caller != null && caller.supportsTopLevelAwait); } var _default = (0, _helperPluginUtils.declarePreset)((api, opts) => { api.assertVersion(7); const babelTargets = api.targets(); const { bugfixes, configPath, debug, exclude: optionsExclude, forceAllTransforms, ignoreBrowserslistConfig, include: optionsInclude, loose, modules, shippedProposals, spec, targets: optionsTargets, useBuiltIns, corejs: { version: corejs, proposals }, browserslistEnv } = (0, _normalizeOptions.default)(opts); let targets = babelTargets; if ( _semver.lt(api.version, "7.13.0") || opts.targets || opts.configPath || opts.browserslistEnv || opts.ignoreBrowserslistConfig) { { var hasUglifyTarget = false; if (optionsTargets != null && optionsTargets.uglify) { hasUglifyTarget = true; delete optionsTargets.uglify; console.warn(` The uglify target has been deprecated. Set the top level option \`forceAllTransforms: true\` instead. `); } } targets = getLocalTargets(optionsTargets, ignoreBrowserslistConfig, configPath, browserslistEnv); } const transformTargets = forceAllTransforms || hasUglifyTarget ? {} : targets; const include = transformIncludesAndExcludes(optionsInclude); const exclude = transformIncludesAndExcludes(optionsExclude); const compatData = getPluginList(shippedProposals, bugfixes); const shouldSkipExportNamespaceFrom = modules === "auto" && (api.caller == null ? void 0 : api.caller(supportsExportNamespaceFrom)) || modules === false && !(0, _helperCompilationTargets.isRequired)("transform-export-namespace-from", transformTargets, { compatData, includes: include.plugins, excludes: exclude.plugins }); const modulesPluginNames = getModulesPluginNames({ modules, transformations: _moduleTransformations.default, shouldTransformESM: modules !== "auto" || !(api.caller != null && api.caller(supportsStaticESM)), shouldTransformDynamicImport: modules !== "auto" || !(api.caller != null && api.caller(supportsDynamicImport)), shouldTransformExportNamespaceFrom: !shouldSkipExportNamespaceFrom, shouldParseTopLevelAwait: !api.caller || api.caller(supportsTopLevelAwait) }); const pluginNames = (0, _helperCompilationTargets.filterItems)(compatData, include.plugins, exclude.plugins, transformTargets, modulesPluginNames, (0, _getOptionSpecificExcludes.default)({ loose }), _shippedProposals.pluginSyntaxMap); (0, _filterItems.removeUnnecessaryItems)(pluginNames, _pluginsCompatData.overlappingPlugins); (0, _filterItems.removeUnsupportedItems)(pluginNames, api.version); if (shippedProposals) { (0, _filterItems.addProposalSyntaxPlugins)(pluginNames, _shippedProposals.proposalSyntaxPlugins); } const polyfillPlugins = getPolyfillPlugins({ useBuiltIns, corejs, polyfillTargets: targets, include: include.builtIns, exclude: exclude.builtIns, proposals, shippedProposals, regenerator: pluginNames.has("transform-regenerator"), debug }); const pluginUseBuiltIns = useBuiltIns !== false; const plugins = Array.from(pluginNames).map(pluginName => { if (pluginName === "transform-class-properties" || pluginName === "transform-private-methods" || pluginName === "transform-private-property-in-object") { return [getPlugin(pluginName), { loose: loose ? "#__internal__@babel/preset-env__prefer-true-but-false-is-ok-if-it-prevents-an-error" : "#__internal__@babel/preset-env__prefer-false-but-true-is-ok-if-it-prevents-an-error" }]; } return [getPlugin(pluginName), { spec, loose, useBuiltIns: pluginUseBuiltIns }]; }).concat(polyfillPlugins); if (debug) { console.log("@babel/preset-env: `DEBUG` option"); console.log("\nUsing targets:"); console.log(JSON.stringify((0, _helperCompilationTargets.prettifyTargets)(targets), null, 2)); console.log(`\nUsing modules transform: ${modules.toString()}`); console.log("\nUsing plugins:"); pluginNames.forEach(pluginName => { (0, _debug.logPlugin)(pluginName, targets, compatData); }); if (!useBuiltIns) { console.log("\nUsing polyfills: No polyfills were added, since the `useBuiltIns` option was not set."); } } return { plugins }; }); exports.default = _default; //# sourceMappingURL=index.js.map preset-env/lib/targets-parser.js.map000066600000000364150432031470013465 0ustar00{"version":3,"names":[],"sources":["../src/targets-parser.ts"],"sourcesContent":["// TODO: Remove in Babel 8\n\nexport {\n default,\n isBrowsersQueryValid,\n} from \"@babel/helper-compilation-targets\";\n"],"mappings":";;;;;;;;;;;;;;;;;AAEA"}preset-env/lib/index.js.map000066600000057102150432031470011633 0ustar00{"version":3,"names":["pluginCoreJS2","_pluginCoreJS2","default","pluginCoreJS3","_pluginCoreJS3","pluginRegenerator","_pluginRegenerator","isPluginRequired","targets","support","isRequired","compatData","filterStageFromList","list","stageList","Object","keys","reduce","result","item","has","pluginLists","withProposals","withoutBugfixes","pluginsList","withBugfixes","assign","pluginsBugfixesList","withoutProposals","proposalPlugins","getPluginList","proposals","bugfixes","getPlugin","pluginName","plugin","availablePlugins","Error","transformIncludesAndExcludes","opts","opt","target","match","add","all","plugins","Set","builtIns","getModulesPluginNames","modules","transformations","shouldTransformESM","shouldTransformDynamicImport","shouldTransformExportNamespaceFrom","shouldParseTopLevelAwait","modulesPluginNames","push","console","warn","getPolyfillPlugins","useBuiltIns","corejs","polyfillTargets","include","exclude","shippedProposals","regenerator","debug","polyfillPlugins","pluginOptions","method","version","toString","undefined","major","legacyBabelPolyfillPlugin","usage","deprecated","removeRegeneratorEntryPlugin","getLocalTargets","optionsTargets","ignoreBrowserslistConfig","configPath","browserslistEnv","esmodules","browsers","getTargets","supportsStaticESM","caller","supportsDynamicImport","supportsExportNamespaceFrom","supportsTopLevelAwait","declarePreset","api","assertVersion","babelTargets","optionsExclude","forceAllTransforms","optionsInclude","loose","spec","normalizeOptions","semver","lt","hasUglifyTarget","uglify","transformTargets","shouldSkipExportNamespaceFrom","includes","excludes","moduleTransformations","pluginNames","filterItems","getOptionSpecificExcludesFor","pluginSyntaxMap","removeUnnecessaryItems","overlappingPlugins","removeUnsupportedItems","addProposalSyntaxPlugins","proposalSyntaxPlugins","pluginUseBuiltIns","Array","from","map","concat","log","JSON","stringify","prettifyTargets","forEach","logPlugin"],"sources":["../src/index.ts"],"sourcesContent":["import semver, { type SemVer } from \"semver\";\nimport { logPlugin } from \"./debug\";\nimport getOptionSpecificExcludesFor from \"./get-option-specific-excludes\";\nimport {\n addProposalSyntaxPlugins,\n removeUnnecessaryItems,\n removeUnsupportedItems,\n} from \"./filter-items\";\nimport moduleTransformations from \"./module-transformations\";\nimport normalizeOptions from \"./normalize-options\";\nimport {\n pluginSyntaxMap,\n proposalPlugins,\n proposalSyntaxPlugins,\n} from \"./shipped-proposals\";\nimport {\n plugins as pluginsList,\n pluginsBugfixes as pluginsBugfixesList,\n overlappingPlugins,\n} from \"./plugins-compat-data\";\n\nimport removeRegeneratorEntryPlugin from \"./polyfills/regenerator\";\nimport legacyBabelPolyfillPlugin from \"./polyfills/babel-polyfill\";\n\nimport type { CallerMetadata } from \"@babel/core\";\n\nimport _pluginCoreJS2 from \"babel-plugin-polyfill-corejs2\";\nimport _pluginCoreJS3 from \"babel-plugin-polyfill-corejs3\";\nimport _pluginRegenerator from \"babel-plugin-polyfill-regenerator\";\nconst pluginCoreJS2 = _pluginCoreJS2.default || _pluginCoreJS2;\nconst pluginCoreJS3 = _pluginCoreJS3.default || _pluginCoreJS3;\nconst pluginRegenerator = _pluginRegenerator.default || _pluginRegenerator;\n\nimport getTargets, {\n prettifyTargets,\n filterItems,\n isRequired,\n} from \"@babel/helper-compilation-targets\";\nimport type { Targets, InputTargets } from \"@babel/helper-compilation-targets\";\nimport availablePlugins from \"./available-plugins\";\nimport { declarePreset } from \"@babel/helper-plugin-utils\";\n\ntype ModuleTransformationsType =\n typeof import(\"./module-transformations\").default;\nimport type { BuiltInsOption, ModuleOption, Options } from \"./types\";\n\n// TODO: Remove in Babel 8\nexport function isPluginRequired(targets: Targets, support: Targets) {\n return isRequired(\"fake-name\", targets, {\n compatData: { \"fake-name\": support },\n });\n}\n\nfunction filterStageFromList(\n list: { [feature: string]: Targets },\n stageList: Set,\n) {\n return Object.keys(list).reduce((result, item) => {\n if (!stageList.has(item)) {\n // @ts-expect-error todo: refine result types\n result[item] = list[item];\n }\n\n return result;\n }, {});\n}\n\nconst pluginLists = {\n withProposals: {\n withoutBugfixes: pluginsList,\n withBugfixes: Object.assign({}, pluginsList, pluginsBugfixesList),\n },\n withoutProposals: {\n withoutBugfixes: filterStageFromList(pluginsList, proposalPlugins),\n withBugfixes: filterStageFromList(\n Object.assign({}, pluginsList, pluginsBugfixesList),\n proposalPlugins,\n ),\n },\n};\n\nfunction getPluginList(proposals: boolean, bugfixes: boolean) {\n if (proposals) {\n if (bugfixes) return pluginLists.withProposals.withBugfixes;\n else return pluginLists.withProposals.withoutBugfixes;\n } else {\n if (bugfixes) return pluginLists.withoutProposals.withBugfixes;\n else return pluginLists.withoutProposals.withoutBugfixes;\n }\n}\n\nconst getPlugin = (pluginName: string) => {\n const plugin =\n // @ts-expect-error plugin name is constructed from available plugin list\n availablePlugins[pluginName]();\n\n if (!plugin) {\n throw new Error(\n `Could not find plugin \"${pluginName}\". Ensure there is an entry in ./available-plugins.js for it.`,\n );\n }\n\n return plugin;\n};\n\nexport const transformIncludesAndExcludes = (opts: Array): any => {\n return opts.reduce(\n (result, opt) => {\n const target = opt.match(/^(es|es6|es7|esnext|web)\\./)\n ? \"builtIns\"\n : \"plugins\";\n result[target].add(opt);\n return result;\n },\n {\n all: opts,\n plugins: new Set(),\n builtIns: new Set(),\n },\n );\n};\n\nexport const getModulesPluginNames = ({\n modules,\n transformations,\n shouldTransformESM,\n shouldTransformDynamicImport,\n shouldTransformExportNamespaceFrom,\n shouldParseTopLevelAwait,\n}: {\n modules: ModuleOption;\n transformations: ModuleTransformationsType;\n shouldTransformESM: boolean;\n shouldTransformDynamicImport: boolean;\n shouldTransformExportNamespaceFrom: boolean;\n shouldParseTopLevelAwait: boolean;\n}) => {\n const modulesPluginNames = [];\n if (modules !== false && transformations[modules]) {\n if (shouldTransformESM) {\n modulesPluginNames.push(transformations[modules]);\n }\n\n if (\n shouldTransformDynamicImport &&\n shouldTransformESM &&\n modules !== \"umd\"\n ) {\n modulesPluginNames.push(\"transform-dynamic-import\");\n } else {\n if (shouldTransformDynamicImport) {\n console.warn(\n \"Dynamic import can only be supported when transforming ES modules\" +\n \" to AMD, CommonJS or SystemJS. Only the parser plugin will be enabled.\",\n );\n }\n modulesPluginNames.push(\"syntax-dynamic-import\");\n }\n } else {\n modulesPluginNames.push(\"syntax-dynamic-import\");\n }\n\n if (shouldTransformExportNamespaceFrom) {\n modulesPluginNames.push(\"transform-export-namespace-from\");\n } else {\n modulesPluginNames.push(\"syntax-export-namespace-from\");\n }\n\n if (shouldParseTopLevelAwait) {\n modulesPluginNames.push(\"syntax-top-level-await\");\n }\n\n return modulesPluginNames;\n};\n\nexport const getPolyfillPlugins = ({\n useBuiltIns,\n corejs,\n polyfillTargets,\n include,\n exclude,\n proposals,\n shippedProposals,\n regenerator,\n debug,\n}: {\n useBuiltIns: BuiltInsOption;\n corejs: SemVer | null | false;\n polyfillTargets: Targets;\n include: Set;\n exclude: Set;\n proposals: boolean;\n shippedProposals: boolean;\n regenerator: boolean;\n debug: boolean;\n}) => {\n const polyfillPlugins = [];\n if (useBuiltIns === \"usage\" || useBuiltIns === \"entry\") {\n const pluginOptions = {\n method: `${useBuiltIns}-global`,\n version: corejs ? corejs.toString() : undefined,\n targets: polyfillTargets,\n include,\n exclude,\n proposals,\n shippedProposals,\n debug,\n };\n\n if (corejs) {\n if (useBuiltIns === \"usage\") {\n if (corejs.major === 2) {\n polyfillPlugins.push(\n [pluginCoreJS2, pluginOptions],\n [legacyBabelPolyfillPlugin, { usage: true }],\n );\n } else {\n polyfillPlugins.push(\n [pluginCoreJS3, pluginOptions],\n [legacyBabelPolyfillPlugin, { usage: true, deprecated: true }],\n );\n }\n if (regenerator) {\n polyfillPlugins.push([\n pluginRegenerator,\n { method: \"usage-global\", debug },\n ]);\n }\n } else {\n if (corejs.major === 2) {\n polyfillPlugins.push(\n [legacyBabelPolyfillPlugin, { regenerator }],\n [pluginCoreJS2, pluginOptions],\n );\n } else {\n polyfillPlugins.push(\n [pluginCoreJS3, pluginOptions],\n [legacyBabelPolyfillPlugin, { deprecated: true }],\n );\n if (!regenerator) {\n polyfillPlugins.push([removeRegeneratorEntryPlugin, pluginOptions]);\n }\n }\n }\n }\n }\n return polyfillPlugins;\n};\n\nfunction getLocalTargets(\n optionsTargets: Options[\"targets\"],\n ignoreBrowserslistConfig: boolean,\n configPath: string,\n browserslistEnv: string,\n) {\n if (optionsTargets?.esmodules && optionsTargets.browsers) {\n console.warn(`\n@babel/preset-env: esmodules and browsers targets have been specified together.\n\\`browsers\\` target, \\`${optionsTargets.browsers.toString()}\\` will be ignored.\n`);\n }\n\n return getTargets(optionsTargets as InputTargets, {\n ignoreBrowserslistConfig,\n configPath,\n browserslistEnv,\n });\n}\n\nfunction supportsStaticESM(caller: CallerMetadata | undefined) {\n // @ts-expect-error supportsStaticESM is not defined in CallerMetadata\n return !!caller?.supportsStaticESM;\n}\n\nfunction supportsDynamicImport(caller: CallerMetadata | undefined) {\n // @ts-expect-error supportsDynamicImport is not defined in CallerMetadata\n return !!caller?.supportsDynamicImport;\n}\n\nfunction supportsExportNamespaceFrom(caller: CallerMetadata | undefined) {\n // @ts-expect-error supportsExportNamespaceFrom is not defined in CallerMetadata\n return !!caller?.supportsExportNamespaceFrom;\n}\n\nfunction supportsTopLevelAwait(caller: CallerMetadata | undefined) {\n // @ts-expect-error supportsTopLevelAwait is not defined in CallerMetadata\n return !!caller?.supportsTopLevelAwait;\n}\n\nexport default declarePreset((api, opts: Options) => {\n api.assertVersion(7);\n\n const babelTargets = api.targets();\n\n const {\n bugfixes,\n configPath,\n debug,\n exclude: optionsExclude,\n forceAllTransforms,\n ignoreBrowserslistConfig,\n include: optionsInclude,\n loose,\n modules,\n shippedProposals,\n spec,\n targets: optionsTargets,\n useBuiltIns,\n corejs: { version: corejs, proposals },\n browserslistEnv,\n } = normalizeOptions(opts);\n\n let targets = babelTargets;\n\n if (\n // @babel/core < 7.13.0 doesn't load targets (api.targets() always\n // returns {} thanks to @babel/helper-plugin-utils), so we always want\n // to fallback to the old targets behavior in this case.\n semver.lt(api.version, \"7.13.0\") ||\n // If any browserslist-related option is specified, fallback to the old\n // behavior of not using the targets specified in the top-level options.\n opts.targets ||\n opts.configPath ||\n opts.browserslistEnv ||\n opts.ignoreBrowserslistConfig\n ) {\n if (!process.env.BABEL_8_BREAKING) {\n // eslint-disable-next-line no-var\n var hasUglifyTarget = false;\n\n if (optionsTargets?.uglify) {\n hasUglifyTarget = true;\n delete optionsTargets.uglify;\n\n console.warn(`\nThe uglify target has been deprecated. Set the top level\noption \\`forceAllTransforms: true\\` instead.\n`);\n }\n }\n\n targets = getLocalTargets(\n optionsTargets,\n ignoreBrowserslistConfig,\n configPath,\n browserslistEnv,\n );\n }\n\n const transformTargets = (\n process.env.BABEL_8_BREAKING\n ? forceAllTransforms\n : forceAllTransforms || hasUglifyTarget\n )\n ? ({} as Targets)\n : targets;\n\n const include = transformIncludesAndExcludes(optionsInclude);\n const exclude = transformIncludesAndExcludes(optionsExclude);\n\n const compatData = getPluginList(shippedProposals, bugfixes);\n const shouldSkipExportNamespaceFrom =\n (modules === \"auto\" && api.caller?.(supportsExportNamespaceFrom)) ||\n (modules === false &&\n !isRequired(\"transform-export-namespace-from\", transformTargets, {\n compatData,\n includes: include.plugins,\n excludes: exclude.plugins,\n }));\n const modulesPluginNames = getModulesPluginNames({\n modules,\n transformations: moduleTransformations,\n // TODO: Remove the 'api.caller' check eventually. Just here to prevent\n // unnecessary breakage in the short term for users on older betas/RCs.\n shouldTransformESM: modules !== \"auto\" || !api.caller?.(supportsStaticESM),\n shouldTransformDynamicImport:\n modules !== \"auto\" || !api.caller?.(supportsDynamicImport),\n shouldTransformExportNamespaceFrom: !shouldSkipExportNamespaceFrom,\n shouldParseTopLevelAwait:\n !api.caller || (api.caller(supportsTopLevelAwait) as boolean),\n });\n\n const pluginNames = filterItems(\n compatData,\n include.plugins,\n exclude.plugins,\n transformTargets,\n modulesPluginNames,\n getOptionSpecificExcludesFor({ loose }),\n pluginSyntaxMap,\n );\n removeUnnecessaryItems(pluginNames, overlappingPlugins);\n removeUnsupportedItems(pluginNames, api.version);\n if (shippedProposals) {\n addProposalSyntaxPlugins(pluginNames, proposalSyntaxPlugins);\n }\n\n const polyfillPlugins = getPolyfillPlugins({\n useBuiltIns,\n corejs,\n polyfillTargets: targets,\n include: include.builtIns,\n exclude: exclude.builtIns,\n proposals,\n shippedProposals,\n regenerator: pluginNames.has(\"transform-regenerator\"),\n debug,\n });\n\n const pluginUseBuiltIns = useBuiltIns !== false;\n const plugins = Array.from(pluginNames)\n .map(pluginName => {\n if (\n pluginName === \"transform-class-properties\" ||\n pluginName === \"transform-private-methods\" ||\n pluginName === \"transform-private-property-in-object\"\n ) {\n return [\n getPlugin(pluginName),\n {\n loose: loose\n ? \"#__internal__@babel/preset-env__prefer-true-but-false-is-ok-if-it-prevents-an-error\"\n : \"#__internal__@babel/preset-env__prefer-false-but-true-is-ok-if-it-prevents-an-error\",\n },\n ];\n }\n return [\n getPlugin(pluginName),\n { spec, loose, useBuiltIns: pluginUseBuiltIns },\n ];\n })\n .concat(polyfillPlugins);\n\n if (debug) {\n console.log(\"@babel/preset-env: `DEBUG` option\");\n console.log(\"\\nUsing targets:\");\n console.log(JSON.stringify(prettifyTargets(targets), null, 2));\n console.log(`\\nUsing modules transform: ${modules.toString()}`);\n console.log(\"\\nUsing plugins:\");\n pluginNames.forEach(pluginName => {\n logPlugin(pluginName, targets, compatData);\n });\n\n if (!useBuiltIns) {\n console.log(\n \"\\nUsing polyfills: No polyfills were added, since the `useBuiltIns` option was not set.\",\n );\n }\n }\n\n return { plugins };\n});\n"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AAKA;AACA;AACA;AAKA;AAMA;AACA;AAIA;AACA;AACA;AAKA;AAMA;AACA;AAXA,MAAMA,aAAa,GAAGC,0BAAc,CAACC,OAAO,IAAID,0BAAc;AAC9D,MAAME,aAAa,GAAGC,2BAAc,CAACF,OAAO,IAAIE,2BAAc;AAC9D,MAAMC,iBAAiB,GAAGC,+BAAkB,CAACJ,OAAO,IAAII,+BAAkB;AAgBnE,SAASC,gBAAgB,CAACC,OAAgB,EAAEC,OAAgB,EAAE;EACnE,OAAO,IAAAC,oCAAU,EAAC,WAAW,EAAEF,OAAO,EAAE;IACtCG,UAAU,EAAE;MAAE,WAAW,EAAEF;IAAQ;EACrC,CAAC,CAAC;AACJ;AAEA,SAASG,mBAAmB,CAC1BC,IAAoC,EACpCC,SAAsB,EACtB;EACA,OAAOC,MAAM,CAACC,IAAI,CAACH,IAAI,CAAC,CAACI,MAAM,CAAC,CAACC,MAAM,EAAEC,IAAI,KAAK;IAChD,IAAI,CAACL,SAAS,CAACM,GAAG,CAACD,IAAI,CAAC,EAAE;MAExBD,MAAM,CAACC,IAAI,CAAC,GAAGN,IAAI,CAACM,IAAI,CAAC;IAC3B;IAEA,OAAOD,MAAM;EACf,CAAC,EAAE,CAAC,CAAC,CAAC;AACR;AAEA,MAAMG,WAAW,GAAG;EAClBC,aAAa,EAAE;IACbC,eAAe,EAAEC,0BAAW;IAC5BC,YAAY,EAAEV,MAAM,CAACW,MAAM,CAAC,CAAC,CAAC,EAAEF,0BAAW,EAAEG,kCAAmB;EAClE,CAAC;EACDC,gBAAgB,EAAE;IAChBL,eAAe,EAAEX,mBAAmB,CAACY,0BAAW,EAAEK,iCAAe,CAAC;IAClEJ,YAAY,EAAEb,mBAAmB,CAC/BG,MAAM,CAACW,MAAM,CAAC,CAAC,CAAC,EAAEF,0BAAW,EAAEG,kCAAmB,CAAC,EACnDE,iCAAe;EAEnB;AACF,CAAC;AAED,SAASC,aAAa,CAACC,SAAkB,EAAEC,QAAiB,EAAE;EAC5D,IAAID,SAAS,EAAE;IACb,IAAIC,QAAQ,EAAE,OAAOX,WAAW,CAACC,aAAa,CAACG,YAAY,CAAC,KACvD,OAAOJ,WAAW,CAACC,aAAa,CAACC,eAAe;EACvD,CAAC,MAAM;IACL,IAAIS,QAAQ,EAAE,OAAOX,WAAW,CAACO,gBAAgB,CAACH,YAAY,CAAC,KAC1D,OAAOJ,WAAW,CAACO,gBAAgB,CAACL,eAAe;EAC1D;AACF;AAEA,MAAMU,SAAS,GAAIC,UAAkB,IAAK;EACxC,MAAMC,MAAM;EAEVC,yBAAgB,CAACF,UAAU,CAAC,EAAE;EAEhC,IAAI,CAACC,MAAM,EAAE;IACX,MAAM,IAAIE,KAAK,CACZ,0BAAyBH,UAAW,+DAA8D,CACpG;EACH;EAEA,OAAOC,MAAM;AACf,CAAC;AAEM,MAAMG,4BAA4B,GAAIC,IAAmB,IAAU;EACxE,OAAOA,IAAI,CAACtB,MAAM,CAChB,CAACC,MAAM,EAAEsB,GAAG,KAAK;IACf,MAAMC,MAAM,GAAGD,GAAG,CAACE,KAAK,CAAC,4BAA4B,CAAC,GAClD,UAAU,GACV,SAAS;IACbxB,MAAM,CAACuB,MAAM,CAAC,CAACE,GAAG,CAACH,GAAG,CAAC;IACvB,OAAOtB,MAAM;EACf,CAAC,EACD;IACE0B,GAAG,EAAEL,IAAI;IACTM,OAAO,EAAE,IAAIC,GAAG,EAAE;IAClBC,QAAQ,EAAE,IAAID,GAAG;EACnB,CAAC,CACF;AACH,CAAC;AAAC;AAEK,MAAME,qBAAqB,GAAG,CAAC;EACpCC,OAAO;EACPC,eAAe;EACfC,kBAAkB;EAClBC,4BAA4B;EAC5BC,kCAAkC;EAClCC;AAQF,CAAC,KAAK;EACJ,MAAMC,kBAAkB,GAAG,EAAE;EAC7B,IAAIN,OAAO,KAAK,KAAK,IAAIC,eAAe,CAACD,OAAO,CAAC,EAAE;IACjD,IAAIE,kBAAkB,EAAE;MACtBI,kBAAkB,CAACC,IAAI,CAACN,eAAe,CAACD,OAAO,CAAC,CAAC;IACnD;IAEA,IACEG,4BAA4B,IAC5BD,kBAAkB,IAClBF,OAAO,KAAK,KAAK,EACjB;MACAM,kBAAkB,CAACC,IAAI,CAAC,0BAA0B,CAAC;IACrD,CAAC,MAAM;MACL,IAAIJ,4BAA4B,EAAE;QAChCK,OAAO,CAACC,IAAI,CACV,mEAAmE,GACjE,wEAAwE,CAC3E;MACH;MACAH,kBAAkB,CAACC,IAAI,CAAC,uBAAuB,CAAC;IAClD;EACF,CAAC,MAAM;IACLD,kBAAkB,CAACC,IAAI,CAAC,uBAAuB,CAAC;EAClD;EAEA,IAAIH,kCAAkC,EAAE;IACtCE,kBAAkB,CAACC,IAAI,CAAC,iCAAiC,CAAC;EAC5D,CAAC,MAAM;IACLD,kBAAkB,CAACC,IAAI,CAAC,8BAA8B,CAAC;EACzD;EAEA,IAAIF,wBAAwB,EAAE;IAC5BC,kBAAkB,CAACC,IAAI,CAAC,wBAAwB,CAAC;EACnD;EAEA,OAAOD,kBAAkB;AAC3B,CAAC;AAAC;AAEK,MAAMI,kBAAkB,GAAG,CAAC;EACjCC,WAAW;EACXC,MAAM;EACNC,eAAe;EACfC,OAAO;EACPC,OAAO;EACPjC,SAAS;EACTkC,gBAAgB;EAChBC,WAAW;EACXC;AAWF,CAAC,KAAK;EACJ,MAAMC,eAAe,GAAG,EAAE;EAC1B,IAAIR,WAAW,KAAK,OAAO,IAAIA,WAAW,KAAK,OAAO,EAAE;IACtD,MAAMS,aAAa,GAAG;MACpBC,MAAM,EAAG,GAAEV,WAAY,SAAQ;MAC/BW,OAAO,EAAEV,MAAM,GAAGA,MAAM,CAACW,QAAQ,EAAE,GAAGC,SAAS;MAC/CjE,OAAO,EAAEsD,eAAe;MACxBC,OAAO;MACPC,OAAO;MACPjC,SAAS;MACTkC,gBAAgB;MAChBE;IACF,CAAC;IAED,IAAIN,MAAM,EAAE;MACV,IAAID,WAAW,KAAK,OAAO,EAAE;QAC3B,IAAIC,MAAM,CAACa,KAAK,KAAK,CAAC,EAAE;UACtBN,eAAe,CAACZ,IAAI,CAClB,CAACxD,aAAa,EAAEqE,aAAa,CAAC,EAC9B,CAACM,sBAAyB,EAAE;YAAEC,KAAK,EAAE;UAAK,CAAC,CAAC,CAC7C;QACH,CAAC,MAAM;UACLR,eAAe,CAACZ,IAAI,CAClB,CAACrD,aAAa,EAAEkE,aAAa,CAAC,EAC9B,CAACM,sBAAyB,EAAE;YAAEC,KAAK,EAAE,IAAI;YAAEC,UAAU,EAAE;UAAK,CAAC,CAAC,CAC/D;QACH;QACA,IAAIX,WAAW,EAAE;UACfE,eAAe,CAACZ,IAAI,CAAC,CACnBnD,iBAAiB,EACjB;YAAEiE,MAAM,EAAE,cAAc;YAAEH;UAAM,CAAC,CAClC,CAAC;QACJ;MACF,CAAC,MAAM;QACL,IAAIN,MAAM,CAACa,KAAK,KAAK,CAAC,EAAE;UACtBN,eAAe,CAACZ,IAAI,CAClB,CAACmB,sBAAyB,EAAE;YAAET;UAAY,CAAC,CAAC,EAC5C,CAAClE,aAAa,EAAEqE,aAAa,CAAC,CAC/B;QACH,CAAC,MAAM;UACLD,eAAe,CAACZ,IAAI,CAClB,CAACrD,aAAa,EAAEkE,aAAa,CAAC,EAC9B,CAACM,sBAAyB,EAAE;YAAEE,UAAU,EAAE;UAAK,CAAC,CAAC,CAClD;UACD,IAAI,CAACX,WAAW,EAAE;YAChBE,eAAe,CAACZ,IAAI,CAAC,CAACsB,oBAA4B,EAAET,aAAa,CAAC,CAAC;UACrE;QACF;MACF;IACF;EACF;EACA,OAAOD,eAAe;AACxB,CAAC;AAAC;AAEF,SAASW,eAAe,CACtBC,cAAkC,EAClCC,wBAAiC,EACjCC,UAAkB,EAClBC,eAAuB,EACvB;EACA,IAAIH,cAAc,YAAdA,cAAc,CAAEI,SAAS,IAAIJ,cAAc,CAACK,QAAQ,EAAE;IACxD5B,OAAO,CAACC,IAAI,CAAE;AAClB;AACA,yBAAyBsB,cAAc,CAACK,QAAQ,CAACb,QAAQ,EAAG;AAC5D,CAAC,CAAC;EACA;EAEA,OAAO,IAAAc,iCAAU,EAACN,cAAc,EAAkB;IAChDC,wBAAwB;IACxBC,UAAU;IACVC;EACF,CAAC,CAAC;AACJ;AAEA,SAASI,iBAAiB,CAACC,MAAkC,EAAE;EAE7D,OAAO,CAAC,EAACA,MAAM,YAANA,MAAM,CAAED,iBAAiB;AACpC;AAEA,SAASE,qBAAqB,CAACD,MAAkC,EAAE;EAEjE,OAAO,CAAC,EAACA,MAAM,YAANA,MAAM,CAAEC,qBAAqB;AACxC;AAEA,SAASC,2BAA2B,CAACF,MAAkC,EAAE;EAEvE,OAAO,CAAC,EAACA,MAAM,YAANA,MAAM,CAAEE,2BAA2B;AAC9C;AAEA,SAASC,qBAAqB,CAACH,MAAkC,EAAE;EAEjE,OAAO,CAAC,EAACA,MAAM,YAANA,MAAM,CAAEG,qBAAqB;AACxC;AAAC,eAEc,IAAAC,gCAAa,EAAC,CAACC,GAAG,EAAEtD,IAAa,KAAK;EACnDsD,GAAG,CAACC,aAAa,CAAC,CAAC,CAAC;EAEpB,MAAMC,YAAY,GAAGF,GAAG,CAACrF,OAAO,EAAE;EAElC,MAAM;IACJwB,QAAQ;IACRkD,UAAU;IACVf,KAAK;IACLH,OAAO,EAAEgC,cAAc;IACvBC,kBAAkB;IAClBhB,wBAAwB;IACxBlB,OAAO,EAAEmC,cAAc;IACvBC,KAAK;IACLlD,OAAO;IACPgB,gBAAgB;IAChBmC,IAAI;IACJ5F,OAAO,EAAEwE,cAAc;IACvBpB,WAAW;IACXC,MAAM,EAAE;MAAEU,OAAO,EAAEV,MAAM;MAAE9B;IAAU,CAAC;IACtCoD;EACF,CAAC,GAAG,IAAAkB,yBAAgB,EAAC9D,IAAI,CAAC;EAE1B,IAAI/B,OAAO,GAAGuF,YAAY;EAE1B;EAIEO,OAAM,CAACC,EAAE,CAACV,GAAG,CAACtB,OAAO,EAAE,QAAQ,CAAC;EAGhChC,IAAI,CAAC/B,OAAO,IACZ+B,IAAI,CAAC2C,UAAU,IACf3C,IAAI,CAAC4C,eAAe,IACpB5C,IAAI,CAAC0C,wBAAwB,EAC7B;IACmC;MAEjC,IAAIuB,eAAe,GAAG,KAAK;MAE3B,IAAIxB,cAAc,YAAdA,cAAc,CAAEyB,MAAM,EAAE;QAC1BD,eAAe,GAAG,IAAI;QACtB,OAAOxB,cAAc,CAACyB,MAAM;QAE5BhD,OAAO,CAACC,IAAI,CAAE;AACtB;AACA;AACA,CAAC,CAAC;MACI;IACF;IAEAlD,OAAO,GAAGuE,eAAe,CACvBC,cAAc,EACdC,wBAAwB,EACxBC,UAAU,EACVC,eAAe,CAChB;EACH;EAEA,MAAMuB,gBAAgB,GAGhBT,kBAAkB,IAAIO,eAAe,GAEtC,CAAC,CAAC,GACHhG,OAAO;EAEX,MAAMuD,OAAO,GAAGzB,4BAA4B,CAAC4D,cAAc,CAAC;EAC5D,MAAMlC,OAAO,GAAG1B,4BAA4B,CAAC0D,cAAc,CAAC;EAE5D,MAAMrF,UAAU,GAAGmB,aAAa,CAACmC,gBAAgB,EAAEjC,QAAQ,CAAC;EAC5D,MAAM2E,6BAA6B,GAChC1D,OAAO,KAAK,MAAM,KAAI4C,GAAG,CAACL,MAAM,oBAAVK,GAAG,CAACL,MAAM,CAAGE,2BAA2B,CAAC,KAC/DzC,OAAO,KAAK,KAAK,IAChB,CAAC,IAAAvC,oCAAU,EAAC,iCAAiC,EAAEgG,gBAAgB,EAAE;IAC/D/F,UAAU;IACViG,QAAQ,EAAE7C,OAAO,CAAClB,OAAO;IACzBgE,QAAQ,EAAE7C,OAAO,CAACnB;EACpB,CAAC,CAAE;EACP,MAAMU,kBAAkB,GAAGP,qBAAqB,CAAC;IAC/CC,OAAO;IACPC,eAAe,EAAE4D,8BAAqB;IAGtC3D,kBAAkB,EAAEF,OAAO,KAAK,MAAM,IAAI,EAAC4C,GAAG,CAACL,MAAM,YAAVK,GAAG,CAACL,MAAM,CAAGD,iBAAiB,CAAC;IAC1EnC,4BAA4B,EAC1BH,OAAO,KAAK,MAAM,IAAI,EAAC4C,GAAG,CAACL,MAAM,YAAVK,GAAG,CAACL,MAAM,CAAGC,qBAAqB,CAAC;IAC5DpC,kCAAkC,EAAE,CAACsD,6BAA6B;IAClErD,wBAAwB,EACtB,CAACuC,GAAG,CAACL,MAAM,IAAKK,GAAG,CAACL,MAAM,CAACG,qBAAqB;EACpD,CAAC,CAAC;EAEF,MAAMoB,WAAW,GAAG,IAAAC,qCAAW,EAC7BrG,UAAU,EACVoD,OAAO,CAAClB,OAAO,EACfmB,OAAO,CAACnB,OAAO,EACf6D,gBAAgB,EAChBnD,kBAAkB,EAClB,IAAA0D,kCAA4B,EAAC;IAAEd;EAAM,CAAC,CAAC,EACvCe,iCAAe,CAChB;EACD,IAAAC,mCAAsB,EAACJ,WAAW,EAAEK,qCAAkB,CAAC;EACvD,IAAAC,mCAAsB,EAACN,WAAW,EAAElB,GAAG,CAACtB,OAAO,CAAC;EAChD,IAAIN,gBAAgB,EAAE;IACpB,IAAAqD,qCAAwB,EAACP,WAAW,EAAEQ,uCAAqB,CAAC;EAC9D;EAEA,MAAMnD,eAAe,GAAGT,kBAAkB,CAAC;IACzCC,WAAW;IACXC,MAAM;IACNC,eAAe,EAAEtD,OAAO;IACxBuD,OAAO,EAAEA,OAAO,CAAChB,QAAQ;IACzBiB,OAAO,EAAEA,OAAO,CAACjB,QAAQ;IACzBhB,SAAS;IACTkC,gBAAgB;IAChBC,WAAW,EAAE6C,WAAW,CAAC3F,GAAG,CAAC,uBAAuB,CAAC;IACrD+C;EACF,CAAC,CAAC;EAEF,MAAMqD,iBAAiB,GAAG5D,WAAW,KAAK,KAAK;EAC/C,MAAMf,OAAO,GAAG4E,KAAK,CAACC,IAAI,CAACX,WAAW,CAAC,CACpCY,GAAG,CAACzF,UAAU,IAAI;IACjB,IACEA,UAAU,KAAK,4BAA4B,IAC3CA,UAAU,KAAK,2BAA2B,IAC1CA,UAAU,KAAK,sCAAsC,EACrD;MACA,OAAO,CACLD,SAAS,CAACC,UAAU,CAAC,EACrB;QACEiE,KAAK,EAAEA,KAAK,GACR,qFAAqF,GACrF;MACN,CAAC,CACF;IACH;IACA,OAAO,CACLlE,SAAS,CAACC,UAAU,CAAC,EACrB;MAAEkE,IAAI;MAAED,KAAK;MAAEvC,WAAW,EAAE4D;IAAkB,CAAC,CAChD;EACH,CAAC,CAAC,CACDI,MAAM,CAACxD,eAAe,CAAC;EAE1B,IAAID,KAAK,EAAE;IACTV,OAAO,CAACoE,GAAG,CAAC,mCAAmC,CAAC;IAChDpE,OAAO,CAACoE,GAAG,CAAC,kBAAkB,CAAC;IAC/BpE,OAAO,CAACoE,GAAG,CAACC,IAAI,CAACC,SAAS,CAAC,IAAAC,yCAAe,EAACxH,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC9DiD,OAAO,CAACoE,GAAG,CAAE,8BAA6B5E,OAAO,CAACuB,QAAQ,EAAG,EAAC,CAAC;IAC/Df,OAAO,CAACoE,GAAG,CAAC,kBAAkB,CAAC;IAC/Bd,WAAW,CAACkB,OAAO,CAAC/F,UAAU,IAAI;MAChC,IAAAgG,gBAAS,EAAChG,UAAU,EAAE1B,OAAO,EAAEG,UAAU,CAAC;IAC5C,CAAC,CAAC;IAEF,IAAI,CAACiD,WAAW,EAAE;MAChBH,OAAO,CAACoE,GAAG,CACT,yFAAyF,CAC1F;IACH;EACF;EAEA,OAAO;IAAEhF;EAAQ,CAAC;AACpB,CAAC,CAAC;AAAA"}preset-env/lib/shipped-proposals.js000066600000002626150432031470013425 0ustar00"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.proposalSyntaxPlugins = exports.proposalPlugins = exports.pluginSyntaxMap = void 0; const proposalPlugins = new Set(); exports.proposalPlugins = proposalPlugins; const proposalSyntaxPlugins = ["syntax-import-assertions"]; exports.proposalSyntaxPlugins = proposalSyntaxPlugins; const pluginSyntaxObject = { "transform-async-generator-functions": "syntax-async-generators", "transform-class-properties": "syntax-class-properties", "transform-class-static-block": "syntax-class-static-block", "transform-json-strings": "syntax-json-strings", "transform-nullish-coalescing-operator": "syntax-nullish-coalescing-operator", "transform-numeric-separator": "syntax-numeric-separator", "transform-object-rest-spread": "syntax-object-rest-spread", "transform-optional-catch-binding": "syntax-optional-catch-binding", "transform-optional-chaining": "syntax-optional-chaining", "transform-private-methods": "syntax-class-properties", "transform-private-property-in-object": "syntax-private-property-in-object", "transform-unicode-property-regex": null }; const pluginSyntaxEntries = Object.keys(pluginSyntaxObject).map(function (key) { return [key, pluginSyntaxObject[key]]; }); const pluginSyntaxMap = new Map(pluginSyntaxEntries); exports.pluginSyntaxMap = pluginSyntaxMap; //# sourceMappingURL=shipped-proposals.js.map preset-env/lib/options.js000066600000001762150432031470011444 0ustar00"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.UseBuiltInsOption = exports.TopLevelOptions = exports.ModulesOption = void 0; const TopLevelOptions = { bugfixes: "bugfixes", configPath: "configPath", corejs: "corejs", debug: "debug", exclude: "exclude", forceAllTransforms: "forceAllTransforms", ignoreBrowserslistConfig: "ignoreBrowserslistConfig", include: "include", loose: "loose", modules: "modules", shippedProposals: "shippedProposals", spec: "spec", targets: "targets", useBuiltIns: "useBuiltIns", browserslistEnv: "browserslistEnv" }; exports.TopLevelOptions = TopLevelOptions; const ModulesOption = { false: false, auto: "auto", amd: "amd", commonjs: "commonjs", cjs: "cjs", systemjs: "systemjs", umd: "umd" }; exports.ModulesOption = ModulesOption; const UseBuiltInsOption = { false: false, entry: "entry", usage: "usage" }; exports.UseBuiltInsOption = UseBuiltInsOption; //# sourceMappingURL=options.js.map preset-env/lib/plugins-compat-data.js000066600000001757150432031470013626 0ustar00"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.pluginsBugfixes = exports.plugins = exports.overlappingPlugins = void 0; var _plugins = require("@babel/compat-data/plugins"); var _pluginBugfixes = require("@babel/compat-data/plugin-bugfixes"); var _overlappingPlugins = require("@babel/compat-data/overlapping-plugins"); var _availablePlugins = require("./available-plugins"); const keys = Object.keys; const plugins = filterAvailable(_plugins); exports.plugins = plugins; const pluginsBugfixes = filterAvailable(_pluginBugfixes); exports.pluginsBugfixes = pluginsBugfixes; const overlappingPlugins = filterAvailable(_overlappingPlugins); exports.overlappingPlugins = overlappingPlugins; function filterAvailable(data) { const result = {}; for (const plugin of keys(data)) { if (Object.hasOwnProperty.call(_availablePlugins.default, plugin)) { result[plugin] = data[plugin]; } } return result; } //# sourceMappingURL=plugins-compat-data.js.map preset-env/lib/normalize-options.js.map000066600000037710150432031470014220 0ustar00{"version":3,"names":["corejs2DefaultWebIncludes","v","OptionValidator","allPluginsList","Object","keys","pluginsList","modulePlugins","moduleTransformations","map","m","getValidIncludesAndExcludes","type","corejs","Array","from","Set","corejs2Polyfills","corejs3Polyfills","flatMap","array","fn","prototype","concat","apply","normalizePluginName","plugin","replace","expandIncludesAndExcludes","filterList","length","filterableItems","invalidFilters","selectedPlugins","filter","re","RegExp","e","push","items","item","test","invariant","join","checkDuplicateIncludeExcludes","include","exclude","duplicates","opt","indexOf","normalizeTargets","targets","isArray","browsers","validateModulesOption","modulesOpt","ModulesOption","auto","toString","false","validateUseBuiltInsOption","builtInsOpt","UseBuiltInsOption","normalizeCoreJSOption","useBuiltIns","proposals","rawVersion","undefined","console","warn","version","Boolean","semver","coerce","String","major","RangeError","normalizeOptions","opts","validateTopLevelOptions","TopLevelOptions","bugfixes","validateBooleanOption","configPath","validateStringOption","process","cwd","debug","forceAllTransforms","ignoreBrowserslistConfig","loose","modules","shippedProposals","spec","browserslistEnv"],"sources":["../src/normalize-options.ts"],"sourcesContent":["import semver, { type SemVer } from \"semver\";\nimport corejs2Polyfills from \"@babel/compat-data/corejs2-built-ins\";\n// @ts-expect-error Fixme: TS can not infer types from ../data/core-js-compat.js\n// but we can't import core-js-compat/data.json because JSON imports do\n// not work on Node 14\nimport corejs3Polyfills from \"../data/core-js-compat\";\nimport { plugins as pluginsList } from \"./plugins-compat-data\";\nimport moduleTransformations from \"./module-transformations\";\nimport { TopLevelOptions, ModulesOption, UseBuiltInsOption } from \"./options\";\nimport { OptionValidator } from \"@babel/helper-validator-option\";\n\nconst corejs2DefaultWebIncludes = [\n \"web.timers\",\n \"web.immediate\",\n \"web.dom.iterable\",\n];\n\nimport type {\n BuiltInsOption,\n CorejsOption,\n ModuleOption,\n Options,\n PluginListOption,\n} from \"./types\";\n\ndeclare const PACKAGE_JSON: { name: string; version: string };\n\nconst v = new OptionValidator(PACKAGE_JSON.name);\n\nconst allPluginsList = Object.keys(pluginsList);\n\n// NOTE: Since module plugins are handled separately compared to other plugins (via the \"modules\" option) it\n// should only be possible to exclude and not include module plugins, otherwise it's possible that preset-env\n// will add a module plugin twice.\nconst modulePlugins = [\n \"transform-dynamic-import\",\n ...Object.keys(moduleTransformations).map(m => moduleTransformations[m]),\n];\n\nconst getValidIncludesAndExcludes = (\n type: \"include\" | \"exclude\",\n corejs: number | false,\n) =>\n Array.from(\n new Set([\n ...allPluginsList,\n ...(type === \"exclude\" ? modulePlugins : []),\n ...(corejs\n ? corejs == 2\n ? [...Object.keys(corejs2Polyfills), ...corejs2DefaultWebIncludes]\n : Object.keys(corejs3Polyfills)\n : []),\n ]),\n );\n\nfunction flatMap(array: Array, fn: (item: T) => Array): Array {\n return Array.prototype.concat.apply([], array.map(fn));\n}\n\nexport const normalizePluginName = (plugin: string) =>\n plugin.replace(/^(@babel\\/|babel-)(plugin-)?/, \"\");\n\nconst expandIncludesAndExcludes = (\n filterList: PluginListOption = [],\n type: \"include\" | \"exclude\",\n corejs: number | false,\n) => {\n if (filterList.length === 0) return [];\n\n const filterableItems = getValidIncludesAndExcludes(type, corejs);\n\n const invalidFilters: PluginListOption = [];\n const selectedPlugins = flatMap(filterList, filter => {\n let re: RegExp;\n if (typeof filter === \"string\") {\n try {\n re = new RegExp(`^${normalizePluginName(filter)}$`);\n } catch (e) {\n invalidFilters.push(filter);\n return [];\n }\n } else {\n re = filter;\n }\n const items = filterableItems.filter(\n item =>\n re.test(item) ||\n // For backwards compatibility, we also support matching against the\n // proposal- name.\n // TODO(Babel 8): Remove this.\n re.test(item.replace(/^transform-/, \"proposal-\")),\n );\n if (items.length === 0) invalidFilters.push(filter);\n return items;\n });\n\n v.invariant(\n invalidFilters.length === 0,\n `The plugins/built-ins '${invalidFilters.join(\n \", \",\n )}' passed to the '${type}' option are not\n valid. Please check data/[plugin-features|built-in-features].js in babel-preset-env`,\n );\n\n return selectedPlugins;\n};\n\nexport const checkDuplicateIncludeExcludes = (\n include: Array = [],\n exclude: Array = [],\n) => {\n const duplicates = include.filter(opt => exclude.indexOf(opt) >= 0);\n\n v.invariant(\n duplicates.length === 0,\n `The plugins/built-ins '${duplicates.join(\n \", \",\n )}' were found in both the \"include\" and\n \"exclude\" options.`,\n );\n};\n\nconst normalizeTargets = (\n targets: string | string[] | Options[\"targets\"],\n): Options[\"targets\"] => {\n // TODO: Allow to use only query or strings as a targets from next breaking change.\n if (typeof targets === \"string\" || Array.isArray(targets)) {\n return { browsers: targets };\n }\n return { ...targets };\n};\n\nexport const validateModulesOption = (\n modulesOpt: ModuleOption = ModulesOption.auto,\n) => {\n v.invariant(\n // @ts-expect-error we have provided fallback for undefined keys\n ModulesOption[modulesOpt.toString()] || modulesOpt === ModulesOption.false,\n `The 'modules' option must be one of \\n` +\n ` - 'false' to indicate no module processing\\n` +\n ` - a specific module type: 'commonjs', 'amd', 'umd', 'systemjs'` +\n ` - 'auto' (default) which will automatically select 'false' if the current\\n` +\n ` process is known to support ES module syntax, or \"commonjs\" otherwise\\n`,\n );\n\n return modulesOpt;\n};\n\nexport const validateUseBuiltInsOption = (\n builtInsOpt: BuiltInsOption = false,\n) => {\n v.invariant(\n // @ts-expect-error we have provided fallback for undefined keys\n UseBuiltInsOption[builtInsOpt.toString()] ||\n builtInsOpt === UseBuiltInsOption.false,\n `The 'useBuiltIns' option must be either\n 'false' (default) to indicate no polyfill,\n '\"entry\"' to indicate replacing the entry polyfill, or\n '\"usage\"' to import only used polyfills per file`,\n );\n\n return builtInsOpt;\n};\n\nexport type NormalizedCorejsOption = {\n proposals: boolean;\n version: SemVer | null | false;\n};\n\nexport function normalizeCoreJSOption(\n corejs: CorejsOption | undefined | null,\n useBuiltIns: BuiltInsOption,\n): NormalizedCorejsOption {\n let proposals = false;\n let rawVersion;\n\n if (useBuiltIns && corejs === undefined) {\n rawVersion = 2;\n console.warn(\n \"\\nWARNING (@babel/preset-env): We noticed you're using the `useBuiltIns` option without declaring a \" +\n \"core-js version. Currently, we assume version 2.x when no version \" +\n \"is passed. Since this default version will likely change in future \" +\n \"versions of Babel, we recommend explicitly setting the core-js version \" +\n \"you are using via the `corejs` option.\\n\" +\n \"\\nYou should also be sure that the version you pass to the `corejs` \" +\n \"option matches the version specified in your `package.json`'s \" +\n \"`dependencies` section. If it doesn't, you need to run one of the \" +\n \"following commands:\\n\\n\" +\n \" npm install --save core-js@2 npm install --save core-js@3\\n\" +\n \" yarn add core-js@2 yarn add core-js@3\\n\\n\" +\n \"More info about useBuiltIns: https://babeljs.io/docs/en/babel-preset-env#usebuiltins\\n\" +\n \"More info about core-js: https://babeljs.io/docs/en/babel-preset-env#corejs\",\n );\n } else if (typeof corejs === \"object\" && corejs !== null) {\n rawVersion = corejs.version;\n proposals = Boolean(corejs.proposals);\n } else {\n rawVersion = corejs;\n }\n\n const version = rawVersion ? semver.coerce(String(rawVersion)) : false;\n\n if (!useBuiltIns && version) {\n console.warn(\n \"\\nWARNING (@babel/preset-env): The `corejs` option only has an effect when the `useBuiltIns` option is not `false`\\n\",\n );\n }\n\n if (useBuiltIns && (!version || version.major < 2 || version.major > 3)) {\n throw new RangeError(\n \"Invalid Option: The version passed to `corejs` is invalid. Currently, \" +\n \"only core-js@2 and core-js@3 are supported.\",\n );\n }\n\n return { version, proposals };\n}\n\nexport default function normalizeOptions(opts: Options) {\n v.validateTopLevelOptions(opts, TopLevelOptions);\n\n const useBuiltIns = validateUseBuiltInsOption(opts.useBuiltIns);\n\n const corejs = normalizeCoreJSOption(opts.corejs, useBuiltIns);\n\n const include = expandIncludesAndExcludes(\n opts.include,\n TopLevelOptions.include,\n !!corejs.version && corejs.version.major,\n );\n\n const exclude = expandIncludesAndExcludes(\n opts.exclude,\n TopLevelOptions.exclude,\n !!corejs.version && corejs.version.major,\n );\n\n checkDuplicateIncludeExcludes(include, exclude);\n\n return {\n bugfixes: v.validateBooleanOption(\n TopLevelOptions.bugfixes,\n opts.bugfixes,\n process.env.BABEL_8_BREAKING ? true : false,\n ),\n configPath: v.validateStringOption(\n TopLevelOptions.configPath,\n opts.configPath,\n process.cwd(),\n ),\n corejs,\n debug: v.validateBooleanOption(TopLevelOptions.debug, opts.debug, false),\n include,\n exclude,\n forceAllTransforms: v.validateBooleanOption(\n TopLevelOptions.forceAllTransforms,\n opts.forceAllTransforms,\n false,\n ),\n ignoreBrowserslistConfig: v.validateBooleanOption(\n TopLevelOptions.ignoreBrowserslistConfig,\n opts.ignoreBrowserslistConfig,\n false,\n ),\n loose: v.validateBooleanOption(TopLevelOptions.loose, opts.loose),\n modules: validateModulesOption(opts.modules),\n shippedProposals: v.validateBooleanOption(\n TopLevelOptions.shippedProposals,\n opts.shippedProposals,\n false,\n ),\n spec: v.validateBooleanOption(TopLevelOptions.spec, opts.spec, false),\n targets: normalizeTargets(opts.targets),\n useBuiltIns: useBuiltIns,\n browserslistEnv: v.validateStringOption(\n TopLevelOptions.browserslistEnv,\n opts.browserslistEnv,\n ),\n };\n}\n"],"mappings":"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"}preset-env/lib/debug.js000066600000002206150432031470011031 0ustar00"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.logPlugin = void 0; var _helperCompilationTargets = require("@babel/helper-compilation-targets"); var _plugins = require("@babel/compat-data/plugins"); const logPlugin = (item, targetVersions, list) => { const filteredList = (0, _helperCompilationTargets.getInclusionReasons)(item, targetVersions, list); const support = list[item]; if (item.startsWith("transform-")) { const proposalName = `proposal-${item.slice(10)}`; if (proposalName === "proposal-dynamic-import" || Object.prototype.hasOwnProperty.call(_plugins, proposalName)) { item = proposalName; } } if (!support) { console.log(` ${item}`); return; } let formattedTargets = `{`; let first = true; for (const target of Object.keys(filteredList)) { if (!first) formattedTargets += `,`; first = false; formattedTargets += ` ${target}`; if (support[target]) formattedTargets += ` < ${support[target]}`; } formattedTargets += ` }`; console.log(` ${item} ${formattedTargets}`); }; exports.logPlugin = logPlugin; //# sourceMappingURL=debug.js.map preset-env/lib/filter-items.js000066600000002041150432031470012344 0ustar00"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.addProposalSyntaxPlugins = addProposalSyntaxPlugins; exports.removeUnnecessaryItems = removeUnnecessaryItems; exports.removeUnsupportedItems = removeUnsupportedItems; var _semver = require("semver"); var _availablePlugins = require("./available-plugins"); const has = Function.call.bind(Object.hasOwnProperty); function addProposalSyntaxPlugins(items, proposalSyntaxPlugins) { proposalSyntaxPlugins.forEach(plugin => { items.add(plugin); }); } function removeUnnecessaryItems(items, overlapping) { items.forEach(item => { var _overlapping$item; (_overlapping$item = overlapping[item]) == null ? void 0 : _overlapping$item.forEach(name => items.delete(name)); }); } function removeUnsupportedItems(items, babelVersion) { items.forEach(item => { if (has(_availablePlugins.minVersions, item) && _semver.lt(babelVersion, _availablePlugins.minVersions[item])) { items.delete(item); } }); } //# sourceMappingURL=filter-items.js.map preset-env/lib/options.js.map000066600000003523150432031470012215 0ustar00{"version":3,"names":["TopLevelOptions","bugfixes","configPath","corejs","debug","exclude","forceAllTransforms","ignoreBrowserslistConfig","include","loose","modules","shippedProposals","spec","targets","useBuiltIns","browserslistEnv","ModulesOption","false","auto","amd","commonjs","cjs","systemjs","umd","UseBuiltInsOption","entry","usage"],"sources":["../src/options.ts"],"sourcesContent":["export const TopLevelOptions = {\n bugfixes: \"bugfixes\",\n configPath: \"configPath\",\n corejs: \"corejs\",\n debug: \"debug\",\n exclude: \"exclude\",\n forceAllTransforms: \"forceAllTransforms\",\n ignoreBrowserslistConfig: \"ignoreBrowserslistConfig\",\n include: \"include\",\n loose: \"loose\",\n modules: \"modules\",\n shippedProposals: \"shippedProposals\",\n spec: \"spec\",\n targets: \"targets\",\n useBuiltIns: \"useBuiltIns\",\n browserslistEnv: \"browserslistEnv\",\n} as const;\n\nexport const ModulesOption = {\n false: false,\n auto: \"auto\",\n amd: \"amd\",\n commonjs: \"commonjs\",\n cjs: \"cjs\",\n systemjs: \"systemjs\",\n umd: \"umd\",\n} as const;\n\nexport const UseBuiltInsOption = {\n false: false,\n entry: \"entry\",\n usage: \"usage\",\n} as const;\n"],"mappings":";;;;;;AAAO,MAAMA,eAAe,GAAG;EAC7BC,QAAQ,EAAE,UAAU;EACpBC,UAAU,EAAE,YAAY;EACxBC,MAAM,EAAE,QAAQ;EAChBC,KAAK,EAAE,OAAO;EACdC,OAAO,EAAE,SAAS;EAClBC,kBAAkB,EAAE,oBAAoB;EACxCC,wBAAwB,EAAE,0BAA0B;EACpDC,OAAO,EAAE,SAAS;EAClBC,KAAK,EAAE,OAAO;EACdC,OAAO,EAAE,SAAS;EAClBC,gBAAgB,EAAE,kBAAkB;EACpCC,IAAI,EAAE,MAAM;EACZC,OAAO,EAAE,SAAS;EAClBC,WAAW,EAAE,aAAa;EAC1BC,eAAe,EAAE;AACnB,CAAU;AAAC;AAEJ,MAAMC,aAAa,GAAG;EAC3BC,KAAK,EAAE,KAAK;EACZC,IAAI,EAAE,MAAM;EACZC,GAAG,EAAE,KAAK;EACVC,QAAQ,EAAE,UAAU;EACpBC,GAAG,EAAE,KAAK;EACVC,QAAQ,EAAE,UAAU;EACpBC,GAAG,EAAE;AACP,CAAU;AAAC;AAEJ,MAAMC,iBAAiB,GAAG;EAC/BP,KAAK,EAAE,KAAK;EACZQ,KAAK,EAAE,OAAO;EACdC,KAAK,EAAE;AACT,CAAU;AAAC"}preset-env/lib/module-transformations.js000066600000000654150432031470014464 0ustar00"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _default = { auto: "transform-modules-commonjs", amd: "transform-modules-amd", commonjs: "transform-modules-commonjs", cjs: "transform-modules-commonjs", systemjs: "transform-modules-systemjs", umd: "transform-modules-umd" }; exports.default = _default; //# sourceMappingURL=module-transformations.js.map preset-env/lib/available-plugins.js000066600000030453150432031470013347 0ustar00"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.minVersions = exports.default = void 0; var _pluginSyntaxAsyncGenerators = require("@babel/plugin-syntax-async-generators"); var _pluginSyntaxClassProperties = require("@babel/plugin-syntax-class-properties"); var _pluginSyntaxClassStaticBlock = require("@babel/plugin-syntax-class-static-block"); var _pluginSyntaxDynamicImport = require("@babel/plugin-syntax-dynamic-import"); var _pluginSyntaxExportNamespaceFrom = require("@babel/plugin-syntax-export-namespace-from"); var _pluginSyntaxImportAssertions = require("@babel/plugin-syntax-import-assertions"); var _pluginSyntaxJsonStrings = require("@babel/plugin-syntax-json-strings"); var _pluginSyntaxLogicalAssignmentOperators = require("@babel/plugin-syntax-logical-assignment-operators"); var _pluginSyntaxNullishCoalescingOperator = require("@babel/plugin-syntax-nullish-coalescing-operator"); var _pluginSyntaxNumericSeparator = require("@babel/plugin-syntax-numeric-separator"); var _pluginSyntaxObjectRestSpread = require("@babel/plugin-syntax-object-rest-spread"); var _pluginSyntaxOptionalCatchBinding = require("@babel/plugin-syntax-optional-catch-binding"); var _pluginSyntaxOptionalChaining = require("@babel/plugin-syntax-optional-chaining"); var _pluginSyntaxPrivatePropertyInObject = require("@babel/plugin-syntax-private-property-in-object"); var _pluginSyntaxTopLevelAwait = require("@babel/plugin-syntax-top-level-await"); var _pluginProposalAsyncGeneratorFunctions = require("@babel/plugin-proposal-async-generator-functions"); var _pluginProposalClassProperties = require("@babel/plugin-proposal-class-properties"); var _pluginProposalClassStaticBlock = require("@babel/plugin-proposal-class-static-block"); var _pluginProposalDynamicImport = require("@babel/plugin-proposal-dynamic-import"); var _pluginProposalExportNamespaceFrom = require("@babel/plugin-proposal-export-namespace-from"); var _pluginProposalJsonStrings = require("@babel/plugin-proposal-json-strings"); var _pluginProposalLogicalAssignmentOperators = require("@babel/plugin-proposal-logical-assignment-operators"); var _pluginProposalNullishCoalescingOperator = require("@babel/plugin-proposal-nullish-coalescing-operator"); var _pluginProposalNumericSeparator = require("@babel/plugin-proposal-numeric-separator"); var _pluginProposalObjectRestSpread = require("@babel/plugin-proposal-object-rest-spread"); var _pluginProposalOptionalCatchBinding = require("@babel/plugin-proposal-optional-catch-binding"); var _pluginProposalOptionalChaining = require("@babel/plugin-proposal-optional-chaining"); var _pluginProposalPrivateMethods = require("@babel/plugin-proposal-private-methods"); var _pluginProposalPrivatePropertyInObject = require("@babel/plugin-proposal-private-property-in-object"); var _pluginProposalUnicodePropertyRegex = require("@babel/plugin-proposal-unicode-property-regex"); var _pluginTransformAsyncToGenerator = require("@babel/plugin-transform-async-to-generator"); var _pluginTransformArrowFunctions = require("@babel/plugin-transform-arrow-functions"); var _pluginTransformBlockScopedFunctions = require("@babel/plugin-transform-block-scoped-functions"); var _pluginTransformBlockScoping = require("@babel/plugin-transform-block-scoping"); var _pluginTransformClasses = require("@babel/plugin-transform-classes"); var _pluginTransformComputedProperties = require("@babel/plugin-transform-computed-properties"); var _pluginTransformDestructuring = require("@babel/plugin-transform-destructuring"); var _pluginTransformDotallRegex = require("@babel/plugin-transform-dotall-regex"); var _pluginTransformDuplicateKeys = require("@babel/plugin-transform-duplicate-keys"); var _pluginTransformExponentiationOperator = require("@babel/plugin-transform-exponentiation-operator"); var _pluginTransformForOf = require("@babel/plugin-transform-for-of"); var _pluginTransformFunctionName = require("@babel/plugin-transform-function-name"); var _pluginTransformLiterals = require("@babel/plugin-transform-literals"); var _pluginTransformMemberExpressionLiterals = require("@babel/plugin-transform-member-expression-literals"); var _pluginTransformModulesAmd = require("@babel/plugin-transform-modules-amd"); var _pluginTransformModulesCommonjs = require("@babel/plugin-transform-modules-commonjs"); var _pluginTransformModulesSystemjs = require("@babel/plugin-transform-modules-systemjs"); var _pluginTransformModulesUmd = require("@babel/plugin-transform-modules-umd"); var _pluginTransformNamedCapturingGroupsRegex = require("@babel/plugin-transform-named-capturing-groups-regex"); var _pluginTransformNewTarget = require("@babel/plugin-transform-new-target"); var _pluginTransformObjectSuper = require("@babel/plugin-transform-object-super"); var _pluginTransformParameters = require("@babel/plugin-transform-parameters"); var _pluginTransformPropertyLiterals = require("@babel/plugin-transform-property-literals"); var _pluginTransformRegenerator = require("@babel/plugin-transform-regenerator"); var _pluginTransformReservedWords = require("@babel/plugin-transform-reserved-words"); var _pluginTransformShorthandProperties = require("@babel/plugin-transform-shorthand-properties"); var _pluginTransformSpread = require("@babel/plugin-transform-spread"); var _pluginTransformStickyRegex = require("@babel/plugin-transform-sticky-regex"); var _pluginTransformTemplateLiterals = require("@babel/plugin-transform-template-literals"); var _pluginTransformTypeofSymbol = require("@babel/plugin-transform-typeof-symbol"); var _pluginTransformUnicodeEscapes = require("@babel/plugin-transform-unicode-escapes"); var _pluginTransformUnicodeRegex = require("@babel/plugin-transform-unicode-regex"); var _transformAsyncArrowsInClass = require("@babel/preset-modules/lib/plugins/transform-async-arrows-in-class"); var _transformEdgeDefaultParameters = require("@babel/preset-modules/lib/plugins/transform-edge-default-parameters"); var _transformEdgeFunctionName = require("@babel/preset-modules/lib/plugins/transform-edge-function-name"); var _transformTaggedTemplateCaching = require("@babel/preset-modules/lib/plugins/transform-tagged-template-caching"); var _transformSafariBlockShadowing = require("@babel/preset-modules/lib/plugins/transform-safari-block-shadowing"); var _transformSafariForShadowing = require("@babel/preset-modules/lib/plugins/transform-safari-for-shadowing"); var _pluginBugfixSafariIdDestructuringCollisionInFunctionExpression = require("@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression"); var _pluginBugfixV8SpreadParametersInOptionalChaining = require("@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining"); var _default = { "bugfix/transform-async-arrows-in-class": () => _transformAsyncArrowsInClass, "bugfix/transform-edge-default-parameters": () => _transformEdgeDefaultParameters, "bugfix/transform-edge-function-name": () => _transformEdgeFunctionName, "bugfix/transform-safari-block-shadowing": () => _transformSafariBlockShadowing, "bugfix/transform-safari-for-shadowing": () => _transformSafariForShadowing, "bugfix/transform-safari-id-destructuring-collision-in-function-expression": () => _pluginBugfixSafariIdDestructuringCollisionInFunctionExpression.default, "bugfix/transform-tagged-template-caching": () => _transformTaggedTemplateCaching, "bugfix/transform-v8-spread-parameters-in-optional-chaining": () => _pluginBugfixV8SpreadParametersInOptionalChaining.default, "syntax-async-generators": () => _pluginSyntaxAsyncGenerators, "syntax-class-properties": () => _pluginSyntaxClassProperties, "syntax-class-static-block": () => _pluginSyntaxClassStaticBlock, "syntax-dynamic-import": () => _pluginSyntaxDynamicImport, "syntax-export-namespace-from": () => _pluginSyntaxExportNamespaceFrom, "syntax-import-assertions": () => _pluginSyntaxImportAssertions.default, "syntax-json-strings": () => _pluginSyntaxJsonStrings, "syntax-logical-assignment-operators": () => _pluginSyntaxLogicalAssignmentOperators, "syntax-nullish-coalescing-operator": () => _pluginSyntaxNullishCoalescingOperator, "syntax-numeric-separator": () => _pluginSyntaxNumericSeparator, "syntax-object-rest-spread": () => _pluginSyntaxObjectRestSpread, "syntax-optional-catch-binding": () => _pluginSyntaxOptionalCatchBinding, "syntax-optional-chaining": () => _pluginSyntaxOptionalChaining, "syntax-private-property-in-object": () => _pluginSyntaxPrivatePropertyInObject, "syntax-top-level-await": () => _pluginSyntaxTopLevelAwait, "transform-arrow-functions": () => _pluginTransformArrowFunctions.default, "transform-async-generator-functions": () => _pluginProposalAsyncGeneratorFunctions.default, "transform-async-to-generator": () => _pluginTransformAsyncToGenerator.default, "transform-block-scoped-functions": () => _pluginTransformBlockScopedFunctions.default, "transform-block-scoping": () => _pluginTransformBlockScoping.default, "transform-class-properties": () => _pluginProposalClassProperties.default, "transform-class-static-block": () => _pluginProposalClassStaticBlock.default, "transform-classes": () => _pluginTransformClasses.default, "transform-computed-properties": () => _pluginTransformComputedProperties.default, "transform-destructuring": () => _pluginTransformDestructuring.default, "transform-dotall-regex": () => _pluginTransformDotallRegex.default, "transform-duplicate-keys": () => _pluginTransformDuplicateKeys.default, "transform-dynamic-import": () => _pluginProposalDynamicImport.default, "transform-exponentiation-operator": () => _pluginTransformExponentiationOperator.default, "transform-export-namespace-from": () => _pluginProposalExportNamespaceFrom.default, "transform-for-of": () => _pluginTransformForOf.default, "transform-function-name": () => _pluginTransformFunctionName.default, "transform-json-strings": () => _pluginProposalJsonStrings.default, "transform-literals": () => _pluginTransformLiterals.default, "transform-logical-assignment-operators": () => _pluginProposalLogicalAssignmentOperators.default, "transform-member-expression-literals": () => _pluginTransformMemberExpressionLiterals.default, "transform-modules-amd": () => _pluginTransformModulesAmd.default, "transform-modules-commonjs": () => _pluginTransformModulesCommonjs.default, "transform-modules-systemjs": () => _pluginTransformModulesSystemjs.default, "transform-modules-umd": () => _pluginTransformModulesUmd.default, "transform-named-capturing-groups-regex": () => _pluginTransformNamedCapturingGroupsRegex.default, "transform-new-target": () => _pluginTransformNewTarget.default, "transform-nullish-coalescing-operator": () => _pluginProposalNullishCoalescingOperator.default, "transform-numeric-separator": () => _pluginProposalNumericSeparator.default, "transform-object-rest-spread": () => _pluginProposalObjectRestSpread.default, "transform-object-super": () => _pluginTransformObjectSuper.default, "transform-optional-catch-binding": () => _pluginProposalOptionalCatchBinding.default, "transform-optional-chaining": () => _pluginProposalOptionalChaining.default, "transform-parameters": () => _pluginTransformParameters.default, "transform-private-methods": () => _pluginProposalPrivateMethods.default, "transform-private-property-in-object": () => _pluginProposalPrivatePropertyInObject.default, "transform-property-literals": () => _pluginTransformPropertyLiterals.default, "transform-regenerator": () => _pluginTransformRegenerator.default, "transform-reserved-words": () => _pluginTransformReservedWords.default, "transform-shorthand-properties": () => _pluginTransformShorthandProperties.default, "transform-spread": () => _pluginTransformSpread.default, "transform-sticky-regex": () => _pluginTransformStickyRegex.default, "transform-template-literals": () => _pluginTransformTemplateLiterals.default, "transform-typeof-symbol": () => _pluginTransformTypeofSymbol.default, "transform-unicode-escapes": () => _pluginTransformUnicodeEscapes.default, "transform-unicode-property-regex": () => _pluginProposalUnicodePropertyRegex.default, "transform-unicode-regex": () => _pluginTransformUnicodeRegex.default }; exports.default = _default; const minVersions = { "bugfix/transform-safari-id-destructuring-collision-in-function-expression": "7.16.0", "transform-class-static-block": "7.12.0", "transform-private-property-in-object": "7.10.0" }; exports.minVersions = minVersions; //# sourceMappingURL=available-plugins.js.map preset-env/lib/available-plugins.js.map000066600000037174150432031470014132 0ustar00{"version":3,"names":["bugfixAsyncArrowsInClass","bugfixEdgeDefaultParameters","bugfixEdgeFunctionName","bugfixSafariBlockShadowing","bugfixSafariForShadowing","bugfixSafariIdDestructuringCollisionInFunctionExpression","bugfixTaggedTemplateCaching","bugfixV8SpreadParametersInOptionalChaining","syntaxAsyncGenerators","syntaxClassProperties","syntaxClassStaticBlock","syntaxDynamicImport","syntaxExportNamespaceFrom","syntaxImportAssertions","syntaxJsonStrings","syntaxLogicalAssignmentOperators","syntaxNullishCoalescingOperator","syntaxNumericSeparator","syntaxObjectRestSpread","syntaxOptionalCatchBinding","syntaxOptionalChaining","syntaxPrivatePropertyInObject","syntaxTopLevelAwait","transformArrowFunctions","proposalAsyncGeneratorFunctions","transformAsyncToGenerator","transformBlockScopedFunctions","transformBlockScoping","proposalClassProperties","proposalClassStaticBlock","transformClasses","transformComputedProperties","transformDestructuring","transformDotallRegex","transformDuplicateKeys","proposalDynamicImport","transformExponentialOperator","proposalExportNamespaceFrom","transformForOf","transformFunctionName","proposalJsonStrings","transformLiterals","proposalLogicalAssignmentOperators","transformMemberExpressionLiterals","transformModulesAmd","transformModulesCommonjs","transformModulesSystemjs","transformModulesUmd","transformNamedCapturingGroupsRegex","transformNewTarget","proposalNullishCoalescingOperator","proposalNumericSeparator","proposalObjectRestSpread","transformObjectSuper","proposalOptionalCatchBinding","proposalOptionalChaining","transformParameters","proposalPrivateMethods","proposalPrivatePropertyInObject","transformPropertyLiterals","transformRegenerator","transformReservedWords","transformShorthandProperties","transformSpread","transformStickyRegex","transformTemplateLiterals","transformTypeofSymbol","transformUnicodeEscapes","proposalUnicodePropertyRegex","transformUnicodeRegex","minVersions"],"sources":["../src/available-plugins.ts"],"sourcesContent":["/* eslint sort-keys: \"error\" */\n\nimport syntaxAsyncGenerators from \"@babel/plugin-syntax-async-generators\";\nimport syntaxClassProperties from \"@babel/plugin-syntax-class-properties\";\nimport syntaxClassStaticBlock from \"@babel/plugin-syntax-class-static-block\";\nimport syntaxDynamicImport from \"@babel/plugin-syntax-dynamic-import\";\nimport syntaxExportNamespaceFrom from \"@babel/plugin-syntax-export-namespace-from\";\nimport syntaxImportAssertions from \"@babel/plugin-syntax-import-assertions\";\nimport syntaxJsonStrings from \"@babel/plugin-syntax-json-strings\";\nimport syntaxLogicalAssignmentOperators from \"@babel/plugin-syntax-logical-assignment-operators\";\nimport syntaxNullishCoalescingOperator from \"@babel/plugin-syntax-nullish-coalescing-operator\";\nimport syntaxNumericSeparator from \"@babel/plugin-syntax-numeric-separator\";\nimport syntaxObjectRestSpread from \"@babel/plugin-syntax-object-rest-spread\";\nimport syntaxOptionalCatchBinding from \"@babel/plugin-syntax-optional-catch-binding\";\nimport syntaxOptionalChaining from \"@babel/plugin-syntax-optional-chaining\";\nimport syntaxPrivatePropertyInObject from \"@babel/plugin-syntax-private-property-in-object\";\nimport syntaxTopLevelAwait from \"@babel/plugin-syntax-top-level-await\";\nimport proposalAsyncGeneratorFunctions from \"@babel/plugin-proposal-async-generator-functions\";\nimport proposalClassProperties from \"@babel/plugin-proposal-class-properties\";\nimport proposalClassStaticBlock from \"@babel/plugin-proposal-class-static-block\";\nimport proposalDynamicImport from \"@babel/plugin-proposal-dynamic-import\";\nimport proposalExportNamespaceFrom from \"@babel/plugin-proposal-export-namespace-from\";\nimport proposalJsonStrings from \"@babel/plugin-proposal-json-strings\";\nimport proposalLogicalAssignmentOperators from \"@babel/plugin-proposal-logical-assignment-operators\";\nimport proposalNullishCoalescingOperator from \"@babel/plugin-proposal-nullish-coalescing-operator\";\nimport proposalNumericSeparator from \"@babel/plugin-proposal-numeric-separator\";\nimport proposalObjectRestSpread from \"@babel/plugin-proposal-object-rest-spread\";\nimport proposalOptionalCatchBinding from \"@babel/plugin-proposal-optional-catch-binding\";\nimport proposalOptionalChaining from \"@babel/plugin-proposal-optional-chaining\";\nimport proposalPrivateMethods from \"@babel/plugin-proposal-private-methods\";\nimport proposalPrivatePropertyInObject from \"@babel/plugin-proposal-private-property-in-object\";\nimport proposalUnicodePropertyRegex from \"@babel/plugin-proposal-unicode-property-regex\";\nimport transformAsyncToGenerator from \"@babel/plugin-transform-async-to-generator\";\nimport transformArrowFunctions from \"@babel/plugin-transform-arrow-functions\";\nimport transformBlockScopedFunctions from \"@babel/plugin-transform-block-scoped-functions\";\nimport transformBlockScoping from \"@babel/plugin-transform-block-scoping\";\nimport transformClasses from \"@babel/plugin-transform-classes\";\nimport transformComputedProperties from \"@babel/plugin-transform-computed-properties\";\nimport transformDestructuring from \"@babel/plugin-transform-destructuring\";\nimport transformDotallRegex from \"@babel/plugin-transform-dotall-regex\";\nimport transformDuplicateKeys from \"@babel/plugin-transform-duplicate-keys\";\nimport transformExponentialOperator from \"@babel/plugin-transform-exponentiation-operator\";\nimport transformForOf from \"@babel/plugin-transform-for-of\";\nimport transformFunctionName from \"@babel/plugin-transform-function-name\";\nimport transformLiterals from \"@babel/plugin-transform-literals\";\nimport transformMemberExpressionLiterals from \"@babel/plugin-transform-member-expression-literals\";\nimport transformModulesAmd from \"@babel/plugin-transform-modules-amd\";\nimport transformModulesCommonjs from \"@babel/plugin-transform-modules-commonjs\";\nimport transformModulesSystemjs from \"@babel/plugin-transform-modules-systemjs\";\nimport transformModulesUmd from \"@babel/plugin-transform-modules-umd\";\nimport transformNamedCapturingGroupsRegex from \"@babel/plugin-transform-named-capturing-groups-regex\";\nimport transformNewTarget from \"@babel/plugin-transform-new-target\";\nimport transformObjectSuper from \"@babel/plugin-transform-object-super\";\nimport transformParameters from \"@babel/plugin-transform-parameters\";\nimport transformPropertyLiterals from \"@babel/plugin-transform-property-literals\";\nimport transformRegenerator from \"@babel/plugin-transform-regenerator\";\nimport transformReservedWords from \"@babel/plugin-transform-reserved-words\";\nimport transformShorthandProperties from \"@babel/plugin-transform-shorthand-properties\";\nimport transformSpread from \"@babel/plugin-transform-spread\";\nimport transformStickyRegex from \"@babel/plugin-transform-sticky-regex\";\nimport transformTemplateLiterals from \"@babel/plugin-transform-template-literals\";\nimport transformTypeofSymbol from \"@babel/plugin-transform-typeof-symbol\";\nimport transformUnicodeEscapes from \"@babel/plugin-transform-unicode-escapes\";\nimport transformUnicodeRegex from \"@babel/plugin-transform-unicode-regex\";\n\nimport bugfixAsyncArrowsInClass from \"@babel/preset-modules/lib/plugins/transform-async-arrows-in-class\";\nimport bugfixEdgeDefaultParameters from \"@babel/preset-modules/lib/plugins/transform-edge-default-parameters\";\nimport bugfixEdgeFunctionName from \"@babel/preset-modules/lib/plugins/transform-edge-function-name\";\nimport bugfixTaggedTemplateCaching from \"@babel/preset-modules/lib/plugins/transform-tagged-template-caching\";\nimport bugfixSafariBlockShadowing from \"@babel/preset-modules/lib/plugins/transform-safari-block-shadowing\";\nimport bugfixSafariForShadowing from \"@babel/preset-modules/lib/plugins/transform-safari-for-shadowing\";\nimport bugfixSafariIdDestructuringCollisionInFunctionExpression from \"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression\";\nimport bugfixV8SpreadParametersInOptionalChaining from \"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining\";\n\nexport default {\n \"bugfix/transform-async-arrows-in-class\": () => bugfixAsyncArrowsInClass,\n \"bugfix/transform-edge-default-parameters\": () => bugfixEdgeDefaultParameters,\n \"bugfix/transform-edge-function-name\": () => bugfixEdgeFunctionName,\n \"bugfix/transform-safari-block-shadowing\": () => bugfixSafariBlockShadowing,\n \"bugfix/transform-safari-for-shadowing\": () => bugfixSafariForShadowing,\n \"bugfix/transform-safari-id-destructuring-collision-in-function-expression\":\n () => bugfixSafariIdDestructuringCollisionInFunctionExpression,\n \"bugfix/transform-tagged-template-caching\": () => bugfixTaggedTemplateCaching,\n \"bugfix/transform-v8-spread-parameters-in-optional-chaining\": () =>\n bugfixV8SpreadParametersInOptionalChaining,\n \"syntax-async-generators\": () => syntaxAsyncGenerators,\n \"syntax-class-properties\": () => syntaxClassProperties,\n \"syntax-class-static-block\": () => syntaxClassStaticBlock,\n \"syntax-dynamic-import\": () => syntaxDynamicImport,\n \"syntax-export-namespace-from\": () => syntaxExportNamespaceFrom,\n \"syntax-import-assertions\": () => syntaxImportAssertions,\n \"syntax-json-strings\": () => syntaxJsonStrings,\n \"syntax-logical-assignment-operators\": () => syntaxLogicalAssignmentOperators,\n \"syntax-nullish-coalescing-operator\": () => syntaxNullishCoalescingOperator,\n \"syntax-numeric-separator\": () => syntaxNumericSeparator,\n \"syntax-object-rest-spread\": () => syntaxObjectRestSpread,\n \"syntax-optional-catch-binding\": () => syntaxOptionalCatchBinding,\n \"syntax-optional-chaining\": () => syntaxOptionalChaining,\n \"syntax-private-property-in-object\": () => syntaxPrivatePropertyInObject,\n \"syntax-top-level-await\": () => syntaxTopLevelAwait,\n \"transform-arrow-functions\": () => transformArrowFunctions,\n \"transform-async-generator-functions\": () => proposalAsyncGeneratorFunctions,\n \"transform-async-to-generator\": () => transformAsyncToGenerator,\n \"transform-block-scoped-functions\": () => transformBlockScopedFunctions,\n \"transform-block-scoping\": () => transformBlockScoping,\n \"transform-class-properties\": () => proposalClassProperties,\n \"transform-class-static-block\": () => proposalClassStaticBlock,\n \"transform-classes\": () => transformClasses,\n \"transform-computed-properties\": () => transformComputedProperties,\n \"transform-destructuring\": () => transformDestructuring,\n \"transform-dotall-regex\": () => transformDotallRegex,\n \"transform-duplicate-keys\": () => transformDuplicateKeys,\n \"transform-dynamic-import\": () => proposalDynamicImport,\n \"transform-exponentiation-operator\": () => transformExponentialOperator,\n \"transform-export-namespace-from\": () => proposalExportNamespaceFrom,\n \"transform-for-of\": () => transformForOf,\n \"transform-function-name\": () => transformFunctionName,\n \"transform-json-strings\": () => proposalJsonStrings,\n \"transform-literals\": () => transformLiterals,\n \"transform-logical-assignment-operators\": () =>\n proposalLogicalAssignmentOperators,\n \"transform-member-expression-literals\": () =>\n transformMemberExpressionLiterals,\n \"transform-modules-amd\": () => transformModulesAmd,\n \"transform-modules-commonjs\": () => transformModulesCommonjs,\n \"transform-modules-systemjs\": () => transformModulesSystemjs,\n \"transform-modules-umd\": () => transformModulesUmd,\n \"transform-named-capturing-groups-regex\": () =>\n transformNamedCapturingGroupsRegex,\n \"transform-new-target\": () => transformNewTarget,\n \"transform-nullish-coalescing-operator\": () =>\n proposalNullishCoalescingOperator,\n \"transform-numeric-separator\": () => proposalNumericSeparator,\n \"transform-object-rest-spread\": () => proposalObjectRestSpread,\n \"transform-object-super\": () => transformObjectSuper,\n \"transform-optional-catch-binding\": () => proposalOptionalCatchBinding,\n \"transform-optional-chaining\": () => proposalOptionalChaining,\n \"transform-parameters\": () => transformParameters,\n \"transform-private-methods\": () => proposalPrivateMethods,\n \"transform-private-property-in-object\": () => proposalPrivatePropertyInObject,\n \"transform-property-literals\": () => transformPropertyLiterals,\n \"transform-regenerator\": () => transformRegenerator,\n \"transform-reserved-words\": () => transformReservedWords,\n \"transform-shorthand-properties\": () => transformShorthandProperties,\n \"transform-spread\": () => transformSpread,\n \"transform-sticky-regex\": () => transformStickyRegex,\n \"transform-template-literals\": () => transformTemplateLiterals,\n \"transform-typeof-symbol\": () => transformTypeofSymbol,\n \"transform-unicode-escapes\": () => transformUnicodeEscapes,\n \"transform-unicode-property-regex\": () => proposalUnicodePropertyRegex,\n \"transform-unicode-regex\": () => transformUnicodeRegex,\n};\n\nexport const minVersions = {\n \"bugfix/transform-safari-id-destructuring-collision-in-function-expression\":\n \"7.16.0\",\n \"transform-class-static-block\": \"7.12.0\",\n \"transform-private-property-in-object\": \"7.10.0\",\n};\n"],"mappings":"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"}preset-env/lib/module-transformations.js.map000066600000001277150432031470015242 0ustar00{"version":3,"names":["auto","amd","commonjs","cjs","systemjs","umd"],"sources":["../src/module-transformations.ts"],"sourcesContent":["type AvailablePlugins = typeof import(\"./available-plugins\").default;\n\nexport default {\n auto: \"transform-modules-commonjs\",\n amd: \"transform-modules-amd\",\n commonjs: \"transform-modules-commonjs\",\n cjs: \"transform-modules-commonjs\",\n systemjs: \"transform-modules-systemjs\",\n umd: \"transform-modules-umd\",\n} as { [transform: string]: keyof AvailablePlugins };\n"],"mappings":";;;;;;eAEe;EACbA,IAAI,EAAE,4BAA4B;EAClCC,GAAG,EAAE,uBAAuB;EAC5BC,QAAQ,EAAE,4BAA4B;EACtCC,GAAG,EAAE,4BAA4B;EACjCC,QAAQ,EAAE,4BAA4B;EACtCC,GAAG,EAAE;AACP,CAAC;AAAA"}preset-env/lib/get-option-specific-excludes.js.map000066600000000737150432031470016210 0ustar00{"version":3,"names":["defaultExcludesForLooseMode","loose"],"sources":["../src/get-option-specific-excludes.ts"],"sourcesContent":["const defaultExcludesForLooseMode = [\"transform-typeof-symbol\"];\n\nexport default function ({ loose }: { loose: boolean }): null | string[] {\n return loose ? defaultExcludesForLooseMode : null;\n}\n"],"mappings":";;;;;;AAAA,MAAMA,2BAA2B,GAAG,CAAC,yBAAyB,CAAC;AAEhD,kBAAU;EAAEC;AAA0B,CAAC,EAAmB;EACvE,OAAOA,KAAK,GAAGD,2BAA2B,GAAG,IAAI;AACnD"}preset-env/lib/targets-parser.js000066600000000772150432031470012714 0ustar00"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function () { return _helperCompilationTargets.default; } }); Object.defineProperty(exports, "isBrowsersQueryValid", { enumerable: true, get: function () { return _helperCompilationTargets.isBrowsersQueryValid; } }); var _helperCompilationTargets = require("@babel/helper-compilation-targets"); //# sourceMappingURL=targets-parser.js.map preset-env/lib/shipped-proposals.js.map000066600000005210150432031470014171 0ustar00{"version":3,"names":["proposalPlugins","Set","proposalSyntaxPlugins","pluginSyntaxObject","pluginSyntaxEntries","Object","keys","map","key","pluginSyntaxMap","Map"],"sources":["../src/shipped-proposals.ts"],"sourcesContent":["// TODO(Babel 8): Remove this file\n/* eslint sort-keys: \"error\" */\n// These mappings represent the transform plugins that have been\n// shipped by browsers, and are enabled by the `shippedProposals` option.\n\nconst proposalPlugins = new Set();\n\n// proposal syntax plugins enabled by the `shippedProposals` option.\n// Unlike proposalPlugins above, they are independent of compiler targets.\nconst proposalSyntaxPlugins = [\"syntax-import-assertions\"] as const;\n\n// use intermediary object to enforce alphabetical key order\nconst pluginSyntaxObject = {\n \"transform-async-generator-functions\": \"syntax-async-generators\",\n \"transform-class-properties\": \"syntax-class-properties\",\n \"transform-class-static-block\": \"syntax-class-static-block\",\n \"transform-json-strings\": \"syntax-json-strings\",\n \"transform-nullish-coalescing-operator\": \"syntax-nullish-coalescing-operator\",\n \"transform-numeric-separator\": \"syntax-numeric-separator\",\n \"transform-object-rest-spread\": \"syntax-object-rest-spread\",\n \"transform-optional-catch-binding\": \"syntax-optional-catch-binding\",\n \"transform-optional-chaining\": \"syntax-optional-chaining\",\n // note: we don't have syntax-private-methods\n \"transform-private-methods\": \"syntax-class-properties\",\n \"transform-private-property-in-object\": \"syntax-private-property-in-object\",\n \"transform-unicode-property-regex\": null as null,\n} as const;\n\nconst pluginSyntaxEntries = Object.keys(pluginSyntaxObject).map<\n [string, string | null]\n>(function (key) {\n return [\n key,\n // @ts-expect-error key has been guarded\n pluginSyntaxObject[key],\n ];\n});\n\nconst pluginSyntaxMap = new Map(pluginSyntaxEntries);\n\nexport { proposalPlugins, proposalSyntaxPlugins, pluginSyntaxMap };\n"],"mappings":";;;;;;;AAKA,MAAMA,eAAe,GAAG,IAAIC,GAAG,EAAU;;AAAC;AAI1C,MAAMC,qBAAqB,GAAG,CAAC,0BAA0B,CAAU;;AAAC;AAGpE,MAAMC,kBAAkB,GAAG;EACzB,qCAAqC,EAAE,yBAAyB;EAChE,4BAA4B,EAAE,yBAAyB;EACvD,8BAA8B,EAAE,2BAA2B;EAC3D,wBAAwB,EAAE,qBAAqB;EAC/C,uCAAuC,EAAE,oCAAoC;EAC7E,6BAA6B,EAAE,0BAA0B;EACzD,8BAA8B,EAAE,2BAA2B;EAC3D,kCAAkC,EAAE,+BAA+B;EACnE,6BAA6B,EAAE,0BAA0B;EAEzD,2BAA2B,EAAE,yBAAyB;EACtD,sCAAsC,EAAE,mCAAmC;EAC3E,kCAAkC,EAAE;AACtC,CAAU;AAEV,MAAMC,mBAAmB,GAAGC,MAAM,CAACC,IAAI,CAACH,kBAAkB,CAAC,CAACI,GAAG,CAE7D,UAAUC,GAAG,EAAE;EACf,OAAO,CACLA,GAAG;EAEHL,kBAAkB,CAACK,GAAG,CAAC,CACxB;AACH,CAAC,CAAC;AAEF,MAAMC,eAAe,GAAG,IAAIC,GAAG,CAACN,mBAAmB,CAAC;AAAC"}preset-env/lib/filter-items.js.map000066600000003755150432031470013135 0ustar00{"version":3,"names":["has","Function","call","bind","Object","hasOwnProperty","addProposalSyntaxPlugins","items","proposalSyntaxPlugins","forEach","plugin","add","removeUnnecessaryItems","overlapping","item","name","delete","removeUnsupportedItems","babelVersion","minVersions","semver","lt"],"sources":["../src/filter-items.ts"],"sourcesContent":["import semver from \"semver\";\nimport { minVersions } from \"./available-plugins\";\n\nconst has = Function.call.bind(Object.hasOwnProperty);\n\nexport function addProposalSyntaxPlugins(\n items: Set,\n proposalSyntaxPlugins: readonly string[],\n) {\n proposalSyntaxPlugins.forEach(plugin => {\n items.add(plugin);\n });\n}\nexport function removeUnnecessaryItems(\n items: Set,\n overlapping: { [name: string]: string[] },\n) {\n items.forEach(item => {\n overlapping[item]?.forEach(name => items.delete(name));\n });\n}\nexport function removeUnsupportedItems(\n items: Set,\n babelVersion: string,\n) {\n items.forEach(item => {\n if (\n has(minVersions, item) &&\n semver.lt(\n babelVersion,\n // @ts-expect-error we have checked minVersions[item] in has call\n minVersions[item],\n )\n ) {\n items.delete(item);\n }\n });\n}\n"],"mappings":";;;;;;;;AAAA;AACA;AAEA,MAAMA,GAAG,GAAGC,QAAQ,CAACC,IAAI,CAACC,IAAI,CAACC,MAAM,CAACC,cAAc,CAAC;AAE9C,SAASC,wBAAwB,CACtCC,KAAkB,EAClBC,qBAAwC,EACxC;EACAA,qBAAqB,CAACC,OAAO,CAACC,MAAM,IAAI;IACtCH,KAAK,CAACI,GAAG,CAACD,MAAM,CAAC;EACnB,CAAC,CAAC;AACJ;AACO,SAASE,sBAAsB,CACpCL,KAAkB,EAClBM,WAAyC,EACzC;EACAN,KAAK,CAACE,OAAO,CAACK,IAAI,IAAI;IAAA;IACpB,qBAAAD,WAAW,CAACC,IAAI,CAAC,qBAAjB,kBAAmBL,OAAO,CAACM,IAAI,IAAIR,KAAK,CAACS,MAAM,CAACD,IAAI,CAAC,CAAC;EACxD,CAAC,CAAC;AACJ;AACO,SAASE,sBAAsB,CACpCV,KAAkB,EAClBW,YAAoB,EACpB;EACAX,KAAK,CAACE,OAAO,CAACK,IAAI,IAAI;IACpB,IACEd,GAAG,CAACmB,6BAAW,EAAEL,IAAI,CAAC,IACtBM,OAAM,CAACC,EAAE,CACPH,YAAY;IAEZC,6BAAW,CAACL,IAAI,CAAC,CAClB,EACD;MACAP,KAAK,CAACS,MAAM,CAACF,IAAI,CAAC;IACpB;EACF,CAAC,CAAC;AACJ"}preset-env/lib/get-option-specific-excludes.js000066600000000477150432031470015435 0ustar00"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = _default; const defaultExcludesForLooseMode = ["transform-typeof-symbol"]; function _default({ loose }) { return loose ? defaultExcludesForLooseMode : null; } //# sourceMappingURL=get-option-specific-excludes.js.map preset-env/lib/plugins-compat-data.js.map000066600000003325150432031470014373 0ustar00{"version":3,"names":["keys","Object","plugins","filterAvailable","originalPlugins","pluginsBugfixes","originalPluginsBugfixes","overlappingPlugins","originalOverlappingPlugins","data","result","plugin","hasOwnProperty","call","availablePlugins"],"sources":["../src/plugins-compat-data.ts"],"sourcesContent":["import originalPlugins from \"@babel/compat-data/plugins\";\nimport originalPluginsBugfixes from \"@babel/compat-data/plugin-bugfixes\";\nimport originalOverlappingPlugins from \"@babel/compat-data/overlapping-plugins\";\nimport availablePlugins from \"./available-plugins\";\n\nconst keys: (o: O) => (keyof O)[] = Object.keys;\n\nexport const plugins = filterAvailable(originalPlugins);\nexport const pluginsBugfixes = filterAvailable(originalPluginsBugfixes);\nexport const overlappingPlugins = filterAvailable(originalOverlappingPlugins);\n\nfunction filterAvailable(\n data: Data,\n): { [Name in keyof Data & keyof typeof availablePlugins]: Data[Name] } {\n const result = {} as any;\n for (const plugin of keys(data)) {\n if (Object.hasOwnProperty.call(availablePlugins, plugin)) {\n result[plugin] = data[plugin];\n }\n }\n return result;\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AAEA,MAAMA,IAA6C,GAAGC,MAAM,CAACD,IAAI;AAE1D,MAAME,OAAO,GAAGC,eAAe,CAACC,QAAe,CAAC;AAAC;AACjD,MAAMC,eAAe,GAAGF,eAAe,CAACG,eAAuB,CAAC;AAAC;AACjE,MAAMC,kBAAkB,GAAGJ,eAAe,CAACK,mBAA0B,CAAC;AAAC;AAE9E,SAASL,eAAe,CACtBM,IAAU,EAC4D;EACtE,MAAMC,MAAM,GAAG,CAAC,CAAQ;EACxB,KAAK,MAAMC,MAAM,IAAIX,IAAI,CAACS,IAAI,CAAC,EAAE;IAC/B,IAAIR,MAAM,CAACW,cAAc,CAACC,IAAI,CAACC,yBAAgB,EAAEH,MAAM,CAAC,EAAE;MACxDD,MAAM,CAACC,MAAM,CAAC,GAAGF,IAAI,CAACE,MAAM,CAAC;IAC/B;EACF;EACA,OAAOD,MAAM;AACf"}preset-env/lib/debug.js.map000066600000005145150432031470011612 0ustar00{"version":3,"names":["logPlugin","item","targetVersions","list","filteredList","getInclusionReasons","support","startsWith","proposalName","slice","Object","prototype","hasOwnProperty","call","compatData","console","log","formattedTargets","first","target","keys"],"sources":["../src/debug.ts"],"sourcesContent":["import {\n getInclusionReasons,\n type Targets,\n type Target,\n} from \"@babel/helper-compilation-targets\";\nimport compatData from \"@babel/compat-data/plugins\";\n\n// Outputs a message that shows which target(s) caused an item to be included:\n// transform-foo { \"edge\":\"13\", \"firefox\":\"49\", \"ie\":\"10\" }\nexport const logPlugin = (\n item: string,\n targetVersions: Targets,\n list: { [key: string]: Targets },\n) => {\n const filteredList = getInclusionReasons(item, targetVersions, list);\n\n const support = list[item];\n\n // TODO(Babel 8): Remove this. It's needed to keep outputting proposal-\n // in the debug log.\n if (item.startsWith(\"transform-\")) {\n const proposalName = `proposal-${item.slice(10)}`;\n if (\n proposalName === \"proposal-dynamic-import\" ||\n Object.prototype.hasOwnProperty.call(compatData, proposalName)\n ) {\n item = proposalName;\n }\n }\n\n if (!support) {\n console.log(` ${item}`);\n return;\n }\n\n let formattedTargets = `{`;\n let first = true;\n for (const target of Object.keys(filteredList) as Target[]) {\n if (!first) formattedTargets += `,`;\n first = false;\n formattedTargets += ` ${target}`;\n if (support[target]) formattedTargets += ` < ${support[target]}`;\n }\n formattedTargets += ` }`;\n\n console.log(` ${item} ${formattedTargets}`);\n};\n"],"mappings":";;;;;;AAAA;AAKA;AAIO,MAAMA,SAAS,GAAG,CACvBC,IAAY,EACZC,cAAuB,EACvBC,IAAgC,KAC7B;EACH,MAAMC,YAAY,GAAG,IAAAC,6CAAmB,EAACJ,IAAI,EAAEC,cAAc,EAAEC,IAAI,CAAC;EAEpE,MAAMG,OAAO,GAAGH,IAAI,CAACF,IAAI,CAAC;;EAI1B,IAAIA,IAAI,CAACM,UAAU,CAAC,YAAY,CAAC,EAAE;IACjC,MAAMC,YAAY,GAAI,YAAWP,IAAI,CAACQ,KAAK,CAAC,EAAE,CAAE,EAAC;IACjD,IACED,YAAY,KAAK,yBAAyB,IAC1CE,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACC,QAAU,EAAEN,YAAY,CAAC,EAC9D;MACAP,IAAI,GAAGO,YAAY;IACrB;EACF;EAEA,IAAI,CAACF,OAAO,EAAE;IACZS,OAAO,CAACC,GAAG,CAAE,KAAIf,IAAK,EAAC,CAAC;IACxB;EACF;EAEA,IAAIgB,gBAAgB,GAAI,GAAE;EAC1B,IAAIC,KAAK,GAAG,IAAI;EAChB,KAAK,MAAMC,MAAM,IAAIT,MAAM,CAACU,IAAI,CAAChB,YAAY,CAAC,EAAc;IAC1D,IAAI,CAACc,KAAK,EAAED,gBAAgB,IAAK,GAAE;IACnCC,KAAK,GAAG,KAAK;IACbD,gBAAgB,IAAK,IAAGE,MAAO,EAAC;IAChC,IAAIb,OAAO,CAACa,MAAM,CAAC,EAAEF,gBAAgB,IAAK,MAAKX,OAAO,CAACa,MAAM,CAAE,EAAC;EAClE;EACAF,gBAAgB,IAAK,IAAG;EAExBF,OAAO,CAACC,GAAG,CAAE,KAAIf,IAAK,IAAGgB,gBAAiB,EAAC,CAAC;AAC9C,CAAC;AAAC"}preset-env/lib/polyfills/regenerator.js000066600000002401150432031470014272 0ustar00"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = _default; var _utils = require("./utils"); function isRegeneratorSource(source) { return source === "regenerator-runtime/runtime" || source === "regenerator-runtime/runtime.js"; } function _default() { const visitor = { ImportDeclaration(path) { if (isRegeneratorSource((0, _utils.getImportSource)(path))) { this.regeneratorImportExcluded = true; path.remove(); } }, Program(path) { path.get("body").forEach(bodyPath => { if (isRegeneratorSource((0, _utils.getRequireSource)(bodyPath))) { this.regeneratorImportExcluded = true; bodyPath.remove(); } }); } }; return { name: "preset-env/remove-regenerator", visitor, pre() { this.regeneratorImportExcluded = false; }, post() { if (this.opts.debug && this.regeneratorImportExcluded) { let filename = this.file.opts.filename; if (process.env.BABEL_ENV === "test") { filename = filename.replace(/\\/g, "/"); } console.log(`\n[${filename}] Based on your targets, regenerator-runtime import excluded.`); } } }; } //# sourceMappingURL=regenerator.js.map preset-env/lib/polyfills/babel-polyfill.js000066600000004366150432031470014666 0ustar00"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = _default; var _utils = require("./utils"); const BABEL_POLYFILL_DEPRECATION = ` \`@babel/polyfill\` is deprecated. Please, use required parts of \`core-js\` and \`regenerator-runtime/runtime\` separately`; const NO_DIRECT_POLYFILL_IMPORT = ` When setting \`useBuiltIns: 'usage'\`, polyfills are automatically imported when needed. Please remove the direct import of \`SPECIFIER\` or use \`useBuiltIns: 'entry'\` instead.`; function _default({ template }, { regenerator, deprecated, usage }) { return { name: "preset-env/replace-babel-polyfill", visitor: { ImportDeclaration(path) { const src = (0, _utils.getImportSource)(path); if (usage && (0, _utils.isPolyfillSource)(src)) { console.warn(NO_DIRECT_POLYFILL_IMPORT.replace("SPECIFIER", src)); if (!deprecated) path.remove(); } else if (src === "@babel/polyfill") { if (deprecated) { console.warn(BABEL_POLYFILL_DEPRECATION); } else if (regenerator) { path.replaceWithMultiple(template.ast` import "core-js"; import "regenerator-runtime/runtime.js"; `); } else { path.replaceWith(template.ast` import "core-js"; `); } } }, Program(path) { path.get("body").forEach(bodyPath => { const src = (0, _utils.getRequireSource)(bodyPath); if (usage && (0, _utils.isPolyfillSource)(src)) { console.warn(NO_DIRECT_POLYFILL_IMPORT.replace("SPECIFIER", src)); if (!deprecated) bodyPath.remove(); } else if (src === "@babel/polyfill") { if (deprecated) { console.warn(BABEL_POLYFILL_DEPRECATION); } else if (regenerator) { bodyPath.replaceWithMultiple(template.ast` require("core-js"); require("regenerator-runtime/runtime.js"); `); } else { bodyPath.replaceWith(template.ast` require("core-js"); `); } } }); } } }; } //# sourceMappingURL=babel-polyfill.js.map preset-env/lib/polyfills/babel-polyfill.js.map000066600000010335150432031470015433 0ustar00{"version":3,"names":["BABEL_POLYFILL_DEPRECATION","NO_DIRECT_POLYFILL_IMPORT","template","regenerator","deprecated","usage","name","visitor","ImportDeclaration","path","src","getImportSource","isPolyfillSource","console","warn","replace","remove","replaceWithMultiple","ast","replaceWith","Program","get","forEach","bodyPath","getRequireSource"],"sources":["../../src/polyfills/babel-polyfill.ts"],"sourcesContent":["import { getImportSource, getRequireSource, isPolyfillSource } from \"./utils\";\n\nimport type { NodePath } from \"@babel/traverse\";\nimport type * as t from \"@babel/types\";\n\nconst BABEL_POLYFILL_DEPRECATION = `\n \\`@babel/polyfill\\` is deprecated. Please, use required parts of \\`core-js\\`\n and \\`regenerator-runtime/runtime\\` separately`;\n\nconst NO_DIRECT_POLYFILL_IMPORT = `\n When setting \\`useBuiltIns: 'usage'\\`, polyfills are automatically imported when needed.\n Please remove the direct import of \\`SPECIFIER\\` or use \\`useBuiltIns: 'entry'\\` instead.`;\n\nexport default function (\n { template }: any,\n { regenerator, deprecated, usage }: any,\n) {\n return {\n name: \"preset-env/replace-babel-polyfill\",\n visitor: {\n ImportDeclaration(path: NodePath) {\n const src = getImportSource(path);\n if (usage && isPolyfillSource(src)) {\n console.warn(NO_DIRECT_POLYFILL_IMPORT.replace(\"SPECIFIER\", src));\n if (!deprecated) path.remove();\n } else if (src === \"@babel/polyfill\") {\n if (deprecated) {\n console.warn(BABEL_POLYFILL_DEPRECATION);\n } else if (regenerator) {\n path.replaceWithMultiple(template.ast`\n import \"core-js\";\n import \"regenerator-runtime/runtime.js\";\n `);\n } else {\n path.replaceWith(template.ast`\n import \"core-js\";\n `);\n }\n }\n },\n Program(path: NodePath) {\n path.get(\"body\").forEach(bodyPath => {\n const src = getRequireSource(bodyPath);\n if (usage && isPolyfillSource(src)) {\n console.warn(NO_DIRECT_POLYFILL_IMPORT.replace(\"SPECIFIER\", src));\n if (!deprecated) bodyPath.remove();\n } else if (src === \"@babel/polyfill\") {\n if (deprecated) {\n console.warn(BABEL_POLYFILL_DEPRECATION);\n } else if (regenerator) {\n bodyPath.replaceWithMultiple(template.ast`\n require(\"core-js\");\n require(\"regenerator-runtime/runtime.js\");\n `);\n } else {\n bodyPath.replaceWith(template.ast`\n require(\"core-js\");\n `);\n }\n }\n });\n },\n },\n };\n}\n"],"mappings":";;;;;;AAAA;AAKA,MAAMA,0BAA0B,GAAI;AACpC;AACA,iDAAiD;AAEjD,MAAMC,yBAAyB,GAAI;AACnC;AACA,4FAA4F;AAE7E,kBACb;EAAEC;AAAc,CAAC,EACjB;EAAEC,WAAW;EAAEC,UAAU;EAAEC;AAAW,CAAC,EACvC;EACA,OAAO;IACLC,IAAI,EAAE,mCAAmC;IACzCC,OAAO,EAAE;MACPC,iBAAiB,CAACC,IAAmC,EAAE;QACrD,MAAMC,GAAG,GAAG,IAAAC,sBAAe,EAACF,IAAI,CAAC;QACjC,IAAIJ,KAAK,IAAI,IAAAO,uBAAgB,EAACF,GAAG,CAAC,EAAE;UAClCG,OAAO,CAACC,IAAI,CAACb,yBAAyB,CAACc,OAAO,CAAC,WAAW,EAAEL,GAAG,CAAC,CAAC;UACjE,IAAI,CAACN,UAAU,EAAEK,IAAI,CAACO,MAAM,EAAE;QAChC,CAAC,MAAM,IAAIN,GAAG,KAAK,iBAAiB,EAAE;UACpC,IAAIN,UAAU,EAAE;YACdS,OAAO,CAACC,IAAI,CAACd,0BAA0B,CAAC;UAC1C,CAAC,MAAM,IAAIG,WAAW,EAAE;YACtBM,IAAI,CAACQ,mBAAmB,CAACf,QAAQ,CAACgB,GAAI;AAClD;AACA;AACA,aAAa,CAAC;UACJ,CAAC,MAAM;YACLT,IAAI,CAACU,WAAW,CAACjB,QAAQ,CAACgB,GAAI;AAC1C;AACA,aAAa,CAAC;UACJ;QACF;MACF,CAAC;MACDE,OAAO,CAACX,IAAyB,EAAE;QACjCA,IAAI,CAACY,GAAG,CAAC,MAAM,CAAC,CAACC,OAAO,CAACC,QAAQ,IAAI;UACnC,MAAMb,GAAG,GAAG,IAAAc,uBAAgB,EAACD,QAAQ,CAAC;UACtC,IAAIlB,KAAK,IAAI,IAAAO,uBAAgB,EAACF,GAAG,CAAC,EAAE;YAClCG,OAAO,CAACC,IAAI,CAACb,yBAAyB,CAACc,OAAO,CAAC,WAAW,EAAEL,GAAG,CAAC,CAAC;YACjE,IAAI,CAACN,UAAU,EAAEmB,QAAQ,CAACP,MAAM,EAAE;UACpC,CAAC,MAAM,IAAIN,GAAG,KAAK,iBAAiB,EAAE;YACpC,IAAIN,UAAU,EAAE;cACdS,OAAO,CAACC,IAAI,CAACd,0BAA0B,CAAC;YAC1C,CAAC,MAAM,IAAIG,WAAW,EAAE;cACtBoB,QAAQ,CAACN,mBAAmB,CAACf,QAAQ,CAACgB,GAAI;AACxD;AACA;AACA,eAAe,CAAC;YACJ,CAAC,MAAM;cACLK,QAAQ,CAACJ,WAAW,CAACjB,QAAQ,CAACgB,GAAI;AAChD;AACA,eAAe,CAAC;YACJ;UACF;QACF,CAAC,CAAC;MACJ;IACF;EACF,CAAC;AACH"}preset-env/lib/polyfills/utils.js.map000066600000003630150432031470013676 0ustar00{"version":3,"names":["isCallExpression","isExpressionStatement","isIdentifier","isStringLiteral","getImportSource","node","specifiers","length","source","value","getRequireSource","expression","callee","name","arguments","isPolyfillSource"],"sources":["../../src/polyfills/utils.ts"],"sourcesContent":["import {\n isCallExpression,\n isExpressionStatement,\n isIdentifier,\n isStringLiteral,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport type { NodePath } from \"@babel/traverse\";\n\nexport function getImportSource({ node }: NodePath) {\n if (node.specifiers.length === 0) return node.source.value;\n}\n\nexport function getRequireSource({ node }: NodePath) {\n if (!isExpressionStatement(node)) return;\n const { expression } = node;\n if (\n isCallExpression(expression) &&\n isIdentifier(expression.callee) &&\n expression.callee.name === \"require\" &&\n expression.arguments.length === 1 &&\n isStringLiteral(expression.arguments[0])\n ) {\n return expression.arguments[0].value;\n }\n}\n\nexport function isPolyfillSource(source?: string | null): boolean {\n return source === \"@babel/polyfill\" || source === \"core-js\";\n}\n"],"mappings":";;;;;;;;AAAA;AAKsB;EAJpBA,gBAAgB;EAChBC,qBAAqB;EACrBC,YAAY;EACZC;AAAe;AAKV,SAASC,eAAe,CAAC;EAAEC;AAAoC,CAAC,EAAE;EACvE,IAAIA,IAAI,CAACC,UAAU,CAACC,MAAM,KAAK,CAAC,EAAE,OAAOF,IAAI,CAACG,MAAM,CAACC,KAAK;AAC5D;AAEO,SAASC,gBAAgB,CAAC;EAAEL;AAAe,CAAC,EAAE;EACnD,IAAI,CAACJ,qBAAqB,CAACI,IAAI,CAAC,EAAE;EAClC,MAAM;IAAEM;EAAW,CAAC,GAAGN,IAAI;EAC3B,IACEL,gBAAgB,CAACW,UAAU,CAAC,IAC5BT,YAAY,CAACS,UAAU,CAACC,MAAM,CAAC,IAC/BD,UAAU,CAACC,MAAM,CAACC,IAAI,KAAK,SAAS,IACpCF,UAAU,CAACG,SAAS,CAACP,MAAM,KAAK,CAAC,IACjCJ,eAAe,CAACQ,UAAU,CAACG,SAAS,CAAC,CAAC,CAAC,CAAC,EACxC;IACA,OAAOH,UAAU,CAACG,SAAS,CAAC,CAAC,CAAC,CAACL,KAAK;EACtC;AACF;AAEO,SAASM,gBAAgB,CAACP,MAAsB,EAAW;EAChE,OAAOA,MAAM,KAAK,iBAAiB,IAAIA,MAAM,KAAK,SAAS;AAC7D"}preset-env/lib/polyfills/regenerator.js.map000066600000005626150432031470015062 0ustar00{"version":3,"names":["isRegeneratorSource","source","visitor","ImportDeclaration","path","getImportSource","regeneratorImportExcluded","remove","Program","get","forEach","bodyPath","getRequireSource","name","pre","post","opts","debug","filename","file","process","env","BABEL_ENV","replace","console","log"],"sources":["../../src/polyfills/regenerator.ts"],"sourcesContent":["import { getImportSource, getRequireSource } from \"./utils\";\nimport type { Visitor } from \"@babel/traverse\";\nimport type { PluginObject, PluginPass } from \"@babel/core\";\n\nfunction isRegeneratorSource(source: string) {\n return (\n source === \"regenerator-runtime/runtime\" ||\n source === \"regenerator-runtime/runtime.js\"\n );\n}\n\ntype State = {\n regeneratorImportExcluded: boolean;\n};\n\nexport default function (): PluginObject {\n const visitor: Visitor = {\n ImportDeclaration(path) {\n if (isRegeneratorSource(getImportSource(path))) {\n this.regeneratorImportExcluded = true;\n path.remove();\n }\n },\n Program(path) {\n path.get(\"body\").forEach(bodyPath => {\n if (isRegeneratorSource(getRequireSource(bodyPath))) {\n this.regeneratorImportExcluded = true;\n bodyPath.remove();\n }\n });\n },\n };\n\n return {\n name: \"preset-env/remove-regenerator\",\n visitor,\n pre() {\n this.regeneratorImportExcluded = false;\n },\n post() {\n if (this.opts.debug && this.regeneratorImportExcluded) {\n let filename = this.file.opts.filename;\n // normalize filename to generate consistent preset-env test fixtures\n if (process.env.BABEL_ENV === \"test\") {\n filename = filename.replace(/\\\\/g, \"/\");\n }\n console.log(\n `\\n[${filename}] Based on your targets, regenerator-runtime import excluded.`,\n );\n }\n },\n };\n}\n"],"mappings":";;;;;;AAAA;AAIA,SAASA,mBAAmB,CAACC,MAAc,EAAE;EAC3C,OACEA,MAAM,KAAK,6BAA6B,IACxCA,MAAM,KAAK,gCAAgC;AAE/C;AAMe,oBAA8C;EAC3D,MAAMC,OAAoC,GAAG;IAC3CC,iBAAiB,CAACC,IAAI,EAAE;MACtB,IAAIJ,mBAAmB,CAAC,IAAAK,sBAAe,EAACD,IAAI,CAAC,CAAC,EAAE;QAC9C,IAAI,CAACE,yBAAyB,GAAG,IAAI;QACrCF,IAAI,CAACG,MAAM,EAAE;MACf;IACF,CAAC;IACDC,OAAO,CAACJ,IAAI,EAAE;MACZA,IAAI,CAACK,GAAG,CAAC,MAAM,CAAC,CAACC,OAAO,CAACC,QAAQ,IAAI;QACnC,IAAIX,mBAAmB,CAAC,IAAAY,uBAAgB,EAACD,QAAQ,CAAC,CAAC,EAAE;UACnD,IAAI,CAACL,yBAAyB,GAAG,IAAI;UACrCK,QAAQ,CAACJ,MAAM,EAAE;QACnB;MACF,CAAC,CAAC;IACJ;EACF,CAAC;EAED,OAAO;IACLM,IAAI,EAAE,+BAA+B;IACrCX,OAAO;IACPY,GAAG,GAAG;MACJ,IAAI,CAACR,yBAAyB,GAAG,KAAK;IACxC,CAAC;IACDS,IAAI,GAAG;MACL,IAAI,IAAI,CAACC,IAAI,CAACC,KAAK,IAAI,IAAI,CAACX,yBAAyB,EAAE;QACrD,IAAIY,QAAQ,GAAG,IAAI,CAACC,IAAI,CAACH,IAAI,CAACE,QAAQ;QAEtC,IAAIE,OAAO,CAACC,GAAG,CAACC,SAAS,KAAK,MAAM,EAAE;UACpCJ,QAAQ,GAAGA,QAAQ,CAACK,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;QACzC;QACAC,OAAO,CAACC,GAAG,CACR,MAAKP,QAAS,+DAA8D,CAC9E;MACH;IACF;EACF,CAAC;AACH"}preset-env/lib/polyfills/utils.js000066600000001660150432031470013123 0ustar00"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getImportSource = getImportSource; exports.getRequireSource = getRequireSource; exports.isPolyfillSource = isPolyfillSource; var _t = require("@babel/types"); const { isCallExpression, isExpressionStatement, isIdentifier, isStringLiteral } = _t; function getImportSource({ node }) { if (node.specifiers.length === 0) return node.source.value; } function getRequireSource({ node }) { if (!isExpressionStatement(node)) return; const { expression } = node; if (isCallExpression(expression) && isIdentifier(expression.callee) && expression.callee.name === "require" && expression.arguments.length === 1 && isStringLiteral(expression.arguments[0])) { return expression.arguments[0].value; } } function isPolyfillSource(source) { return source === "@babel/polyfill" || source === "core-js"; } //# sourceMappingURL=utils.js.map preset-env/LICENSE000066600000002122150432031470007641 0ustar00MIT License Copyright (c) 2014-present Sebastian McKenzie and other contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. preset-env/package.json000066600000012123150432031470011124 0ustar00{ "name": "@babel/preset-env", "version": "7.20.2", "description": "A Babel preset for each environment.", "author": "The Babel Team (https://babel.dev/team)", "homepage": "https://babel.dev/docs/en/next/babel-preset-env", "bugs": "https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20preset-env%22+is%3Aopen", "license": "MIT", "publishConfig": { "access": "public" }, "repository": { "type": "git", "url": "https://github.com/babel/babel.git", "directory": "packages/babel-preset-env" }, "main": "./lib/index.js", "dependencies": { "@babel/compat-data": "^7.20.1", "@babel/helper-compilation-targets": "^7.20.0", "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-validator-option": "^7.18.6", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", "@babel/plugin-proposal-async-generator-functions": "^7.20.1", "@babel/plugin-proposal-class-properties": "^7.18.6", "@babel/plugin-proposal-class-static-block": "^7.18.6", "@babel/plugin-proposal-dynamic-import": "^7.18.6", "@babel/plugin-proposal-export-namespace-from": "^7.18.9", "@babel/plugin-proposal-json-strings": "^7.18.6", "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", "@babel/plugin-proposal-numeric-separator": "^7.18.6", "@babel/plugin-proposal-object-rest-spread": "^7.20.2", "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", "@babel/plugin-proposal-optional-chaining": "^7.18.9", "@babel/plugin-proposal-private-methods": "^7.18.6", "@babel/plugin-proposal-private-property-in-object": "^7.18.6", "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", "@babel/plugin-syntax-import-assertions": "^7.20.0", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", "@babel/plugin-syntax-numeric-separator": "^7.10.4", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-transform-arrow-functions": "^7.18.6", "@babel/plugin-transform-async-to-generator": "^7.18.6", "@babel/plugin-transform-block-scoped-functions": "^7.18.6", "@babel/plugin-transform-block-scoping": "^7.20.2", "@babel/plugin-transform-classes": "^7.20.2", "@babel/plugin-transform-computed-properties": "^7.18.9", "@babel/plugin-transform-destructuring": "^7.20.2", "@babel/plugin-transform-dotall-regex": "^7.18.6", "@babel/plugin-transform-duplicate-keys": "^7.18.9", "@babel/plugin-transform-exponentiation-operator": "^7.18.6", "@babel/plugin-transform-for-of": "^7.18.8", "@babel/plugin-transform-function-name": "^7.18.9", "@babel/plugin-transform-literals": "^7.18.9", "@babel/plugin-transform-member-expression-literals": "^7.18.6", "@babel/plugin-transform-modules-amd": "^7.19.6", "@babel/plugin-transform-modules-commonjs": "^7.19.6", "@babel/plugin-transform-modules-systemjs": "^7.19.6", "@babel/plugin-transform-modules-umd": "^7.18.6", "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", "@babel/plugin-transform-new-target": "^7.18.6", "@babel/plugin-transform-object-super": "^7.18.6", "@babel/plugin-transform-parameters": "^7.20.1", "@babel/plugin-transform-property-literals": "^7.18.6", "@babel/plugin-transform-regenerator": "^7.18.6", "@babel/plugin-transform-reserved-words": "^7.18.6", "@babel/plugin-transform-shorthand-properties": "^7.18.6", "@babel/plugin-transform-spread": "^7.19.0", "@babel/plugin-transform-sticky-regex": "^7.18.6", "@babel/plugin-transform-template-literals": "^7.18.9", "@babel/plugin-transform-typeof-symbol": "^7.18.9", "@babel/plugin-transform-unicode-escapes": "^7.18.10", "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", "@babel/types": "^7.20.2", "babel-plugin-polyfill-corejs2": "^0.3.3", "babel-plugin-polyfill-corejs3": "^0.6.0", "babel-plugin-polyfill-regenerator": "^0.4.1", "core-js-compat": "^3.25.1", "semver": "^6.3.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" }, "devDependencies": { "@babel/core": "^7.20.2", "@babel/core-7.12": "npm:@babel/core@7.12.9", "@babel/helper-plugin-test-runner": "^7.18.6", "@babel/traverse": "^7.20.1" }, "engines": { "node": ">=6.9.0" }, "type": "commonjs" }helper-module-imports/README.md000066600000000546150432031470012270 0ustar00# @babel/helper-module-imports > Babel helper functions for inserting module loads See our website [@babel/helper-module-imports](https://babeljs.io/docs/en/babel-helper-module-imports) for more information. ## Install Using npm: ```sh npm install --save @babel/helper-module-imports ``` or using yarn: ```sh yarn add @babel/helper-module-imports ``` helper-module-imports/lib/index.js000066600000002125150432031470013217 0ustar00"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "ImportInjector", { enumerable: true, get: function () { return _importInjector.default; } }); exports.addDefault = addDefault; exports.addNamed = addNamed; exports.addNamespace = addNamespace; exports.addSideEffect = addSideEffect; Object.defineProperty(exports, "isModule", { enumerable: true, get: function () { return _isModule.default; } }); var _importInjector = require("./import-injector"); var _isModule = require("./is-module"); function addDefault(path, importedSource, opts) { return new _importInjector.default(path).addDefault(importedSource, opts); } function addNamed(path, name, importedSource, opts) { return new _importInjector.default(path).addNamed(name, importedSource, opts); } function addNamespace(path, importedSource, opts) { return new _importInjector.default(path).addNamespace(importedSource, opts); } function addSideEffect(path, importedSource, opts) { return new _importInjector.default(path).addSideEffect(importedSource, opts); }helper-module-imports/lib/is-module.js000066600000000575150432031470014015 0ustar00"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = isModule; function isModule(path) { const { sourceType } = path.node; if (sourceType !== "module" && sourceType !== "script") { throw path.buildCodeFrameError(`Unknown sourceType "${sourceType}", cannot transform.`); } return path.node.sourceType === "module"; }helper-module-imports/lib/import-injector.js000066600000020010150432031470015226 0ustar00"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _assert = require("assert"); var _t = require("@babel/types"); var _importBuilder = require("./import-builder"); var _isModule = require("./is-module"); const { numericLiteral, sequenceExpression } = _t; class ImportInjector { constructor(path, importedSource, opts) { this._defaultOpts = { importedSource: null, importedType: "commonjs", importedInterop: "babel", importingInterop: "babel", ensureLiveReference: false, ensureNoContext: false, importPosition: "before" }; const programPath = path.find(p => p.isProgram()); this._programPath = programPath; this._programScope = programPath.scope; this._hub = programPath.hub; this._defaultOpts = this._applyDefaults(importedSource, opts, true); } addDefault(importedSourceIn, opts) { return this.addNamed("default", importedSourceIn, opts); } addNamed(importName, importedSourceIn, opts) { _assert(typeof importName === "string"); return this._generateImport(this._applyDefaults(importedSourceIn, opts), importName); } addNamespace(importedSourceIn, opts) { return this._generateImport(this._applyDefaults(importedSourceIn, opts), null); } addSideEffect(importedSourceIn, opts) { return this._generateImport(this._applyDefaults(importedSourceIn, opts), void 0); } _applyDefaults(importedSource, opts, isInit = false) { let newOpts; if (typeof importedSource === "string") { newOpts = Object.assign({}, this._defaultOpts, { importedSource }, opts); } else { _assert(!opts, "Unexpected secondary arguments."); newOpts = Object.assign({}, this._defaultOpts, importedSource); } if (!isInit && opts) { if (opts.nameHint !== undefined) newOpts.nameHint = opts.nameHint; if (opts.blockHoist !== undefined) newOpts.blockHoist = opts.blockHoist; } return newOpts; } _generateImport(opts, importName) { const isDefault = importName === "default"; const isNamed = !!importName && !isDefault; const isNamespace = importName === null; const { importedSource, importedType, importedInterop, importingInterop, ensureLiveReference, ensureNoContext, nameHint, importPosition, blockHoist } = opts; let name = nameHint || importName; const isMod = (0, _isModule.default)(this._programPath); const isModuleForNode = isMod && importingInterop === "node"; const isModuleForBabel = isMod && importingInterop === "babel"; if (importPosition === "after" && !isMod) { throw new Error(`"importPosition": "after" is only supported in modules`); } const builder = new _importBuilder.default(importedSource, this._programScope, this._hub); if (importedType === "es6") { if (!isModuleForNode && !isModuleForBabel) { throw new Error("Cannot import an ES6 module from CommonJS"); } builder.import(); if (isNamespace) { builder.namespace(nameHint || importedSource); } else if (isDefault || isNamed) { builder.named(name, importName); } } else if (importedType !== "commonjs") { throw new Error(`Unexpected interopType "${importedType}"`); } else if (importedInterop === "babel") { if (isModuleForNode) { name = name !== "default" ? name : importedSource; const es6Default = `${importedSource}$es6Default`; builder.import(); if (isNamespace) { builder.default(es6Default).var(name || importedSource).wildcardInterop(); } else if (isDefault) { if (ensureLiveReference) { builder.default(es6Default).var(name || importedSource).defaultInterop().read("default"); } else { builder.default(es6Default).var(name).defaultInterop().prop(importName); } } else if (isNamed) { builder.default(es6Default).read(importName); } } else if (isModuleForBabel) { builder.import(); if (isNamespace) { builder.namespace(name || importedSource); } else if (isDefault || isNamed) { builder.named(name, importName); } } else { builder.require(); if (isNamespace) { builder.var(name || importedSource).wildcardInterop(); } else if ((isDefault || isNamed) && ensureLiveReference) { if (isDefault) { name = name !== "default" ? name : importedSource; builder.var(name).read(importName); builder.defaultInterop(); } else { builder.var(importedSource).read(importName); } } else if (isDefault) { builder.var(name).defaultInterop().prop(importName); } else if (isNamed) { builder.var(name).prop(importName); } } } else if (importedInterop === "compiled") { if (isModuleForNode) { builder.import(); if (isNamespace) { builder.default(name || importedSource); } else if (isDefault || isNamed) { builder.default(importedSource).read(name); } } else if (isModuleForBabel) { builder.import(); if (isNamespace) { builder.namespace(name || importedSource); } else if (isDefault || isNamed) { builder.named(name, importName); } } else { builder.require(); if (isNamespace) { builder.var(name || importedSource); } else if (isDefault || isNamed) { if (ensureLiveReference) { builder.var(importedSource).read(name); } else { builder.prop(importName).var(name); } } } } else if (importedInterop === "uncompiled") { if (isDefault && ensureLiveReference) { throw new Error("No live reference for commonjs default"); } if (isModuleForNode) { builder.import(); if (isNamespace) { builder.default(name || importedSource); } else if (isDefault) { builder.default(name); } else if (isNamed) { builder.default(importedSource).read(name); } } else if (isModuleForBabel) { builder.import(); if (isNamespace) { builder.default(name || importedSource); } else if (isDefault) { builder.default(name); } else if (isNamed) { builder.named(name, importName); } } else { builder.require(); if (isNamespace) { builder.var(name || importedSource); } else if (isDefault) { builder.var(name); } else if (isNamed) { if (ensureLiveReference) { builder.var(importedSource).read(name); } else { builder.var(name).prop(importName); } } } } else { throw new Error(`Unknown importedInterop "${importedInterop}".`); } const { statements, resultName } = builder.done(); this._insertStatements(statements, importPosition, blockHoist); if ((isDefault || isNamed) && ensureNoContext && resultName.type !== "Identifier") { return sequenceExpression([numericLiteral(0), resultName]); } return resultName; } _insertStatements(statements, importPosition = "before", blockHoist = 3) { const body = this._programPath.get("body"); if (importPosition === "after") { for (let i = body.length - 1; i >= 0; i--) { if (body[i].isImportDeclaration()) { body[i].insertAfter(statements); return; } } } else { statements.forEach(node => { node._blockHoist = blockHoist; }); const targetPath = body.find(p => { const val = p.node._blockHoist; return Number.isFinite(val) && val < 4; }); if (targetPath) { targetPath.insertBefore(statements); return; } } this._programPath.unshiftContainer("body", statements); } } exports.default = ImportInjector;helper-module-imports/lib/import-builder.js000066600000010140150432031470015042 0ustar00"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _assert = require("assert"); var _t = require("@babel/types"); const { callExpression, cloneNode, expressionStatement, identifier, importDeclaration, importDefaultSpecifier, importNamespaceSpecifier, importSpecifier, memberExpression, stringLiteral, variableDeclaration, variableDeclarator } = _t; class ImportBuilder { constructor(importedSource, scope, hub) { this._statements = []; this._resultName = null; this._importedSource = void 0; this._scope = scope; this._hub = hub; this._importedSource = importedSource; } done() { return { statements: this._statements, resultName: this._resultName }; } import() { this._statements.push(importDeclaration([], stringLiteral(this._importedSource))); return this; } require() { this._statements.push(expressionStatement(callExpression(identifier("require"), [stringLiteral(this._importedSource)]))); return this; } namespace(name = "namespace") { const local = this._scope.generateUidIdentifier(name); const statement = this._statements[this._statements.length - 1]; _assert(statement.type === "ImportDeclaration"); _assert(statement.specifiers.length === 0); statement.specifiers = [importNamespaceSpecifier(local)]; this._resultName = cloneNode(local); return this; } default(name) { const id = this._scope.generateUidIdentifier(name); const statement = this._statements[this._statements.length - 1]; _assert(statement.type === "ImportDeclaration"); _assert(statement.specifiers.length === 0); statement.specifiers = [importDefaultSpecifier(id)]; this._resultName = cloneNode(id); return this; } named(name, importName) { if (importName === "default") return this.default(name); const id = this._scope.generateUidIdentifier(name); const statement = this._statements[this._statements.length - 1]; _assert(statement.type === "ImportDeclaration"); _assert(statement.specifiers.length === 0); statement.specifiers = [importSpecifier(id, identifier(importName))]; this._resultName = cloneNode(id); return this; } var(name) { const id = this._scope.generateUidIdentifier(name); let statement = this._statements[this._statements.length - 1]; if (statement.type !== "ExpressionStatement") { _assert(this._resultName); statement = expressionStatement(this._resultName); this._statements.push(statement); } this._statements[this._statements.length - 1] = variableDeclaration("var", [variableDeclarator(id, statement.expression)]); this._resultName = cloneNode(id); return this; } defaultInterop() { return this._interop(this._hub.addHelper("interopRequireDefault")); } wildcardInterop() { return this._interop(this._hub.addHelper("interopRequireWildcard")); } _interop(callee) { const statement = this._statements[this._statements.length - 1]; if (statement.type === "ExpressionStatement") { statement.expression = callExpression(callee, [statement.expression]); } else if (statement.type === "VariableDeclaration") { _assert(statement.declarations.length === 1); statement.declarations[0].init = callExpression(callee, [statement.declarations[0].init]); } else { _assert.fail("Unexpected type."); } return this; } prop(name) { const statement = this._statements[this._statements.length - 1]; if (statement.type === "ExpressionStatement") { statement.expression = memberExpression(statement.expression, identifier(name)); } else if (statement.type === "VariableDeclaration") { _assert(statement.declarations.length === 1); statement.declarations[0].init = memberExpression(statement.declarations[0].init, identifier(name)); } else { _assert.fail("Unexpected type:" + statement.type); } return this; } read(name) { this._resultName = memberExpression(this._resultName, identifier(name)); } } exports.default = ImportBuilder;helper-module-imports/LICENSE000066600000002122150432031470012006 0ustar00MIT License Copyright (c) 2014-present Sebastian McKenzie and other contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. helper-module-imports/package.json000066600000001322150432031470013270 0ustar00{ "name": "@babel/helper-module-imports", "version": "7.18.6", "description": "Babel helper functions for inserting module loads", "author": "The Babel Team (https://babel.dev/team)", "homepage": "https://babel.dev/docs/en/next/babel-helper-module-imports", "license": "MIT", "publishConfig": { "access": "public" }, "repository": { "type": "git", "url": "https://github.com/babel/babel.git", "directory": "packages/babel-helper-module-imports" }, "main": "./lib/index.js", "dependencies": { "@babel/types": "^7.18.6" }, "devDependencies": { "@babel/core": "^7.18.6", "@babel/traverse": "^7.18.6" }, "engines": { "node": ">=6.9.0" }, "type": "commonjs" }helper-replace-supers/README.md000066600000000526150432031470012240 0ustar00# @babel/helper-replace-supers > Helper function to replace supers See our website [@babel/helper-replace-supers](https://babeljs.io/docs/en/babel-helper-replace-supers) for more information. ## Install Using npm: ```sh npm install --save @babel/helper-replace-supers ``` or using yarn: ```sh yarn add @babel/helper-replace-supers ``` helper-replace-supers/lib/index.js000066600000017342150432031470013200 0ustar00"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; Object.defineProperty(exports, "environmentVisitor", { enumerable: true, get: function () { return _helperEnvironmentVisitor.default; } }); Object.defineProperty(exports, "skipAllButComputedKey", { enumerable: true, get: function () { return _helperEnvironmentVisitor.skipAllButComputedKey; } }); var _helperEnvironmentVisitor = require("@babel/helper-environment-visitor"); var _helperMemberExpressionToFunctions = require("@babel/helper-member-expression-to-functions"); var _helperOptimiseCallExpression = require("@babel/helper-optimise-call-expression"); var _template = require("@babel/template"); var _traverse = require("@babel/traverse"); var _t = require("@babel/types"); const { assignmentExpression, booleanLiteral, callExpression, cloneNode, identifier, memberExpression, sequenceExpression, stringLiteral, thisExpression } = _t; function getPrototypeOfExpression(objectRef, isStatic, file, isPrivateMethod) { objectRef = cloneNode(objectRef); const targetRef = isStatic || isPrivateMethod ? objectRef : memberExpression(objectRef, identifier("prototype")); return callExpression(file.addHelper("getPrototypeOf"), [targetRef]); } const visitor = _traverse.default.visitors.merge([_helperEnvironmentVisitor.default, { Super(path, state) { const { node, parentPath } = path; if (!parentPath.isMemberExpression({ object: node })) return; state.handle(parentPath); } }]); const unshadowSuperBindingVisitor = _traverse.default.visitors.merge([_helperEnvironmentVisitor.default, { Scopable(path, { refName }) { const binding = path.scope.getOwnBinding(refName); if (binding && binding.identifier.name === refName) { path.scope.rename(refName); } } }]); const specHandlers = { memoise(superMember, count) { const { scope, node } = superMember; const { computed, property } = node; if (!computed) { return; } const memo = scope.maybeGenerateMemoised(property); if (!memo) { return; } this.memoiser.set(property, memo, count); }, prop(superMember) { const { computed, property } = superMember.node; if (this.memoiser.has(property)) { return cloneNode(this.memoiser.get(property)); } if (computed) { return cloneNode(property); } return stringLiteral(property.name); }, get(superMember) { return this._get(superMember, this._getThisRefs()); }, _get(superMember, thisRefs) { const proto = getPrototypeOfExpression(this.getObjectRef(), this.isStatic, this.file, this.isPrivateMethod); return callExpression(this.file.addHelper("get"), [ thisRefs.memo ? sequenceExpression([thisRefs.memo, proto]) : proto, this.prop(superMember), thisRefs.this]); }, _getThisRefs() { if (!this.isDerivedConstructor) { return { this: thisExpression() }; } const thisRef = this.scope.generateDeclaredUidIdentifier("thisSuper"); return { memo: assignmentExpression("=", thisRef, thisExpression()), this: cloneNode(thisRef) }; }, set(superMember, value) { const thisRefs = this._getThisRefs(); const proto = getPrototypeOfExpression(this.getObjectRef(), this.isStatic, this.file, this.isPrivateMethod); return callExpression(this.file.addHelper("set"), [ thisRefs.memo ? sequenceExpression([thisRefs.memo, proto]) : proto, this.prop(superMember), value, thisRefs.this, booleanLiteral(superMember.isInStrictMode())]); }, destructureSet(superMember) { throw superMember.buildCodeFrameError(`Destructuring to a super field is not supported yet.`); }, call(superMember, args) { const thisRefs = this._getThisRefs(); return (0, _helperOptimiseCallExpression.default)(this._get(superMember, thisRefs), cloneNode(thisRefs.this), args, false); }, optionalCall(superMember, args) { const thisRefs = this._getThisRefs(); return (0, _helperOptimiseCallExpression.default)(this._get(superMember, thisRefs), cloneNode(thisRefs.this), args, true); }, delete(superMember) { if (superMember.node.computed) { return sequenceExpression([callExpression(this.file.addHelper("toPropertyKey"), [cloneNode(superMember.node.property)]), _template.default.expression.ast` function () { throw new ReferenceError("'delete super[expr]' is invalid"); }() `]); } else { return _template.default.expression.ast` function () { throw new ReferenceError("'delete super.prop' is invalid"); }() `; } } }; const looseHandlers = Object.assign({}, specHandlers, { prop(superMember) { const { property } = superMember.node; if (this.memoiser.has(property)) { return cloneNode(this.memoiser.get(property)); } return cloneNode(property); }, get(superMember) { const { isStatic, getSuperRef } = this; const { computed } = superMember.node; const prop = this.prop(superMember); let object; if (isStatic) { var _getSuperRef; object = (_getSuperRef = getSuperRef()) != null ? _getSuperRef : memberExpression(identifier("Function"), identifier("prototype")); } else { var _getSuperRef2; object = memberExpression((_getSuperRef2 = getSuperRef()) != null ? _getSuperRef2 : identifier("Object"), identifier("prototype")); } return memberExpression(object, prop, computed); }, set(superMember, value) { const { computed } = superMember.node; const prop = this.prop(superMember); return assignmentExpression("=", memberExpression(thisExpression(), prop, computed), value); }, destructureSet(superMember) { const { computed } = superMember.node; const prop = this.prop(superMember); return memberExpression(thisExpression(), prop, computed); }, call(superMember, args) { return (0, _helperOptimiseCallExpression.default)(this.get(superMember), thisExpression(), args, false); }, optionalCall(superMember, args) { return (0, _helperOptimiseCallExpression.default)(this.get(superMember), thisExpression(), args, true); } }); class ReplaceSupers { constructor(opts) { var _opts$constantSuper; const path = opts.methodPath; this.methodPath = path; this.isDerivedConstructor = path.isClassMethod({ kind: "constructor" }) && !!opts.superRef; this.isStatic = path.isObjectMethod() || path.node.static || (path.isStaticBlock == null ? void 0 : path.isStaticBlock()); this.isPrivateMethod = path.isPrivate() && path.isMethod(); this.file = opts.file; this.constantSuper = (_opts$constantSuper = opts.constantSuper) != null ? _opts$constantSuper : opts.isLoose; this.opts = opts; } getObjectRef() { return cloneNode(this.opts.objectRef || this.opts.getObjectRef()); } getSuperRef() { if (this.opts.superRef) return cloneNode(this.opts.superRef); if (this.opts.getSuperRef) { return cloneNode(this.opts.getSuperRef()); } } replace() { if (this.opts.refToPreserve) { this.methodPath.traverse(unshadowSuperBindingVisitor, { refName: this.opts.refToPreserve.name }); } const handler = this.constantSuper ? looseHandlers : specHandlers; (0, _helperMemberExpressionToFunctions.default)(this.methodPath, visitor, Object.assign({ file: this.file, scope: this.methodPath.scope, isDerivedConstructor: this.isDerivedConstructor, isStatic: this.isStatic, isPrivateMethod: this.isPrivateMethod, getObjectRef: this.getObjectRef.bind(this), getSuperRef: this.getSuperRef.bind(this), boundGet: handler.get }, handler)); } } exports.default = ReplaceSupers; //# sourceMappingURL=index.js.map helper-replace-supers/lib/index.js.map000066600000051002150432031470013743 0ustar00{"version":3,"names":["assignmentExpression","booleanLiteral","callExpression","cloneNode","identifier","memberExpression","sequenceExpression","stringLiteral","thisExpression","getPrototypeOfExpression","objectRef","isStatic","file","isPrivateMethod","targetRef","addHelper","visitor","traverse","visitors","merge","environmentVisitor","Super","path","state","node","parentPath","isMemberExpression","object","handle","unshadowSuperBindingVisitor","Scopable","refName","binding","scope","getOwnBinding","name","rename","specHandlers","memoise","superMember","count","computed","property","memo","maybeGenerateMemoised","memoiser","set","prop","has","get","_get","_getThisRefs","thisRefs","proto","getObjectRef","this","isDerivedConstructor","thisRef","generateDeclaredUidIdentifier","value","isInStrictMode","destructureSet","buildCodeFrameError","call","args","optimiseCall","optionalCall","delete","template","expression","ast","looseHandlers","getSuperRef","ReplaceSupers","constructor","opts","methodPath","isClassMethod","kind","superRef","isObjectMethod","static","isStaticBlock","isPrivate","isMethod","constantSuper","isLoose","replace","refToPreserve","handler","memberExpressionToFunctions","bind","boundGet"],"sources":["../src/index.ts"],"sourcesContent":["import type { File } from \"@babel/core\";\nimport environmentVisitor from \"@babel/helper-environment-visitor\";\nimport memberExpressionToFunctions from \"@babel/helper-member-expression-to-functions\";\nimport type { HandlerState } from \"@babel/helper-member-expression-to-functions\";\nimport optimiseCall from \"@babel/helper-optimise-call-expression\";\nimport template from \"@babel/template\";\nimport traverse from \"@babel/traverse\";\nimport type { NodePath, Scope } from \"@babel/traverse\";\nimport {\n assignmentExpression,\n booleanLiteral,\n callExpression,\n cloneNode,\n identifier,\n memberExpression,\n sequenceExpression,\n stringLiteral,\n thisExpression,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\n\n// TODO (Babel 8): Don't export this.\nexport {\n default as environmentVisitor,\n skipAllButComputedKey,\n} from \"@babel/helper-environment-visitor\";\n\ntype ThisRef =\n | {\n memo: t.AssignmentExpression;\n this: t.Identifier;\n }\n | { this: t.ThisExpression };\n/**\n * Creates an expression which result is the proto of objectRef.\n *\n * @example isStatic === true\n *\n * helpers.getPrototypeOf(CLASS)\n *\n * @example isStatic === false\n *\n * helpers.getPrototypeOf(CLASS.prototype)\n */\nfunction getPrototypeOfExpression(\n objectRef: t.Identifier,\n isStatic: boolean,\n file: File,\n isPrivateMethod: boolean,\n) {\n objectRef = cloneNode(objectRef);\n const targetRef =\n isStatic || isPrivateMethod\n ? objectRef\n : memberExpression(objectRef, identifier(\"prototype\"));\n\n return callExpression(file.addHelper(\"getPrototypeOf\"), [targetRef]);\n}\n\nconst visitor = traverse.visitors.merge<\n HandlerState & ReplaceState\n>([\n environmentVisitor,\n {\n Super(path, state) {\n const { node, parentPath } = path;\n if (!parentPath.isMemberExpression({ object: node })) return;\n state.handle(parentPath);\n },\n },\n]);\n\nconst unshadowSuperBindingVisitor = traverse.visitors.merge<{\n refName: string;\n}>([\n environmentVisitor,\n {\n Scopable(path, { refName }) {\n // https://github.com/Zzzen/babel/pull/1#pullrequestreview-564833183\n const binding = path.scope.getOwnBinding(refName);\n if (binding && binding.identifier.name === refName) {\n path.scope.rename(refName);\n }\n },\n },\n]);\n\ntype SharedState = {\n file: File;\n scope: Scope;\n isDerivedConstructor: boolean;\n isStatic: boolean;\n isPrivateMethod: boolean;\n getObjectRef: () => t.Identifier;\n getSuperRef: () => t.Identifier;\n // we dont need boundGet here, but memberExpressionToFunctions handler needs it.\n boundGet: HandlerState[\"get\"];\n};\n\ntype Handler = HandlerState & SharedState;\ntype SuperMember = NodePath<\n | t.MemberExpression & {\n object: t.Super;\n property: Exclude;\n }\n>;\n\ninterface SpecHandler\n extends Pick<\n Handler,\n | \"memoise\"\n | \"get\"\n | \"set\"\n | \"destructureSet\"\n | \"call\"\n | \"optionalCall\"\n | \"delete\"\n > {\n _get(\n this: Handler & SpecHandler,\n superMember: SuperMember,\n thisRefs: ThisRef,\n ): t.CallExpression;\n _getThisRefs(): ThisRef;\n prop(this: Handler & SpecHandler, superMember: SuperMember): t.Expression;\n}\n\nconst specHandlers: SpecHandler = {\n memoise(\n this: Handler & SpecHandler,\n superMember: SuperMember,\n count: number,\n ) {\n const { scope, node } = superMember;\n const { computed, property } = node;\n if (!computed) {\n return;\n }\n\n const memo = scope.maybeGenerateMemoised(property);\n if (!memo) {\n return;\n }\n\n this.memoiser.set(property, memo, count);\n },\n\n prop(this: Handler & SpecHandler, superMember: SuperMember) {\n const { computed, property } = superMember.node;\n if (this.memoiser.has(property)) {\n return cloneNode(this.memoiser.get(property));\n }\n\n if (computed) {\n return cloneNode(property);\n }\n\n return stringLiteral((property as t.Identifier).name);\n },\n\n get(this: Handler & SpecHandler, superMember: SuperMember) {\n return this._get(superMember, this._getThisRefs());\n },\n\n _get(\n this: Handler & SpecHandler,\n superMember: SuperMember,\n thisRefs: ThisRef,\n ) {\n const proto = getPrototypeOfExpression(\n this.getObjectRef(),\n this.isStatic,\n this.file,\n this.isPrivateMethod,\n );\n return callExpression(this.file.addHelper(\"get\"), [\n // @ts-expect-error memo does not exist when this.isDerivedConstructor is false\n thisRefs.memo ? sequenceExpression([thisRefs.memo, proto]) : proto,\n this.prop(superMember),\n thisRefs.this,\n ]);\n },\n\n _getThisRefs(this: Handler & SpecHandler): ThisRef {\n if (!this.isDerivedConstructor) {\n return { this: thisExpression() };\n }\n const thisRef = this.scope.generateDeclaredUidIdentifier(\"thisSuper\");\n return {\n memo: assignmentExpression(\"=\", thisRef, thisExpression()),\n this: cloneNode(thisRef),\n };\n },\n\n set(\n this: Handler & SpecHandler,\n superMember: SuperMember,\n value: t.Expression,\n ) {\n const thisRefs = this._getThisRefs();\n const proto = getPrototypeOfExpression(\n this.getObjectRef(),\n this.isStatic,\n this.file,\n this.isPrivateMethod,\n );\n return callExpression(this.file.addHelper(\"set\"), [\n // @ts-expect-error memo does not exist when this.isDerivedConstructor is false\n thisRefs.memo ? sequenceExpression([thisRefs.memo, proto]) : proto,\n this.prop(superMember),\n value,\n thisRefs.this,\n booleanLiteral(superMember.isInStrictMode()),\n ]);\n },\n\n destructureSet(this: Handler & SpecHandler, superMember: SuperMember) {\n throw superMember.buildCodeFrameError(\n `Destructuring to a super field is not supported yet.`,\n );\n },\n\n call(\n this: Handler & SpecHandler,\n superMember: SuperMember,\n args: t.CallExpression[\"arguments\"],\n ) {\n const thisRefs = this._getThisRefs();\n return optimiseCall(\n this._get(superMember, thisRefs),\n cloneNode(thisRefs.this),\n args,\n false,\n );\n },\n\n optionalCall(\n this: Handler & SpecHandler,\n superMember: SuperMember,\n args: t.CallExpression[\"arguments\"],\n ) {\n const thisRefs = this._getThisRefs();\n return optimiseCall(\n this._get(superMember, thisRefs),\n cloneNode(thisRefs.this),\n args,\n true,\n );\n },\n\n delete(this: Handler & SpecHandler, superMember: SuperMember) {\n if (superMember.node.computed) {\n return sequenceExpression([\n callExpression(this.file.addHelper(\"toPropertyKey\"), [\n cloneNode(superMember.node.property),\n ]),\n template.expression.ast`\n function () { throw new ReferenceError(\"'delete super[expr]' is invalid\"); }()\n `,\n ]);\n } else {\n return template.expression.ast`\n function () { throw new ReferenceError(\"'delete super.prop' is invalid\"); }()\n `;\n }\n },\n};\n\nconst looseHandlers = {\n ...specHandlers,\n\n prop(this: Handler & typeof specHandlers, superMember: SuperMember) {\n const { property } = superMember.node;\n if (this.memoiser.has(property)) {\n return cloneNode(this.memoiser.get(property));\n }\n\n return cloneNode(property);\n },\n\n get(this: Handler & typeof specHandlers, superMember: SuperMember) {\n const { isStatic, getSuperRef } = this;\n const { computed } = superMember.node;\n const prop = this.prop(superMember);\n\n let object;\n if (isStatic) {\n object =\n getSuperRef() ??\n memberExpression(identifier(\"Function\"), identifier(\"prototype\"));\n } else {\n object = memberExpression(\n getSuperRef() ?? identifier(\"Object\"),\n identifier(\"prototype\"),\n );\n }\n\n return memberExpression(object, prop, computed);\n },\n\n set(\n this: Handler & typeof specHandlers,\n superMember: SuperMember,\n value: t.Expression,\n ) {\n const { computed } = superMember.node;\n const prop = this.prop(superMember);\n\n return assignmentExpression(\n \"=\",\n memberExpression(thisExpression(), prop, computed),\n value,\n );\n },\n\n destructureSet(\n this: Handler & typeof specHandlers,\n superMember: SuperMember,\n ) {\n const { computed } = superMember.node;\n const prop = this.prop(superMember);\n\n return memberExpression(thisExpression(), prop, computed);\n },\n\n call(\n this: Handler & typeof specHandlers,\n superMember: SuperMember,\n args: t.CallExpression[\"arguments\"],\n ) {\n return optimiseCall(this.get(superMember), thisExpression(), args, false);\n },\n\n optionalCall(\n this: Handler & typeof specHandlers,\n superMember: SuperMember,\n args: t.CallExpression[\"arguments\"],\n ) {\n return optimiseCall(this.get(superMember), thisExpression(), args, true);\n },\n};\n\ntype ReplaceSupersOptionsBase = {\n methodPath: NodePath<\n | t.ClassMethod\n | t.ClassProperty\n | t.ObjectMethod\n | t.ClassPrivateMethod\n | t.ClassPrivateProperty\n | t.StaticBlock\n >;\n constantSuper?: boolean;\n file: File;\n // objectRef might have been shadowed in child scopes,\n // in that case, we need to rename related variables.\n refToPreserve?: t.Identifier;\n};\n\ntype ReplaceSupersOptions = ReplaceSupersOptionsBase &\n (\n | { objectRef?: undefined; getObjectRef: () => t.Node }\n | { objectRef: t.Node; getObjectRef?: undefined }\n ) &\n (\n | { superRef?: undefined; getSuperRef: () => t.Node }\n | { superRef: t.Node; getSuperRef?: undefined }\n );\n\ninterface ReplaceState {\n file: File;\n scope: Scope;\n isDerivedConstructor: boolean;\n isStatic: boolean;\n isPrivateMethod: boolean;\n getObjectRef: ReplaceSupers[\"getObjectRef\"];\n getSuperRef: ReplaceSupers[\"getSuperRef\"];\n}\n\nexport default class ReplaceSupers {\n constructor(opts: ReplaceSupersOptions) {\n const path = opts.methodPath;\n\n this.methodPath = path;\n this.isDerivedConstructor =\n path.isClassMethod({ kind: \"constructor\" }) && !!opts.superRef;\n this.isStatic =\n path.isObjectMethod() ||\n // @ts-expect-error static is not in ClassPrivateMethod\n path.node.static ||\n path.isStaticBlock?.();\n this.isPrivateMethod = path.isPrivate() && path.isMethod();\n\n this.file = opts.file;\n this.constantSuper = process.env.BABEL_8_BREAKING\n ? opts.constantSuper\n : // Fallback to isLoose for backward compatibility\n opts.constantSuper ?? (opts as any).isLoose;\n this.opts = opts;\n }\n\n declare file: File;\n declare isDerivedConstructor: boolean;\n declare constantSuper: boolean;\n declare isPrivateMethod: boolean;\n declare isStatic: boolean;\n declare methodPath: NodePath;\n declare opts: ReplaceSupersOptions;\n\n getObjectRef() {\n return cloneNode(this.opts.objectRef || this.opts.getObjectRef());\n }\n\n getSuperRef() {\n if (this.opts.superRef) return cloneNode(this.opts.superRef);\n if (this.opts.getSuperRef) {\n return cloneNode(this.opts.getSuperRef());\n }\n }\n\n replace() {\n // https://github.com/babel/babel/issues/11994\n if (this.opts.refToPreserve) {\n this.methodPath.traverse(unshadowSuperBindingVisitor, {\n refName: this.opts.refToPreserve.name,\n });\n }\n\n const handler = this.constantSuper ? looseHandlers : specHandlers;\n\n memberExpressionToFunctions(this.methodPath, visitor, {\n file: this.file,\n scope: this.methodPath.scope,\n isDerivedConstructor: this.isDerivedConstructor,\n isStatic: this.isStatic,\n isPrivateMethod: this.isPrivateMethod,\n getObjectRef: this.getObjectRef.bind(this),\n getSuperRef: this.getSuperRef.bind(this),\n // we dont need boundGet here, but memberExpressionToFunctions handler needs it.\n boundGet: handler.get,\n ...handler,\n });\n }\n}\n"],"mappings":"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"}helper-replace-supers/LICENSE000066600000002122150432031470011760 0ustar00MIT License Copyright (c) 2014-present Sebastian McKenzie and other contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. helper-replace-supers/package.json000066600000001527150432031470013251 0ustar00{ "name": "@babel/helper-replace-supers", "version": "7.20.7", "description": "Helper function to replace supers", "repository": { "type": "git", "url": "https://github.com/babel/babel.git", "directory": "packages/babel-helper-replace-supers" }, "homepage": "https://babel.dev/docs/en/next/babel-helper-replace-supers", "license": "MIT", "publishConfig": { "access": "public" }, "main": "./lib/index.js", "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-member-expression-to-functions": "^7.20.7", "@babel/helper-optimise-call-expression": "^7.18.6", "@babel/template": "^7.20.7", "@babel/traverse": "^7.20.7", "@babel/types": "^7.20.7" }, "engines": { "node": ">=6.9.0" }, "author": "The Babel Team (https://babel.dev/team)", "type": "commonjs" }plugin-transform-parameters/README.md000066600000000616150432031470013501 0ustar00# @babel/plugin-transform-parameters > Compile ES2015 default and rest parameters to ES5 See our website [@babel/plugin-transform-parameters](https://babeljs.io/docs/en/babel-plugin-transform-parameters) for more information. ## Install Using npm: ```sh npm install --save-dev @babel/plugin-transform-parameters ``` or using yarn: ```sh yarn add @babel/plugin-transform-parameters --dev ``` plugin-transform-parameters/lib/index.js000066600000002671150432031470014440 0ustar00"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "convertFunctionParams", { enumerable: true, get: function () { return _params.default; } }); exports.default = void 0; var _helperPluginUtils = require("@babel/helper-plugin-utils"); var _params = require("./params"); var _rest = require("./rest"); var _default = (0, _helperPluginUtils.declare)((api, options) => { var _api$assumption, _api$assumption2; api.assertVersion(7); const ignoreFunctionLength = (_api$assumption = api.assumption("ignoreFunctionLength")) != null ? _api$assumption : options.loose; const noNewArrows = (_api$assumption2 = api.assumption("noNewArrows")) != null ? _api$assumption2 : true; return { name: "transform-parameters", visitor: { Function(path) { if (path.isArrowFunctionExpression() && path.get("params").some(param => param.isRestElement() || param.isAssignmentPattern())) { path.arrowFunctionToExpression({ allowInsertArrowWithRest: false, noNewArrows }); if (!path.isFunctionExpression()) return; } const convertedRest = (0, _rest.default)(path); const convertedParams = (0, _params.default)(path, ignoreFunctionLength); if (convertedRest || convertedParams) { path.scope.crawl(); } } } }; }); exports.default = _default; //# sourceMappingURL=index.js.map plugin-transform-parameters/lib/index.js.map000066600000006407150432031470015215 0ustar00{"version":3,"names":["_helperPluginUtils","require","_params","_rest","_default","declare","api","options","_api$assumption","_api$assumption2","assertVersion","ignoreFunctionLength","assumption","loose","noNewArrows","name","visitor","Function","path","isArrowFunctionExpression","get","some","param","isRestElement","isAssignmentPattern","arrowFunctionToExpression","allowInsertArrowWithRest","isFunctionExpression","convertedRest","convertFunctionRest","convertedParams","convertFunctionParams","scope","crawl","exports","default"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport convertFunctionParams from \"./params\";\nimport convertFunctionRest from \"./rest\";\nexport { convertFunctionParams };\n\nexport interface Options {\n loose?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(7);\n\n const ignoreFunctionLength =\n api.assumption(\"ignoreFunctionLength\") ?? options.loose;\n // Todo(BABEL 8): Consider default it to false\n const noNewArrows = api.assumption(\"noNewArrows\") ?? true;\n\n return {\n name: \"transform-parameters\",\n\n visitor: {\n Function(path) {\n if (\n path.isArrowFunctionExpression() &&\n path\n .get(\"params\")\n .some(param => param.isRestElement() || param.isAssignmentPattern())\n ) {\n // default/rest visitors require access to `arguments`, so it cannot be an arrow\n path.arrowFunctionToExpression({\n allowInsertArrowWithRest: false,\n noNewArrows,\n });\n\n // In some cases arrowFunctionToExpression replaces the function with a wrapper.\n // Return early; the wrapped function will be visited later in the AST traversal.\n if (!path.isFunctionExpression()) return;\n }\n\n const convertedRest = convertFunctionRest(path);\n const convertedParams = convertFunctionParams(\n path,\n ignoreFunctionLength,\n );\n\n if (convertedRest || convertedParams) {\n // Manually reprocess this scope to ensure that the moved params are updated.\n path.scope.crawl();\n }\n },\n },\n };\n});\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAAyC,IAAAG,QAAA,GAO1B,IAAAC,0BAAO,EAAC,CAACC,GAAG,EAAEC,OAAgB,KAAK;EAAA,IAAAC,eAAA,EAAAC,gBAAA;EAChDH,GAAG,CAACI,aAAa,CAAC,CAAC,CAAC;EAEpB,MAAMC,oBAAoB,IAAAH,eAAA,GACxBF,GAAG,CAACM,UAAU,CAAC,sBAAsB,CAAC,YAAAJ,eAAA,GAAID,OAAO,CAACM,KAAK;EAEzD,MAAMC,WAAW,IAAAL,gBAAA,GAAGH,GAAG,CAACM,UAAU,CAAC,aAAa,CAAC,YAAAH,gBAAA,GAAI,IAAI;EAEzD,OAAO;IACLM,IAAI,EAAE,sBAAsB;IAE5BC,OAAO,EAAE;MACPC,QAAQA,CAACC,IAAI,EAAE;QACb,IACEA,IAAI,CAACC,yBAAyB,EAAE,IAChCD,IAAI,CACDE,GAAG,CAAC,QAAQ,CAAC,CACbC,IAAI,CAACC,KAAK,IAAIA,KAAK,CAACC,aAAa,EAAE,IAAID,KAAK,CAACE,mBAAmB,EAAE,CAAC,EACtE;UAEAN,IAAI,CAACO,yBAAyB,CAAC;YAC7BC,wBAAwB,EAAE,KAAK;YAC/BZ;UACF,CAAC,CAAC;UAIF,IAAI,CAACI,IAAI,CAACS,oBAAoB,EAAE,EAAE;QACpC;QAEA,MAAMC,aAAa,GAAG,IAAAC,aAAmB,EAACX,IAAI,CAAC;QAC/C,MAAMY,eAAe,GAAG,IAAAC,eAAqB,EAC3Cb,IAAI,EACJP,oBAAoB,CACrB;QAED,IAAIiB,aAAa,IAAIE,eAAe,EAAE;UAEpCZ,IAAI,CAACc,KAAK,CAACC,KAAK,EAAE;QACpB;MACF;IACF;EACF,CAAC;AACH,CAAC,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAA/B,QAAA"}plugin-transform-parameters/lib/rest.js000066600000021102150432031470014274 0ustar00"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = convertFunctionRest; var _core = require("@babel/core"); var _shadowUtils = require("./shadow-utils"); const buildRest = _core.template.statement(` for (var LEN = ARGUMENTS.length, ARRAY = new Array(ARRAY_LEN), KEY = START; KEY < LEN; KEY++) { ARRAY[ARRAY_KEY] = ARGUMENTS[KEY]; } `); const restIndex = _core.template.expression(` (INDEX < OFFSET || ARGUMENTS.length <= INDEX) ? undefined : ARGUMENTS[INDEX] `); const restIndexImpure = _core.template.expression(` REF = INDEX, (REF < OFFSET || ARGUMENTS.length <= REF) ? undefined : ARGUMENTS[REF] `); const restLength = _core.template.expression(` ARGUMENTS.length <= OFFSET ? 0 : ARGUMENTS.length - OFFSET `); function referencesRest(path, state) { if (path.node.name === state.name) { return path.scope.bindingIdentifierEquals(state.name, state.outerBinding); } return false; } const memberExpressionOptimisationVisitor = { Scope(path, state) { if (!path.scope.bindingIdentifierEquals(state.name, state.outerBinding)) { path.skip(); } }, Flow(path) { if (path.isTypeCastExpression()) return; path.skip(); }, Function(path, state) { const oldNoOptimise = state.noOptimise; state.noOptimise = true; path.traverse(memberExpressionOptimisationVisitor, state); state.noOptimise = oldNoOptimise; path.skip(); }, ReferencedIdentifier(path, state) { const { node } = path; if (node.name === "arguments") { state.deopted = true; } if (!referencesRest(path, state)) return; if (state.noOptimise) { state.deopted = true; } else { const { parentPath } = path; if (parentPath.listKey === "params" && parentPath.key < state.offset) { return; } if (parentPath.isMemberExpression({ object: node })) { const grandparentPath = parentPath.parentPath; const argsOptEligible = !state.deopted && !(grandparentPath.isAssignmentExpression() && parentPath.node === grandparentPath.node.left || grandparentPath.isLVal() || grandparentPath.isForXStatement() || grandparentPath.isUpdateExpression() || grandparentPath.isUnaryExpression({ operator: "delete" }) || (grandparentPath.isCallExpression() || grandparentPath.isNewExpression()) && parentPath.node === grandparentPath.node.callee); if (argsOptEligible) { if (parentPath.node.computed) { if (parentPath.get("property").isBaseType("number")) { state.candidates.push({ cause: "indexGetter", path }); return; } } else if (parentPath.node.property.name === "length") { state.candidates.push({ cause: "lengthGetter", path }); return; } } } if (state.offset === 0 && parentPath.isSpreadElement()) { const call = parentPath.parentPath; if (call.isCallExpression() && call.node.arguments.length === 1) { state.candidates.push({ cause: "argSpread", path }); return; } } state.references.push(path); } }, BindingIdentifier(path, state) { if (referencesRest(path, state)) { state.deopted = true; } } }; function getParamsCount(node) { let count = node.params.length; if (count > 0 && _core.types.isIdentifier(node.params[0], { name: "this" })) { count -= 1; } return count; } function hasRest(node) { const length = node.params.length; return length > 0 && _core.types.isRestElement(node.params[length - 1]); } function optimiseIndexGetter(path, argsId, offset) { const offsetLiteral = _core.types.numericLiteral(offset); let index; const parent = path.parent; if (_core.types.isNumericLiteral(parent.property)) { index = _core.types.numericLiteral(parent.property.value + offset); } else if (offset === 0) { index = parent.property; } else { index = _core.types.binaryExpression("+", parent.property, _core.types.cloneNode(offsetLiteral)); } const { scope, parentPath } = path; if (!scope.isPure(index)) { const temp = scope.generateUidIdentifierBasedOnNode(index); scope.push({ id: temp, kind: "var" }); parentPath.replaceWith(restIndexImpure({ ARGUMENTS: argsId, OFFSET: offsetLiteral, INDEX: index, REF: _core.types.cloneNode(temp) })); } else { parentPath.replaceWith(restIndex({ ARGUMENTS: argsId, OFFSET: offsetLiteral, INDEX: index })); const replacedParentPath = parentPath; const offsetTestPath = replacedParentPath.get("test"); const valRes = offsetTestPath.get("left").evaluate(); if (valRes.confident) { if (valRes.value === true) { replacedParentPath.replaceWith(scope.buildUndefinedNode()); } else { offsetTestPath.replaceWith(offsetTestPath.get("right")); } } } } function optimiseLengthGetter(path, argsId, offset) { if (offset) { path.parentPath.replaceWith(restLength({ ARGUMENTS: argsId, OFFSET: _core.types.numericLiteral(offset) })); } else { path.replaceWith(argsId); } } function convertFunctionRest(path) { const { node, scope } = path; if (!hasRest(node)) return false; const restPath = path.get(`params.${node.params.length - 1}.argument`); if (!restPath.isIdentifier()) { const shadowedParams = new Set(); (0, _shadowUtils.collectShadowedParamsNames)(restPath, path.scope, shadowedParams); let needsIIFE = shadowedParams.size > 0; if (!needsIIFE) { const state = { needsOuterBinding: false, scope }; restPath.traverse(_shadowUtils.iifeVisitor, state); needsIIFE = state.needsOuterBinding; } if (needsIIFE) { path.ensureBlock(); path.set("body", _core.types.blockStatement([(0, _shadowUtils.buildScopeIIFE)(shadowedParams, path.node.body)])); } } let rest = restPath.node; node.params.pop(); if (_core.types.isPattern(rest)) { const pattern = rest; rest = scope.generateUidIdentifier("ref"); const declar = _core.types.variableDeclaration("let", [_core.types.variableDeclarator(pattern, rest)]); path.ensureBlock(); node.body.body.unshift(declar); } else if (rest.name === "arguments") { scope.rename(rest.name); } const argsId = _core.types.identifier("arguments"); const paramsCount = getParamsCount(node); const state = { references: [], offset: paramsCount, argumentsNode: argsId, outerBinding: scope.getBindingIdentifier(rest.name), candidates: [], name: rest.name, deopted: false }; path.traverse(memberExpressionOptimisationVisitor, state); if (!state.deopted && !state.references.length) { for (const { path, cause } of state.candidates) { const clonedArgsId = _core.types.cloneNode(argsId); switch (cause) { case "indexGetter": optimiseIndexGetter(path, clonedArgsId, state.offset); break; case "lengthGetter": optimiseLengthGetter(path, clonedArgsId, state.offset); break; default: path.replaceWith(clonedArgsId); } } return true; } state.references.push(...state.candidates.map(({ path }) => path)); const start = _core.types.numericLiteral(paramsCount); const key = scope.generateUidIdentifier("key"); const len = scope.generateUidIdentifier("len"); let arrKey, arrLen; if (paramsCount) { arrKey = _core.types.binaryExpression("-", _core.types.cloneNode(key), _core.types.cloneNode(start)); arrLen = _core.types.conditionalExpression(_core.types.binaryExpression(">", _core.types.cloneNode(len), _core.types.cloneNode(start)), _core.types.binaryExpression("-", _core.types.cloneNode(len), _core.types.cloneNode(start)), _core.types.numericLiteral(0)); } else { arrKey = _core.types.identifier(key.name); arrLen = _core.types.identifier(len.name); } const loop = buildRest({ ARGUMENTS: argsId, ARRAY_KEY: arrKey, ARRAY_LEN: arrLen, START: start, ARRAY: rest, KEY: key, LEN: len }); if (state.deopted) { node.body.body.unshift(loop); } else { let target = path.getEarliestCommonAncestorFrom(state.references).getStatementParent(); target.findParent(path => { if (path.isLoop()) { target = path; } else { return path.isFunction(); } }); target.insertBefore(loop); } return true; } //# sourceMappingURL=rest.js.map plugin-transform-parameters/lib/params.js000066600000011602150432031470014606 0ustar00"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = convertFunctionParams; var _core = require("@babel/core"); var _shadowUtils = require("./shadow-utils"); const buildDefaultParam = _core.template.statement(` let VARIABLE_NAME = arguments.length > ARGUMENT_KEY && arguments[ARGUMENT_KEY] !== undefined ? arguments[ARGUMENT_KEY] : DEFAULT_VALUE; `); const buildLooseDefaultParam = _core.template.statement(` if (ASSIGNMENT_IDENTIFIER === UNDEFINED) { ASSIGNMENT_IDENTIFIER = DEFAULT_VALUE; } `); const buildLooseDestructuredDefaultParam = _core.template.statement(` let ASSIGNMENT_IDENTIFIER = PARAMETER_NAME === UNDEFINED ? DEFAULT_VALUE : PARAMETER_NAME ; `); const buildSafeArgumentsAccess = _core.template.statement(` let $0 = arguments.length > $1 ? arguments[$1] : undefined; `); function convertFunctionParams(path, ignoreFunctionLength, shouldTransformParam, replaceRestElement) { const params = path.get("params"); const isSimpleParameterList = params.every(param => param.isIdentifier()); if (isSimpleParameterList) return false; const { node, scope } = path; const body = []; const shadowedParams = new Set(); for (const param of params) { (0, _shadowUtils.collectShadowedParamsNames)(param, scope, shadowedParams); } const state = { needsOuterBinding: false, scope }; if (shadowedParams.size === 0) { for (const param of params) { if (!param.isIdentifier()) param.traverse(_shadowUtils.iifeVisitor, state); if (state.needsOuterBinding) break; } } let firstOptionalIndex = null; for (let i = 0; i < params.length; i++) { const param = params[i]; if (shouldTransformParam && !shouldTransformParam(i)) { continue; } const transformedRestNodes = []; if (replaceRestElement) { replaceRestElement(path, param, transformedRestNodes); } const paramIsAssignmentPattern = param.isAssignmentPattern(); if (paramIsAssignmentPattern && (ignoreFunctionLength || _core.types.isMethod(node, { kind: "set" }))) { const left = param.get("left"); const right = param.get("right"); const undefinedNode = scope.buildUndefinedNode(); if (left.isIdentifier()) { body.push(buildLooseDefaultParam({ ASSIGNMENT_IDENTIFIER: _core.types.cloneNode(left.node), DEFAULT_VALUE: right.node, UNDEFINED: undefinedNode })); param.replaceWith(left.node); } else if (left.isObjectPattern() || left.isArrayPattern()) { const paramName = scope.generateUidIdentifier(); body.push(buildLooseDestructuredDefaultParam({ ASSIGNMENT_IDENTIFIER: left.node, DEFAULT_VALUE: right.node, PARAMETER_NAME: _core.types.cloneNode(paramName), UNDEFINED: undefinedNode })); param.replaceWith(paramName); } } else if (paramIsAssignmentPattern) { if (firstOptionalIndex === null) firstOptionalIndex = i; const left = param.get("left"); const right = param.get("right"); const defNode = buildDefaultParam({ VARIABLE_NAME: left.node, DEFAULT_VALUE: right.node, ARGUMENT_KEY: _core.types.numericLiteral(i) }); body.push(defNode); } else if (firstOptionalIndex !== null) { const defNode = buildSafeArgumentsAccess([param.node, _core.types.numericLiteral(i)]); body.push(defNode); } else if (param.isObjectPattern() || param.isArrayPattern()) { const uid = path.scope.generateUidIdentifier("ref"); uid.typeAnnotation = param.node.typeAnnotation; const defNode = _core.types.variableDeclaration("let", [_core.types.variableDeclarator(param.node, uid)]); body.push(defNode); param.replaceWith(_core.types.cloneNode(uid)); } if (transformedRestNodes) { for (const transformedNode of transformedRestNodes) { body.push(transformedNode); } } } if (firstOptionalIndex !== null) { node.params = node.params.slice(0, firstOptionalIndex); } path.ensureBlock(); const { async, generator } = node; if (generator || state.needsOuterBinding || shadowedParams.size > 0) { body.push((0, _shadowUtils.buildScopeIIFE)(shadowedParams, path.node.body)); path.set("body", _core.types.blockStatement(body)); const bodyPath = path.get("body.body"); const arrowPath = bodyPath[bodyPath.length - 1].get("argument.callee"); arrowPath.arrowFunctionToExpression(); arrowPath.node.generator = generator; arrowPath.node.async = async; node.generator = false; node.async = false; if (async) { path.node.body = _core.template.statement.ast`{ try { ${path.node.body.body} } catch (e) { return Promise.reject(e); } }`; } } else { path.get("body").unshiftContainer("body", body); } return true; } //# sourceMappingURL=params.js.map plugin-transform-parameters/lib/shadow-utils.js000066600000004214150432031470015747 0ustar00"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.buildScopeIIFE = buildScopeIIFE; exports.collectShadowedParamsNames = collectShadowedParamsNames; exports.iifeVisitor = void 0; var _core = require("@babel/core"); const iifeVisitor = { "ReferencedIdentifier|BindingIdentifier"(path, state) { const { scope, node } = path; const { name } = node; if (name === "eval" || scope.getBinding(name) === state.scope.parent.getBinding(name) && state.scope.hasOwnBinding(name)) { state.needsOuterBinding = true; path.stop(); } }, "TypeAnnotation|TSTypeAnnotation|TypeParameterDeclaration|TSTypeParameterDeclaration": path => path.skip() }; exports.iifeVisitor = iifeVisitor; function collectShadowedParamsNames(param, functionScope, shadowedParams) { for (const name of Object.keys(param.getBindingIdentifiers())) { var _functionScope$bindin; const constantViolations = (_functionScope$bindin = functionScope.bindings[name]) == null ? void 0 : _functionScope$bindin.constantViolations; if (constantViolations) { for (const redeclarator of constantViolations) { const node = redeclarator.node; switch (node.type) { case "VariableDeclarator": { if (node.init === null) { const declaration = redeclarator.parentPath; if (!declaration.parentPath.isFor() || declaration.parentPath.get("body") === declaration) { redeclarator.remove(); break; } } shadowedParams.add(name); break; } case "FunctionDeclaration": shadowedParams.add(name); break; } } } } } function buildScopeIIFE(shadowedParams, body) { const args = []; const params = []; for (const name of shadowedParams) { args.push(_core.types.identifier(name)); params.push(_core.types.identifier(name)); } return _core.types.returnStatement(_core.types.callExpression(_core.types.arrowFunctionExpression(params, body), args)); } //# sourceMappingURL=shadow-utils.js.map plugin-transform-parameters/lib/params.js.map000066600000027177150432031470015400 0ustar00{"version":3,"names":["_core","require","_shadowUtils","buildDefaultParam","template","statement","buildLooseDefaultParam","buildLooseDestructuredDefaultParam","buildSafeArgumentsAccess","convertFunctionParams","path","ignoreFunctionLength","shouldTransformParam","replaceRestElement","params","get","isSimpleParameterList","every","param","isIdentifier","node","scope","body","shadowedParams","Set","collectShadowedParamsNames","state","needsOuterBinding","size","traverse","iifeVisitor","firstOptionalIndex","i","length","transformedRestNodes","paramIsAssignmentPattern","isAssignmentPattern","t","isMethod","kind","left","right","undefinedNode","buildUndefinedNode","push","ASSIGNMENT_IDENTIFIER","cloneNode","DEFAULT_VALUE","UNDEFINED","replaceWith","isObjectPattern","isArrayPattern","paramName","generateUidIdentifier","PARAMETER_NAME","defNode","VARIABLE_NAME","ARGUMENT_KEY","numericLiteral","uid","typeAnnotation","variableDeclaration","variableDeclarator","transformedNode","slice","ensureBlock","async","generator","buildScopeIIFE","set","blockStatement","bodyPath","arrowPath","arrowFunctionToExpression","ast","unshiftContainer"],"sources":["../src/params.ts"],"sourcesContent":["import { template, types as t } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\n\nimport {\n iifeVisitor,\n collectShadowedParamsNames,\n buildScopeIIFE,\n} from \"./shadow-utils\";\n\nconst buildDefaultParam = template.statement(`\n let VARIABLE_NAME =\n arguments.length > ARGUMENT_KEY && arguments[ARGUMENT_KEY] !== undefined ?\n arguments[ARGUMENT_KEY]\n :\n DEFAULT_VALUE;\n`);\n\nconst buildLooseDefaultParam = template.statement(`\n if (ASSIGNMENT_IDENTIFIER === UNDEFINED) {\n ASSIGNMENT_IDENTIFIER = DEFAULT_VALUE;\n }\n`);\n\nconst buildLooseDestructuredDefaultParam = template.statement(`\n let ASSIGNMENT_IDENTIFIER = PARAMETER_NAME === UNDEFINED ? DEFAULT_VALUE : PARAMETER_NAME ;\n`);\n\nconst buildSafeArgumentsAccess = template.statement(`\n let $0 = arguments.length > $1 ? arguments[$1] : undefined;\n`);\n\n// last 2 parameters are optional -- they are used by proposal-object-rest-spread/src/index.js\nexport default function convertFunctionParams(\n path: NodePath,\n ignoreFunctionLength: boolean | void,\n shouldTransformParam?: (index: number) => boolean,\n replaceRestElement?: (\n path: NodePath,\n paramPath: NodePath,\n transformedRestNodes: t.Statement[],\n ) => void,\n) {\n const params = path.get(\"params\");\n\n const isSimpleParameterList = params.every(param => param.isIdentifier());\n if (isSimpleParameterList) return false;\n\n const { node, scope } = path;\n\n const body = [];\n const shadowedParams = new Set();\n\n for (const param of params) {\n collectShadowedParamsNames(param, scope, shadowedParams);\n }\n\n const state = {\n needsOuterBinding: false,\n scope,\n };\n if (shadowedParams.size === 0) {\n for (const param of params) {\n if (!param.isIdentifier()) param.traverse(iifeVisitor, state);\n if (state.needsOuterBinding) break;\n }\n }\n\n let firstOptionalIndex = null;\n\n for (let i = 0; i < params.length; i++) {\n const param = params[i];\n\n if (shouldTransformParam && !shouldTransformParam(i)) {\n continue;\n }\n const transformedRestNodes: t.Statement[] = [];\n if (replaceRestElement) {\n replaceRestElement(path, param, transformedRestNodes);\n }\n\n const paramIsAssignmentPattern = param.isAssignmentPattern();\n if (\n paramIsAssignmentPattern &&\n (ignoreFunctionLength || t.isMethod(node, { kind: \"set\" }))\n ) {\n const left = param.get(\"left\");\n const right = param.get(\"right\");\n\n const undefinedNode = scope.buildUndefinedNode();\n\n if (left.isIdentifier()) {\n body.push(\n buildLooseDefaultParam({\n ASSIGNMENT_IDENTIFIER: t.cloneNode(left.node),\n DEFAULT_VALUE: right.node,\n UNDEFINED: undefinedNode,\n }),\n );\n param.replaceWith(left.node);\n } else if (left.isObjectPattern() || left.isArrayPattern()) {\n const paramName = scope.generateUidIdentifier();\n body.push(\n buildLooseDestructuredDefaultParam({\n ASSIGNMENT_IDENTIFIER: left.node,\n DEFAULT_VALUE: right.node,\n PARAMETER_NAME: t.cloneNode(paramName),\n UNDEFINED: undefinedNode,\n }),\n );\n param.replaceWith(paramName);\n }\n } else if (paramIsAssignmentPattern) {\n if (firstOptionalIndex === null) firstOptionalIndex = i;\n\n const left = param.get(\"left\");\n const right = param.get(\"right\");\n\n const defNode = buildDefaultParam({\n VARIABLE_NAME: left.node,\n DEFAULT_VALUE: right.node,\n ARGUMENT_KEY: t.numericLiteral(i),\n });\n body.push(defNode);\n } else if (firstOptionalIndex !== null) {\n const defNode = buildSafeArgumentsAccess([\n param.node,\n t.numericLiteral(i),\n ]);\n body.push(defNode);\n } else if (param.isObjectPattern() || param.isArrayPattern()) {\n const uid = path.scope.generateUidIdentifier(\"ref\");\n uid.typeAnnotation = param.node.typeAnnotation;\n\n const defNode = t.variableDeclaration(\"let\", [\n t.variableDeclarator(param.node, uid),\n ]);\n body.push(defNode);\n\n param.replaceWith(t.cloneNode(uid));\n }\n\n if (transformedRestNodes) {\n for (const transformedNode of transformedRestNodes) {\n body.push(transformedNode);\n }\n }\n }\n\n // we need to cut off all trailing parameters\n if (firstOptionalIndex !== null) {\n node.params = node.params.slice(0, firstOptionalIndex);\n }\n\n // ensure it's a block, useful for arrow functions\n path.ensureBlock();\n\n const { async, generator } = node;\n if (generator || state.needsOuterBinding || shadowedParams.size > 0) {\n body.push(buildScopeIIFE(shadowedParams, path.node.body));\n\n path.set(\"body\", t.blockStatement(body as t.Statement[]));\n\n // We inject an arrow and then transform it to a normal function, to be\n // sure that we correctly handle this and arguments.\n const bodyPath = path.get(\"body.body\");\n const arrowPath = bodyPath[bodyPath.length - 1].get(\n \"argument.callee\",\n ) as NodePath;\n\n // This is an IIFE, so we don't need to worry about the noNewArrows assumption\n arrowPath.arrowFunctionToExpression();\n\n arrowPath.node.generator = generator;\n arrowPath.node.async = async;\n\n node.generator = false;\n node.async = false;\n if (async) {\n // If the default value of a parameter throws, it must reject asynchronously.\n path.node.body = template.statement.ast`{\n try {\n ${path.node.body.body}\n } catch (e) {\n return Promise.reject(e);\n }\n }` as t.BlockStatement;\n }\n } else {\n path.get(\"body\").unshiftContainer(\"body\", body);\n }\n\n return true;\n}\n"],"mappings":"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"}plugin-transform-parameters/lib/rest.js.map000066600000057643150432031470015073 0ustar00{"version":3,"names":["_core","require","_shadowUtils","buildRest","template","statement","restIndex","expression","restIndexImpure","restLength","referencesRest","path","state","node","name","scope","bindingIdentifierEquals","outerBinding","memberExpressionOptimisationVisitor","Scope","skip","Flow","isTypeCastExpression","Function","oldNoOptimise","noOptimise","traverse","ReferencedIdentifier","deopted","parentPath","listKey","key","offset","isMemberExpression","object","grandparentPath","argsOptEligible","isAssignmentExpression","left","isLVal","isForXStatement","isUpdateExpression","isUnaryExpression","operator","isCallExpression","isNewExpression","callee","computed","get","isBaseType","candidates","push","cause","property","isSpreadElement","call","arguments","length","references","BindingIdentifier","getParamsCount","count","params","t","isIdentifier","hasRest","isRestElement","optimiseIndexGetter","argsId","offsetLiteral","numericLiteral","index","parent","isNumericLiteral","value","binaryExpression","cloneNode","isPure","temp","generateUidIdentifierBasedOnNode","id","kind","replaceWith","ARGUMENTS","OFFSET","INDEX","REF","replacedParentPath","offsetTestPath","valRes","evaluate","confident","buildUndefinedNode","optimiseLengthGetter","convertFunctionRest","restPath","shadowedParams","Set","collectShadowedParamsNames","needsIIFE","size","needsOuterBinding","iifeVisitor","ensureBlock","set","blockStatement","buildScopeIIFE","body","rest","pop","isPattern","pattern","generateUidIdentifier","declar","variableDeclaration","variableDeclarator","unshift","rename","identifier","paramsCount","argumentsNode","getBindingIdentifier","clonedArgsId","map","start","len","arrKey","arrLen","conditionalExpression","loop","ARRAY_KEY","ARRAY_LEN","START","ARRAY","KEY","LEN","target","getEarliestCommonAncestorFrom","getStatementParent","findParent","isLoop","isFunction","insertBefore"],"sources":["../src/rest.ts"],"sourcesContent":["import { template, types as t } from \"@babel/core\";\nimport type { NodePath, Visitor } from \"@babel/traverse\";\n\nimport {\n iifeVisitor,\n collectShadowedParamsNames,\n buildScopeIIFE,\n} from \"./shadow-utils\";\n\nconst buildRest = template.statement(`\n for (var LEN = ARGUMENTS.length,\n ARRAY = new Array(ARRAY_LEN),\n KEY = START;\n KEY < LEN;\n KEY++) {\n ARRAY[ARRAY_KEY] = ARGUMENTS[KEY];\n }\n`);\n\nconst restIndex = template.expression(`\n (INDEX < OFFSET || ARGUMENTS.length <= INDEX) ? undefined : ARGUMENTS[INDEX]\n`);\n\nconst restIndexImpure = template.expression(`\n REF = INDEX, (REF < OFFSET || ARGUMENTS.length <= REF) ? undefined : ARGUMENTS[REF]\n`);\n\nconst restLength = template.expression(`\n ARGUMENTS.length <= OFFSET ? 0 : ARGUMENTS.length - OFFSET\n`);\n\nfunction referencesRest(\n path: NodePath,\n state: State,\n) {\n if (path.node.name === state.name) {\n // Check rest parameter is not shadowed by a binding in another scope.\n return path.scope.bindingIdentifierEquals(state.name, state.outerBinding);\n }\n\n return false;\n}\n\ntype Candidate = {\n cause: \"argSpread\" | \"indexGetter\" | \"lengthGetter\";\n path: NodePath;\n};\n\ntype State = {\n references: NodePath[];\n offset: number;\n\n argumentsNode: t.Identifier;\n outerBinding: t.Identifier;\n\n // candidate member expressions we could optimise if there are no other references\n candidates: Candidate[];\n\n // local rest binding name\n name: string;\n\n /*\n It may be possible to optimize the output code in certain ways, such as\n not generating code to initialize an array (perhaps substituting direct\n references to arguments[i] or arguments.length for reads of the\n corresponding rest parameter property) or positioning the initialization\n code so that it may not have to execute depending on runtime conditions.\n\n This property tracks eligibility for optimization. \"deopted\" means give up\n and don't perform optimization. For example, when any of rest's elements /\n properties is assigned to at the top level, or referenced at all in a\n nested function.\n */\n deopted: boolean;\n noOptimise?: boolean;\n};\n\nconst memberExpressionOptimisationVisitor: Visitor = {\n Scope(path, state) {\n // check if this scope has a local binding that will shadow the rest parameter\n if (!path.scope.bindingIdentifierEquals(state.name, state.outerBinding)) {\n path.skip();\n }\n },\n\n Flow(path: NodePath) {\n // Do not skip TypeCastExpressions as the contain valid non flow code\n if (path.isTypeCastExpression()) return;\n // don't touch reference in type annotations\n path.skip();\n },\n\n Function(path, state) {\n // Detect whether any reference to rest is contained in nested functions to\n // determine if deopt is necessary.\n const oldNoOptimise = state.noOptimise;\n state.noOptimise = true;\n path.traverse(memberExpressionOptimisationVisitor, state);\n state.noOptimise = oldNoOptimise;\n\n // Skip because optimizing references to rest would refer to the `arguments`\n // of the nested function.\n path.skip();\n },\n\n ReferencedIdentifier(path, state) {\n const { node } = path;\n\n // we can't guarantee the purity of arguments\n if (node.name === \"arguments\") {\n state.deopted = true;\n }\n\n // is this a referenced identifier and is it referencing the rest parameter?\n if (!referencesRest(path, state)) return;\n\n if (state.noOptimise) {\n state.deopted = true;\n } else {\n const { parentPath } = path;\n\n // Is this identifier the right hand side of a default parameter?\n if (\n parentPath.listKey === \"params\" &&\n (parentPath.key as number) < state.offset\n ) {\n return;\n }\n\n // ex: `args[0]`\n // ex: `args.whatever`\n if (parentPath.isMemberExpression({ object: node })) {\n const grandparentPath = parentPath.parentPath;\n\n const argsOptEligible =\n !state.deopted &&\n !(\n // ex: `args[0] = \"whatever\"`\n (\n (grandparentPath.isAssignmentExpression() &&\n parentPath.node === grandparentPath.node.left) ||\n // ex: `[args[0]] = [\"whatever\"]`\n grandparentPath.isLVal() ||\n // ex: `for (rest[0] in this)`\n // ex: `for (rest[0] of this)`\n grandparentPath.isForXStatement() ||\n // ex: `++args[0]`\n // ex: `args[0]--`\n grandparentPath.isUpdateExpression() ||\n // ex: `delete args[0]`\n grandparentPath.isUnaryExpression({ operator: \"delete\" }) ||\n // ex: `args[0]()`\n // ex: `new args[0]()`\n // ex: `new args[0]`\n ((grandparentPath.isCallExpression() ||\n grandparentPath.isNewExpression()) &&\n parentPath.node === grandparentPath.node.callee)\n )\n );\n\n if (argsOptEligible) {\n if (parentPath.node.computed) {\n // if we know that this member expression is referencing a number then\n // we can safely optimise it\n if (parentPath.get(\"property\").isBaseType(\"number\")) {\n state.candidates.push({ cause: \"indexGetter\", path });\n return;\n }\n } else if (\n // @ts-expect-error .length must not be a private name\n parentPath.node.property.name === \"length\"\n ) {\n // args.length\n state.candidates.push({ cause: \"lengthGetter\", path });\n return;\n }\n }\n }\n\n // we can only do these optimizations if the rest variable would match\n // the arguments exactly\n // optimise single spread args in calls\n // ex: fn(...args)\n if (state.offset === 0 && parentPath.isSpreadElement()) {\n const call = parentPath.parentPath;\n if (call.isCallExpression() && call.node.arguments.length === 1) {\n state.candidates.push({ cause: \"argSpread\", path });\n return;\n }\n }\n\n state.references.push(path);\n }\n },\n\n /**\n * Deopt on use of a binding identifier with the same name as our rest param.\n *\n * See https://github.com/babel/babel/issues/2091\n */\n\n BindingIdentifier(path, state) {\n if (referencesRest(path, state)) {\n state.deopted = true;\n }\n },\n};\n\nfunction getParamsCount(node: t.Function) {\n let count = node.params.length;\n // skip the first parameter if it is a TypeScript 'this parameter'\n if (count > 0 && t.isIdentifier(node.params[0], { name: \"this\" })) {\n count -= 1;\n }\n return count;\n}\n\nfunction hasRest(node: t.Function) {\n const length = node.params.length;\n return length > 0 && t.isRestElement(node.params[length - 1]);\n}\n\nfunction optimiseIndexGetter(\n path: NodePath,\n argsId: t.Identifier,\n offset: number,\n) {\n const offsetLiteral = t.numericLiteral(offset);\n let index;\n const parent = path.parent as t.MemberExpression;\n\n if (t.isNumericLiteral(parent.property)) {\n index = t.numericLiteral(parent.property.value + offset);\n } else if (offset === 0) {\n // Avoid unnecessary '+ 0'\n index = parent.property;\n } else {\n index = t.binaryExpression(\n \"+\",\n parent.property,\n t.cloneNode(offsetLiteral),\n );\n }\n\n const { scope, parentPath } = path;\n if (!scope.isPure(index)) {\n const temp = scope.generateUidIdentifierBasedOnNode(index);\n scope.push({ id: temp, kind: \"var\" });\n parentPath.replaceWith(\n restIndexImpure({\n ARGUMENTS: argsId,\n OFFSET: offsetLiteral,\n INDEX: index,\n REF: t.cloneNode(temp),\n }),\n );\n } else {\n parentPath.replaceWith(\n restIndex({\n ARGUMENTS: argsId,\n OFFSET: offsetLiteral,\n INDEX: index,\n }),\n );\n const replacedParentPath = parentPath as NodePath;\n\n // See if we can statically evaluate the first test (i.e. index < offset)\n // and optimize the AST accordingly.\n const offsetTestPath = replacedParentPath.get(\n \"test\",\n ) as NodePath;\n const valRes = offsetTestPath.get(\"left\").evaluate();\n if (valRes.confident) {\n if (valRes.value === true) {\n replacedParentPath.replaceWith(scope.buildUndefinedNode());\n } else {\n offsetTestPath.replaceWith(offsetTestPath.get(\"right\"));\n }\n }\n }\n}\n\nfunction optimiseLengthGetter(\n path: NodePath,\n argsId: t.Identifier,\n offset: number,\n) {\n if (offset) {\n path.parentPath.replaceWith(\n restLength({\n ARGUMENTS: argsId,\n OFFSET: t.numericLiteral(offset),\n }),\n );\n } else {\n path.replaceWith(argsId);\n }\n}\n\nexport default function convertFunctionRest(path: NodePath) {\n const { node, scope } = path;\n if (!hasRest(node)) return false;\n\n const restPath = path.get(\n `params.${node.params.length - 1}.argument`,\n ) as NodePath;\n\n if (!restPath.isIdentifier()) {\n const shadowedParams = new Set();\n collectShadowedParamsNames(restPath, path.scope, shadowedParams);\n\n let needsIIFE = shadowedParams.size > 0;\n if (!needsIIFE) {\n const state = {\n needsOuterBinding: false,\n scope,\n };\n restPath.traverse(iifeVisitor, state);\n needsIIFE = state.needsOuterBinding;\n }\n\n if (needsIIFE) {\n path.ensureBlock();\n path.set(\n \"body\",\n t.blockStatement([buildScopeIIFE(shadowedParams, path.node.body)]),\n );\n }\n }\n\n let rest = restPath.node;\n node.params.pop(); // This returns 'rest'\n\n if (t.isPattern(rest)) {\n const pattern = rest;\n rest = scope.generateUidIdentifier(\"ref\");\n\n const declar = t.variableDeclaration(\"let\", [\n t.variableDeclarator(pattern, rest),\n ]);\n path.ensureBlock();\n (node.body as t.BlockStatement).body.unshift(declar);\n } else if (rest.name === \"arguments\") {\n scope.rename(rest.name);\n }\n\n const argsId = t.identifier(\"arguments\");\n const paramsCount = getParamsCount(node);\n\n // check and optimise for extremely common cases\n const state: State = {\n references: [],\n offset: paramsCount,\n argumentsNode: argsId,\n outerBinding: scope.getBindingIdentifier(rest.name),\n candidates: [],\n name: rest.name,\n deopted: false,\n };\n\n path.traverse(memberExpressionOptimisationVisitor, state);\n\n // There are only \"shorthand\" references\n if (!state.deopted && !state.references.length) {\n for (const { path, cause } of state.candidates) {\n const clonedArgsId = t.cloneNode(argsId);\n switch (cause) {\n case \"indexGetter\":\n optimiseIndexGetter(path, clonedArgsId, state.offset);\n break;\n case \"lengthGetter\":\n optimiseLengthGetter(path, clonedArgsId, state.offset);\n break;\n default:\n path.replaceWith(clonedArgsId);\n }\n }\n return true;\n }\n\n state.references.push(...state.candidates.map(({ path }) => path));\n\n const start = t.numericLiteral(paramsCount);\n const key = scope.generateUidIdentifier(\"key\");\n const len = scope.generateUidIdentifier(\"len\");\n\n let arrKey, arrLen;\n if (paramsCount) {\n // this method has additional params, so we need to subtract\n // the index of the current argument position from the\n // position in the array that we want to populate\n arrKey = t.binaryExpression(\"-\", t.cloneNode(key), t.cloneNode(start));\n\n // we need to work out the size of the array that we're\n // going to store all the rest parameters\n //\n // we need to add a check to avoid constructing the array\n // with <0 if there are less arguments than params as it'll\n // cause an error\n arrLen = t.conditionalExpression(\n t.binaryExpression(\">\", t.cloneNode(len), t.cloneNode(start)),\n t.binaryExpression(\"-\", t.cloneNode(len), t.cloneNode(start)),\n t.numericLiteral(0),\n );\n } else {\n arrKey = t.identifier(key.name);\n arrLen = t.identifier(len.name);\n }\n\n const loop = buildRest({\n ARGUMENTS: argsId,\n ARRAY_KEY: arrKey,\n ARRAY_LEN: arrLen,\n START: start,\n ARRAY: rest,\n KEY: key,\n LEN: len,\n });\n\n if (state.deopted) {\n (node.body as t.BlockStatement).body.unshift(loop);\n } else {\n let target = path\n .getEarliestCommonAncestorFrom(state.references)\n .getStatementParent();\n\n // don't perform the allocation inside a loop\n target.findParent(path => {\n if (path.isLoop()) {\n target = path;\n } else {\n // Stop crawling up if this is a function.\n return path.isFunction();\n }\n });\n\n target.insertBefore(loop);\n }\n\n return true;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAGA,IAAAC,YAAA,GAAAD,OAAA;AAMA,MAAME,SAAS,GAAGC,cAAQ,CAACC,SAAS,CAAE;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC;AAEF,MAAMC,SAAS,GAAGF,cAAQ,CAACG,UAAU,CAAE;AACvC;AACA,CAAC,CAAC;AAEF,MAAMC,eAAe,GAAGJ,cAAQ,CAACG,UAAU,CAAE;AAC7C;AACA,CAAC,CAAC;AAEF,MAAME,UAAU,GAAGL,cAAQ,CAACG,UAAU,CAAE;AACxC;AACA,CAAC,CAAC;AAEF,SAASG,cAAcA,CACrBC,IAA8C,EAC9CC,KAAY,EACZ;EACA,IAAID,IAAI,CAACE,IAAI,CAACC,IAAI,KAAKF,KAAK,CAACE,IAAI,EAAE;IAEjC,OAAOH,IAAI,CAACI,KAAK,CAACC,uBAAuB,CAACJ,KAAK,CAACE,IAAI,EAAEF,KAAK,CAACK,YAAY,CAAC;EAC3E;EAEA,OAAO,KAAK;AACd;AAoCA,MAAMC,mCAAmD,GAAG;EAC1DC,KAAKA,CAACR,IAAI,EAAEC,KAAK,EAAE;IAEjB,IAAI,CAACD,IAAI,CAACI,KAAK,CAACC,uBAAuB,CAACJ,KAAK,CAACE,IAAI,EAAEF,KAAK,CAACK,YAAY,CAAC,EAAE;MACvEN,IAAI,CAACS,IAAI,EAAE;IACb;EACF,CAAC;EAEDC,IAAIA,CAACV,IAAsB,EAAE;IAE3B,IAAIA,IAAI,CAACW,oBAAoB,EAAE,EAAE;IAEjCX,IAAI,CAACS,IAAI,EAAE;EACb,CAAC;EAEDG,QAAQA,CAACZ,IAAI,EAAEC,KAAK,EAAE;IAGpB,MAAMY,aAAa,GAAGZ,KAAK,CAACa,UAAU;IACtCb,KAAK,CAACa,UAAU,GAAG,IAAI;IACvBd,IAAI,CAACe,QAAQ,CAACR,mCAAmC,EAAEN,KAAK,CAAC;IACzDA,KAAK,CAACa,UAAU,GAAGD,aAAa;IAIhCb,IAAI,CAACS,IAAI,EAAE;EACb,CAAC;EAEDO,oBAAoBA,CAAChB,IAAI,EAAEC,KAAK,EAAE;IAChC,MAAM;MAAEC;IAAK,CAAC,GAAGF,IAAI;IAGrB,IAAIE,IAAI,CAACC,IAAI,KAAK,WAAW,EAAE;MAC7BF,KAAK,CAACgB,OAAO,GAAG,IAAI;IACtB;IAGA,IAAI,CAAClB,cAAc,CAACC,IAAI,EAAEC,KAAK,CAAC,EAAE;IAElC,IAAIA,KAAK,CAACa,UAAU,EAAE;MACpBb,KAAK,CAACgB,OAAO,GAAG,IAAI;IACtB,CAAC,MAAM;MACL,MAAM;QAAEC;MAAW,CAAC,GAAGlB,IAAI;MAG3B,IACEkB,UAAU,CAACC,OAAO,KAAK,QAAQ,IAC9BD,UAAU,CAACE,GAAG,GAAcnB,KAAK,CAACoB,MAAM,EACzC;QACA;MACF;MAIA,IAAIH,UAAU,CAACI,kBAAkB,CAAC;QAAEC,MAAM,EAAErB;MAAK,CAAC,CAAC,EAAE;QACnD,MAAMsB,eAAe,GAAGN,UAAU,CAACA,UAAU;QAE7C,MAAMO,eAAe,GACnB,CAACxB,KAAK,CAACgB,OAAO,IACd,EAGKO,eAAe,CAACE,sBAAsB,EAAE,IACvCR,UAAU,CAAChB,IAAI,KAAKsB,eAAe,CAACtB,IAAI,CAACyB,IAAI,IAE/CH,eAAe,CAACI,MAAM,EAAE,IAGxBJ,eAAe,CAACK,eAAe,EAAE,IAGjCL,eAAe,CAACM,kBAAkB,EAAE,IAEpCN,eAAe,CAACO,iBAAiB,CAAC;UAAEC,QAAQ,EAAE;QAAS,CAAC,CAAC,IAIxD,CAACR,eAAe,CAACS,gBAAgB,EAAE,IAClCT,eAAe,CAACU,eAAe,EAAE,KACjChB,UAAU,CAAChB,IAAI,KAAKsB,eAAe,CAACtB,IAAI,CAACiC,MAAO,CAErD;QAEH,IAAIV,eAAe,EAAE;UACnB,IAAIP,UAAU,CAAChB,IAAI,CAACkC,QAAQ,EAAE;YAG5B,IAAIlB,UAAU,CAACmB,GAAG,CAAC,UAAU,CAAC,CAACC,UAAU,CAAC,QAAQ,CAAC,EAAE;cACnDrC,KAAK,CAACsC,UAAU,CAACC,IAAI,CAAC;gBAAEC,KAAK,EAAE,aAAa;gBAAEzC;cAAK,CAAC,CAAC;cACrD;YACF;UACF,CAAC,MAAM,IAELkB,UAAU,CAAChB,IAAI,CAACwC,QAAQ,CAACvC,IAAI,KAAK,QAAQ,EAC1C;YAEAF,KAAK,CAACsC,UAAU,CAACC,IAAI,CAAC;cAAEC,KAAK,EAAE,cAAc;cAAEzC;YAAK,CAAC,CAAC;YACtD;UACF;QACF;MACF;MAMA,IAAIC,KAAK,CAACoB,MAAM,KAAK,CAAC,IAAIH,UAAU,CAACyB,eAAe,EAAE,EAAE;QACtD,MAAMC,IAAI,GAAG1B,UAAU,CAACA,UAAU;QAClC,IAAI0B,IAAI,CAACX,gBAAgB,EAAE,IAAIW,IAAI,CAAC1C,IAAI,CAAC2C,SAAS,CAACC,MAAM,KAAK,CAAC,EAAE;UAC/D7C,KAAK,CAACsC,UAAU,CAACC,IAAI,CAAC;YAAEC,KAAK,EAAE,WAAW;YAAEzC;UAAK,CAAC,CAAC;UACnD;QACF;MACF;MAEAC,KAAK,CAAC8C,UAAU,CAACP,IAAI,CAACxC,IAAI,CAAC;IAC7B;EACF,CAAC;EAQDgD,iBAAiBA,CAAChD,IAAI,EAAEC,KAAK,EAAE;IAC7B,IAAIF,cAAc,CAACC,IAAI,EAAEC,KAAK,CAAC,EAAE;MAC/BA,KAAK,CAACgB,OAAO,GAAG,IAAI;IACtB;EACF;AACF,CAAC;AAED,SAASgC,cAAcA,CAAC/C,IAAgB,EAAE;EACxC,IAAIgD,KAAK,GAAGhD,IAAI,CAACiD,MAAM,CAACL,MAAM;EAE9B,IAAII,KAAK,GAAG,CAAC,IAAIE,WAAC,CAACC,YAAY,CAACnD,IAAI,CAACiD,MAAM,CAAC,CAAC,CAAC,EAAE;IAAEhD,IAAI,EAAE;EAAO,CAAC,CAAC,EAAE;IACjE+C,KAAK,IAAI,CAAC;EACZ;EACA,OAAOA,KAAK;AACd;AAEA,SAASI,OAAOA,CAACpD,IAAgB,EAAE;EACjC,MAAM4C,MAAM,GAAG5C,IAAI,CAACiD,MAAM,CAACL,MAAM;EACjC,OAAOA,MAAM,GAAG,CAAC,IAAIM,WAAC,CAACG,aAAa,CAACrD,IAAI,CAACiD,MAAM,CAACL,MAAM,GAAG,CAAC,CAAC,CAAC;AAC/D;AAEA,SAASU,mBAAmBA,CAC1BxD,IAA8C,EAC9CyD,MAAoB,EACpBpC,MAAc,EACd;EACA,MAAMqC,aAAa,GAAGN,WAAC,CAACO,cAAc,CAACtC,MAAM,CAAC;EAC9C,IAAIuC,KAAK;EACT,MAAMC,MAAM,GAAG7D,IAAI,CAAC6D,MAA4B;EAEhD,IAAIT,WAAC,CAACU,gBAAgB,CAACD,MAAM,CAACnB,QAAQ,CAAC,EAAE;IACvCkB,KAAK,GAAGR,WAAC,CAACO,cAAc,CAACE,MAAM,CAACnB,QAAQ,CAACqB,KAAK,GAAG1C,MAAM,CAAC;EAC1D,CAAC,MAAM,IAAIA,MAAM,KAAK,CAAC,EAAE;IAEvBuC,KAAK,GAAGC,MAAM,CAACnB,QAAQ;EACzB,CAAC,MAAM;IACLkB,KAAK,GAAGR,WAAC,CAACY,gBAAgB,CACxB,GAAG,EACHH,MAAM,CAACnB,QAAQ,EACfU,WAAC,CAACa,SAAS,CAACP,aAAa,CAAC,CAC3B;EACH;EAEA,MAAM;IAAEtD,KAAK;IAAEc;EAAW,CAAC,GAAGlB,IAAI;EAClC,IAAI,CAACI,KAAK,CAAC8D,MAAM,CAACN,KAAK,CAAC,EAAE;IACxB,MAAMO,IAAI,GAAG/D,KAAK,CAACgE,gCAAgC,CAACR,KAAK,CAAC;IAC1DxD,KAAK,CAACoC,IAAI,CAAC;MAAE6B,EAAE,EAAEF,IAAI;MAAEG,IAAI,EAAE;IAAM,CAAC,CAAC;IACrCpD,UAAU,CAACqD,WAAW,CACpB1E,eAAe,CAAC;MACd2E,SAAS,EAAEf,MAAM;MACjBgB,MAAM,EAAEf,aAAa;MACrBgB,KAAK,EAAEd,KAAK;MACZe,GAAG,EAAEvB,WAAC,CAACa,SAAS,CAACE,IAAI;IACvB,CAAC,CAAC,CACH;EACH,CAAC,MAAM;IACLjD,UAAU,CAACqD,WAAW,CACpB5E,SAAS,CAAC;MACR6E,SAAS,EAAEf,MAAM;MACjBgB,MAAM,EAAEf,aAAa;MACrBgB,KAAK,EAAEd;IACT,CAAC,CAAC,CACH;IACD,MAAMgB,kBAAkB,GAAG1D,UAA+C;IAI1E,MAAM2D,cAAc,GAAGD,kBAAkB,CAACvC,GAAG,CAC3C,MAAM,CACyB;IACjC,MAAMyC,MAAM,GAAGD,cAAc,CAACxC,GAAG,CAAC,MAAM,CAAC,CAAC0C,QAAQ,EAAE;IACpD,IAAID,MAAM,CAACE,SAAS,EAAE;MACpB,IAAIF,MAAM,CAACf,KAAK,KAAK,IAAI,EAAE;QACzBa,kBAAkB,CAACL,WAAW,CAACnE,KAAK,CAAC6E,kBAAkB,EAAE,CAAC;MAC5D,CAAC,MAAM;QACLJ,cAAc,CAACN,WAAW,CAACM,cAAc,CAACxC,GAAG,CAAC,OAAO,CAAC,CAAC;MACzD;IACF;EACF;AACF;AAEA,SAAS6C,oBAAoBA,CAC3BlF,IAA8C,EAC9CyD,MAAoB,EACpBpC,MAAc,EACd;EACA,IAAIA,MAAM,EAAE;IACVrB,IAAI,CAACkB,UAAU,CAACqD,WAAW,CACzBzE,UAAU,CAAC;MACT0E,SAAS,EAAEf,MAAM;MACjBgB,MAAM,EAAErB,WAAC,CAACO,cAAc,CAACtC,MAAM;IACjC,CAAC,CAAC,CACH;EACH,CAAC,MAAM;IACLrB,IAAI,CAACuE,WAAW,CAACd,MAAM,CAAC;EAC1B;AACF;AAEe,SAAS0B,mBAAmBA,CAACnF,IAA0B,EAAE;EACtE,MAAM;IAAEE,IAAI;IAAEE;EAAM,CAAC,GAAGJ,IAAI;EAC5B,IAAI,CAACsD,OAAO,CAACpD,IAAI,CAAC,EAAE,OAAO,KAAK;EAEhC,MAAMkF,QAAQ,GAAGpF,IAAI,CAACqC,GAAG,CACtB,UAASnC,IAAI,CAACiD,MAAM,CAACL,MAAM,GAAG,CAAE,WAAU,CACN;EAEvC,IAAI,CAACsC,QAAQ,CAAC/B,YAAY,EAAE,EAAE;IAC5B,MAAMgC,cAAc,GAAG,IAAIC,GAAG,EAAU;IACxC,IAAAC,uCAA0B,EAACH,QAAQ,EAAEpF,IAAI,CAACI,KAAK,EAAEiF,cAAc,CAAC;IAEhE,IAAIG,SAAS,GAAGH,cAAc,CAACI,IAAI,GAAG,CAAC;IACvC,IAAI,CAACD,SAAS,EAAE;MACd,MAAMvF,KAAK,GAAG;QACZyF,iBAAiB,EAAE,KAAK;QACxBtF;MACF,CAAC;MACDgF,QAAQ,CAACrE,QAAQ,CAAC4E,wBAAW,EAAE1F,KAAK,CAAC;MACrCuF,SAAS,GAAGvF,KAAK,CAACyF,iBAAiB;IACrC;IAEA,IAAIF,SAAS,EAAE;MACbxF,IAAI,CAAC4F,WAAW,EAAE;MAClB5F,IAAI,CAAC6F,GAAG,CACN,MAAM,EACNzC,WAAC,CAAC0C,cAAc,CAAC,CAAC,IAAAC,2BAAc,EAACV,cAAc,EAAErF,IAAI,CAACE,IAAI,CAAC8F,IAAI,CAAC,CAAC,CAAC,CACnE;IACH;EACF;EAEA,IAAIC,IAAI,GAAGb,QAAQ,CAAClF,IAAI;EACxBA,IAAI,CAACiD,MAAM,CAAC+C,GAAG,EAAE;EAEjB,IAAI9C,WAAC,CAAC+C,SAAS,CAACF,IAAI,CAAC,EAAE;IACrB,MAAMG,OAAO,GAAGH,IAAI;IACpBA,IAAI,GAAG7F,KAAK,CAACiG,qBAAqB,CAAC,KAAK,CAAC;IAEzC,MAAMC,MAAM,GAAGlD,WAAC,CAACmD,mBAAmB,CAAC,KAAK,EAAE,CAC1CnD,WAAC,CAACoD,kBAAkB,CAACJ,OAAO,EAAEH,IAAI,CAAC,CACpC,CAAC;IACFjG,IAAI,CAAC4F,WAAW,EAAE;IACjB1F,IAAI,CAAC8F,IAAI,CAAsBA,IAAI,CAACS,OAAO,CAACH,MAAM,CAAC;EACtD,CAAC,MAAM,IAAIL,IAAI,CAAC9F,IAAI,KAAK,WAAW,EAAE;IACpCC,KAAK,CAACsG,MAAM,CAACT,IAAI,CAAC9F,IAAI,CAAC;EACzB;EAEA,MAAMsD,MAAM,GAAGL,WAAC,CAACuD,UAAU,CAAC,WAAW,CAAC;EACxC,MAAMC,WAAW,GAAG3D,cAAc,CAAC/C,IAAI,CAAC;EAGxC,MAAMD,KAAY,GAAG;IACnB8C,UAAU,EAAE,EAAE;IACd1B,MAAM,EAAEuF,WAAW;IACnBC,aAAa,EAAEpD,MAAM;IACrBnD,YAAY,EAAEF,KAAK,CAAC0G,oBAAoB,CAACb,IAAI,CAAC9F,IAAI,CAAC;IACnDoC,UAAU,EAAE,EAAE;IACdpC,IAAI,EAAE8F,IAAI,CAAC9F,IAAI;IACfc,OAAO,EAAE;EACX,CAAC;EAEDjB,IAAI,CAACe,QAAQ,CAACR,mCAAmC,EAAEN,KAAK,CAAC;EAGzD,IAAI,CAACA,KAAK,CAACgB,OAAO,IAAI,CAAChB,KAAK,CAAC8C,UAAU,CAACD,MAAM,EAAE;IAC9C,KAAK,MAAM;MAAE9C,IAAI;MAAEyC;IAAM,CAAC,IAAIxC,KAAK,CAACsC,UAAU,EAAE;MAC9C,MAAMwE,YAAY,GAAG3D,WAAC,CAACa,SAAS,CAACR,MAAM,CAAC;MACxC,QAAQhB,KAAK;QACX,KAAK,aAAa;UAChBe,mBAAmB,CAACxD,IAAI,EAAE+G,YAAY,EAAE9G,KAAK,CAACoB,MAAM,CAAC;UACrD;QACF,KAAK,cAAc;UACjB6D,oBAAoB,CAAClF,IAAI,EAAE+G,YAAY,EAAE9G,KAAK,CAACoB,MAAM,CAAC;UACtD;QACF;UACErB,IAAI,CAACuE,WAAW,CAACwC,YAAY,CAAC;MAAC;IAErC;IACA,OAAO,IAAI;EACb;EAEA9G,KAAK,CAAC8C,UAAU,CAACP,IAAI,CAAC,GAAGvC,KAAK,CAACsC,UAAU,CAACyE,GAAG,CAAC,CAAC;IAAEhH;EAAK,CAAC,KAAKA,IAAI,CAAC,CAAC;EAElE,MAAMiH,KAAK,GAAG7D,WAAC,CAACO,cAAc,CAACiD,WAAW,CAAC;EAC3C,MAAMxF,GAAG,GAAGhB,KAAK,CAACiG,qBAAqB,CAAC,KAAK,CAAC;EAC9C,MAAMa,GAAG,GAAG9G,KAAK,CAACiG,qBAAqB,CAAC,KAAK,CAAC;EAE9C,IAAIc,MAAM,EAAEC,MAAM;EAClB,IAAIR,WAAW,EAAE;IAIfO,MAAM,GAAG/D,WAAC,CAACY,gBAAgB,CAAC,GAAG,EAAEZ,WAAC,CAACa,SAAS,CAAC7C,GAAG,CAAC,EAAEgC,WAAC,CAACa,SAAS,CAACgD,KAAK,CAAC,CAAC;IAQtEG,MAAM,GAAGhE,WAAC,CAACiE,qBAAqB,CAC9BjE,WAAC,CAACY,gBAAgB,CAAC,GAAG,EAAEZ,WAAC,CAACa,SAAS,CAACiD,GAAG,CAAC,EAAE9D,WAAC,CAACa,SAAS,CAACgD,KAAK,CAAC,CAAC,EAC7D7D,WAAC,CAACY,gBAAgB,CAAC,GAAG,EAAEZ,WAAC,CAACa,SAAS,CAACiD,GAAG,CAAC,EAAE9D,WAAC,CAACa,SAAS,CAACgD,KAAK,CAAC,CAAC,EAC7D7D,WAAC,CAACO,cAAc,CAAC,CAAC,CAAC,CACpB;EACH,CAAC,MAAM;IACLwD,MAAM,GAAG/D,WAAC,CAACuD,UAAU,CAACvF,GAAG,CAACjB,IAAI,CAAC;IAC/BiH,MAAM,GAAGhE,WAAC,CAACuD,UAAU,CAACO,GAAG,CAAC/G,IAAI,CAAC;EACjC;EAEA,MAAMmH,IAAI,GAAG9H,SAAS,CAAC;IACrBgF,SAAS,EAAEf,MAAM;IACjB8D,SAAS,EAAEJ,MAAM;IACjBK,SAAS,EAAEJ,MAAM;IACjBK,KAAK,EAAER,KAAK;IACZS,KAAK,EAAEzB,IAAI;IACX0B,GAAG,EAAEvG,GAAG;IACRwG,GAAG,EAAEV;EACP,CAAC,CAAC;EAEF,IAAIjH,KAAK,CAACgB,OAAO,EAAE;IAChBf,IAAI,CAAC8F,IAAI,CAAsBA,IAAI,CAACS,OAAO,CAACa,IAAI,CAAC;EACpD,CAAC,MAAM;IACL,IAAIO,MAAM,GAAG7H,IAAI,CACd8H,6BAA6B,CAAC7H,KAAK,CAAC8C,UAAU,CAAC,CAC/CgF,kBAAkB,EAAE;IAGvBF,MAAM,CAACG,UAAU,CAAChI,IAAI,IAAI;MACxB,IAAIA,IAAI,CAACiI,MAAM,EAAE,EAAE;QACjBJ,MAAM,GAAG7H,IAAI;MACf,CAAC,MAAM;QAEL,OAAOA,IAAI,CAACkI,UAAU,EAAE;MAC1B;IACF,CAAC,CAAC;IAEFL,MAAM,CAACM,YAAY,CAACb,IAAI,CAAC;EAC3B;EAEA,OAAO,IAAI;AACb"}plugin-transform-parameters/lib/shadow-utils.js.map000066600000012037150432031470016525 0ustar00{"version":3,"names":["_core","require","iifeVisitor","ReferencedIdentifier|BindingIdentifier","path","state","scope","node","name","getBinding","parent","hasOwnBinding","needsOuterBinding","stop","skip","exports","collectShadowedParamsNames","param","functionScope","shadowedParams","Object","keys","getBindingIdentifiers","_functionScope$bindin","constantViolations","bindings","redeclarator","type","init","declaration","parentPath","isFor","get","remove","add","buildScopeIIFE","body","args","params","push","t","identifier","returnStatement","callExpression","arrowFunctionExpression"],"sources":["../src/shadow-utils.ts"],"sourcesContent":["import { types as t } from \"@babel/core\";\nimport type { NodePath, Scope, Visitor } from \"@babel/traverse\";\n\ntype State = {\n needsOuterBinding: boolean;\n scope: Scope;\n};\n\nexport const iifeVisitor: Visitor = {\n \"ReferencedIdentifier|BindingIdentifier\"(\n path: NodePath,\n state,\n ) {\n const { scope, node } = path;\n const { name } = node;\n\n if (\n name === \"eval\" ||\n (scope.getBinding(name) === state.scope.parent.getBinding(name) &&\n state.scope.hasOwnBinding(name))\n ) {\n state.needsOuterBinding = true;\n path.stop();\n }\n },\n // type annotations don't use or introduce \"real\" bindings\n \"TypeAnnotation|TSTypeAnnotation|TypeParameterDeclaration|TSTypeParameterDeclaration\":\n (path: NodePath) => path.skip(),\n};\n\nexport function collectShadowedParamsNames(\n param: NodePath,\n functionScope: Scope,\n shadowedParams: Set,\n) {\n for (const name of Object.keys(param.getBindingIdentifiers())) {\n const constantViolations = functionScope.bindings[name]?.constantViolations;\n if (constantViolations) {\n for (const redeclarator of constantViolations) {\n const node = redeclarator.node;\n // If a constant violation is a var or a function declaration,\n // we first check to see if it's a var without an init.\n // If so, we remove that declarator.\n // Otherwise, we have to wrap it in an IIFE.\n switch (node.type) {\n case \"VariableDeclarator\": {\n if (node.init === null) {\n const declaration = redeclarator.parentPath;\n // The following uninitialized var declarators should not be removed\n // for (var x in {})\n // for (var x;;)\n if (\n !declaration.parentPath.isFor() ||\n declaration.parentPath.get(\"body\") === declaration\n ) {\n redeclarator.remove();\n break;\n }\n }\n\n shadowedParams.add(name);\n break;\n }\n case \"FunctionDeclaration\":\n shadowedParams.add(name);\n break;\n }\n }\n }\n }\n}\n\nexport function buildScopeIIFE(\n shadowedParams: Set,\n body: t.BlockStatement,\n) {\n const args = [];\n const params = [];\n\n for (const name of shadowedParams) {\n // We create them twice; the other option is to use t.cloneNode\n args.push(t.identifier(name));\n params.push(t.identifier(name));\n }\n\n return t.returnStatement(\n t.callExpression(t.arrowFunctionExpression(params, body), args),\n );\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAQO,MAAMC,WAA2B,GAAG;EACzC,wCAAwCC,CACtCC,IAA4B,EAC5BC,KAAK,EACL;IACA,MAAM;MAAEC,KAAK;MAAEC;IAAK,CAAC,GAAGH,IAAI;IAC5B,MAAM;MAAEI;IAAK,CAAC,GAAGD,IAAI;IAErB,IACEC,IAAI,KAAK,MAAM,IACdF,KAAK,CAACG,UAAU,CAACD,IAAI,CAAC,KAAKH,KAAK,CAACC,KAAK,CAACI,MAAM,CAACD,UAAU,CAACD,IAAI,CAAC,IAC7DH,KAAK,CAACC,KAAK,CAACK,aAAa,CAACH,IAAI,CAAE,EAClC;MACAH,KAAK,CAACO,iBAAiB,GAAG,IAAI;MAC9BR,IAAI,CAACS,IAAI,EAAE;IACb;EACF,CAAC;EAED,qFAAqF,EAClFT,IAAc,IAAKA,IAAI,CAACU,IAAI;AACjC,CAAC;AAACC,OAAA,CAAAb,WAAA,GAAAA,WAAA;AAEK,SAASc,0BAA0BA,CACxCC,KAA6C,EAC7CC,aAAoB,EACpBC,cAA2B,EAC3B;EACA,KAAK,MAAMX,IAAI,IAAIY,MAAM,CAACC,IAAI,CAACJ,KAAK,CAACK,qBAAqB,EAAE,CAAC,EAAE;IAAA,IAAAC,qBAAA;IAC7D,MAAMC,kBAAkB,IAAAD,qBAAA,GAAGL,aAAa,CAACO,QAAQ,CAACjB,IAAI,CAAC,qBAA5Be,qBAAA,CAA8BC,kBAAkB;IAC3E,IAAIA,kBAAkB,EAAE;MACtB,KAAK,MAAME,YAAY,IAAIF,kBAAkB,EAAE;QAC7C,MAAMjB,IAAI,GAAGmB,YAAY,CAACnB,IAAI;QAK9B,QAAQA,IAAI,CAACoB,IAAI;UACf,KAAK,oBAAoB;YAAE;cACzB,IAAIpB,IAAI,CAACqB,IAAI,KAAK,IAAI,EAAE;gBACtB,MAAMC,WAAW,GAAGH,YAAY,CAACI,UAAU;gBAI3C,IACE,CAACD,WAAW,CAACC,UAAU,CAACC,KAAK,EAAE,IAC/BF,WAAW,CAACC,UAAU,CAACE,GAAG,CAAC,MAAM,CAAC,KAAKH,WAAW,EAClD;kBACAH,YAAY,CAACO,MAAM,EAAE;kBACrB;gBACF;cACF;cAEAd,cAAc,CAACe,GAAG,CAAC1B,IAAI,CAAC;cACxB;YACF;UACA,KAAK,qBAAqB;YACxBW,cAAc,CAACe,GAAG,CAAC1B,IAAI,CAAC;YACxB;QAAM;MAEZ;IACF;EACF;AACF;AAEO,SAAS2B,cAAcA,CAC5BhB,cAA2B,EAC3BiB,IAAsB,EACtB;EACA,MAAMC,IAAI,GAAG,EAAE;EACf,MAAMC,MAAM,GAAG,EAAE;EAEjB,KAAK,MAAM9B,IAAI,IAAIW,cAAc,EAAE;IAEjCkB,IAAI,CAACE,IAAI,CAACC,WAAC,CAACC,UAAU,CAACjC,IAAI,CAAC,CAAC;IAC7B8B,MAAM,CAACC,IAAI,CAACC,WAAC,CAACC,UAAU,CAACjC,IAAI,CAAC,CAAC;EACjC;EAEA,OAAOgC,WAAC,CAACE,eAAe,CACtBF,WAAC,CAACG,cAAc,CAACH,WAAC,CAACI,uBAAuB,CAACN,MAAM,EAAEF,IAAI,CAAC,EAAEC,IAAI,CAAC,CAChE;AACH"}plugin-transform-parameters/LICENSE000066600000002122150432031470013221 0ustar00MIT License Copyright (c) 2014-present Sebastian McKenzie and other contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. plugin-transform-parameters/package.json000066600000001546150432031470014513 0ustar00{ "name": "@babel/plugin-transform-parameters", "version": "7.21.3", "description": "Compile ES2015 default and rest parameters to ES5", "repository": { "type": "git", "url": "https://github.com/babel/babel.git", "directory": "packages/babel-plugin-transform-parameters" }, "homepage": "https://babel.dev/docs/en/next/babel-plugin-transform-parameters", "license": "MIT", "publishConfig": { "access": "public" }, "main": "./lib/index.js", "dependencies": { "@babel/helper-plugin-utils": "^7.20.2" }, "keywords": [ "babel-plugin" ], "peerDependencies": { "@babel/core": "^7.0.0-0" }, "devDependencies": { "@babel/core": "^7.21.3", "@babel/helper-plugin-test-runner": "^7.18.6" }, "engines": { "node": ">=6.9.0" }, "author": "The Babel Team (https://babel.dev/team)", "type": "commonjs" }plugin-transform-spread/README.md000066600000000545150432031470012615 0ustar00# @babel/plugin-transform-spread > Compile ES2015 spread to ES5 See our website [@babel/plugin-transform-spread](https://babeljs.io/docs/en/babel-plugin-transform-spread) for more information. ## Install Using npm: ```sh npm install --save-dev @babel/plugin-transform-spread ``` or using yarn: ```sh yarn add @babel/plugin-transform-spread --dev ``` plugin-transform-spread/lib/index.js000066600000012265150432031470013553 0ustar00"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _helperPluginUtils = require("@babel/helper-plugin-utils"); var _helperSkipTransparentExpressionWrappers = require("@babel/helper-skip-transparent-expression-wrappers"); var _core = require("@babel/core"); var _default = (0, _helperPluginUtils.declare)((api, options) => { var _api$assumption, _options$allowArrayLi; api.assertVersion(7); const iterableIsArray = (_api$assumption = api.assumption("iterableIsArray")) != null ? _api$assumption : options.loose; const arrayLikeIsIterable = (_options$allowArrayLi = options.allowArrayLike) != null ? _options$allowArrayLi : api.assumption("arrayLikeIsIterable"); function getSpreadLiteral(spread, scope) { if (iterableIsArray && !_core.types.isIdentifier(spread.argument, { name: "arguments" })) { return spread.argument; } else { return scope.toArray(spread.argument, true, arrayLikeIsIterable); } } function hasHole(spread) { return spread.elements.some(el => el === null); } function hasSpread(nodes) { for (let i = 0; i < nodes.length; i++) { if (_core.types.isSpreadElement(nodes[i])) { return true; } } return false; } function push(_props, nodes) { if (!_props.length) return _props; nodes.push(_core.types.arrayExpression(_props)); return []; } function build(props, scope, file) { const nodes = []; let _props = []; for (const prop of props) { if (_core.types.isSpreadElement(prop)) { _props = push(_props, nodes); let spreadLiteral = getSpreadLiteral(prop, scope); if (_core.types.isArrayExpression(spreadLiteral) && hasHole(spreadLiteral)) { spreadLiteral = _core.types.callExpression(file.addHelper("arrayWithoutHoles"), [spreadLiteral]); } nodes.push(spreadLiteral); } else { _props.push(prop); } } push(_props, nodes); return nodes; } return { name: "transform-spread", visitor: { ArrayExpression(path) { const { node, scope } = path; const elements = node.elements; if (!hasSpread(elements)) return; const nodes = build(elements, scope, this.file); let first = nodes[0]; if (nodes.length === 1 && first !== elements[0].argument) { path.replaceWith(first); return; } if (!_core.types.isArrayExpression(first)) { first = _core.types.arrayExpression([]); } else { nodes.shift(); } path.replaceWith(_core.types.callExpression(_core.types.memberExpression(first, _core.types.identifier("concat")), nodes)); }, CallExpression(path) { const { node, scope } = path; const args = node.arguments; if (!hasSpread(args)) return; const calleePath = (0, _helperSkipTransparentExpressionWrappers.skipTransparentExprWrappers)(path.get("callee")); if (calleePath.isSuper()) { throw path.buildCodeFrameError("It's not possible to compile spread arguments in `super()` without compiling classes.\n" + "Please add '@babel/plugin-transform-classes' to your Babel configuration."); } let contextLiteral = scope.buildUndefinedNode(); node.arguments = []; let nodes; if (args.length === 1 && _core.types.isIdentifier(args[0].argument, { name: "arguments" })) { nodes = [args[0].argument]; } else { nodes = build(args, scope, this.file); } const first = nodes.shift(); if (nodes.length) { node.arguments.push(_core.types.callExpression(_core.types.memberExpression(first, _core.types.identifier("concat")), nodes)); } else { node.arguments.push(first); } const callee = calleePath.node; if (_core.types.isMemberExpression(callee)) { const temp = scope.maybeGenerateMemoised(callee.object); if (temp) { callee.object = _core.types.assignmentExpression("=", temp, callee.object); contextLiteral = temp; } else { contextLiteral = _core.types.cloneNode(callee.object); } } node.callee = _core.types.memberExpression(node.callee, _core.types.identifier("apply")); if (_core.types.isSuper(contextLiteral)) { contextLiteral = _core.types.thisExpression(); } node.arguments.unshift(_core.types.cloneNode(contextLiteral)); }, NewExpression(path) { const { node, scope } = path; if (!hasSpread(node.arguments)) return; const nodes = build(node.arguments, scope, this.file); const first = nodes.shift(); let args; if (nodes.length) { args = _core.types.callExpression(_core.types.memberExpression(first, _core.types.identifier("concat")), nodes); } else { args = first; } path.replaceWith(_core.types.callExpression(path.hub.addHelper("construct"), [node.callee, args])); } } }; }); exports.default = _default; //# sourceMappingURL=index.js.map plugin-transform-spread/lib/index.js.map000066600000031553150432031470014330 0ustar00{"version":3,"names":["declare","api","options","assertVersion","iterableIsArray","assumption","loose","arrayLikeIsIterable","allowArrayLike","getSpreadLiteral","spread","scope","t","isIdentifier","argument","name","toArray","hasHole","elements","some","el","hasSpread","nodes","i","length","isSpreadElement","push","_props","arrayExpression","build","props","file","prop","spreadLiteral","isArrayExpression","callExpression","addHelper","visitor","ArrayExpression","path","node","first","replaceWith","shift","memberExpression","identifier","CallExpression","args","arguments","calleePath","skipTransparentExprWrappers","get","isSuper","buildCodeFrameError","contextLiteral","buildUndefinedNode","callee","isMemberExpression","temp","maybeGenerateMemoised","object","assignmentExpression","cloneNode","thisExpression","unshift","NewExpression","hub"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { skipTransparentExprWrappers } from \"@babel/helper-skip-transparent-expression-wrappers\";\nimport type { File } from \"@babel/core\";\nimport { types as t } from \"@babel/core\";\nimport type { NodePath, Scope } from \"@babel/traverse\";\n\ntype ListElement = t.SpreadElement | t.Expression;\n\nexport interface Options {\n allowArrayLike?: boolean;\n loose?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(7);\n\n const iterableIsArray = api.assumption(\"iterableIsArray\") ?? options.loose;\n const arrayLikeIsIterable =\n options.allowArrayLike ?? api.assumption(\"arrayLikeIsIterable\");\n\n function getSpreadLiteral(\n spread: t.SpreadElement,\n scope: Scope,\n ): t.Expression {\n if (\n iterableIsArray &&\n !t.isIdentifier(spread.argument, { name: \"arguments\" })\n ) {\n return spread.argument;\n } else {\n return scope.toArray(spread.argument, true, arrayLikeIsIterable);\n }\n }\n\n function hasHole(spread: t.ArrayExpression): boolean {\n return spread.elements.some(el => el === null);\n }\n\n function hasSpread(nodes: Array): boolean {\n for (let i = 0; i < nodes.length; i++) {\n if (t.isSpreadElement(nodes[i])) {\n return true;\n }\n }\n return false;\n }\n\n function push(_props: Array, nodes: Array) {\n if (!_props.length) return _props;\n nodes.push(t.arrayExpression(_props));\n return [];\n }\n\n function build(\n props: Array,\n scope: Scope,\n file: File,\n ): t.Expression[] {\n const nodes: Array = [];\n let _props: Array = [];\n\n for (const prop of props) {\n if (t.isSpreadElement(prop)) {\n _props = push(_props, nodes);\n let spreadLiteral = getSpreadLiteral(prop, scope);\n\n if (t.isArrayExpression(spreadLiteral) && hasHole(spreadLiteral)) {\n spreadLiteral = t.callExpression(\n file.addHelper(\n process.env.BABEL_8_BREAKING\n ? \"arrayLikeToArray\"\n : \"arrayWithoutHoles\",\n ),\n [spreadLiteral],\n );\n }\n\n nodes.push(spreadLiteral);\n } else {\n _props.push(prop);\n }\n }\n\n push(_props, nodes);\n\n return nodes;\n }\n\n return {\n name: \"transform-spread\",\n\n visitor: {\n ArrayExpression(path): void {\n const { node, scope } = path;\n const elements = node.elements;\n if (!hasSpread(elements)) return;\n\n const nodes = build(elements, scope, this.file);\n let first = nodes[0];\n\n // If there is only one element in the ArrayExpression and\n // the element was transformed (Array.prototype.slice.call or toConsumableArray)\n // we know that the transformed code already takes care of cloning the array.\n // So we can simply return that element.\n if (\n nodes.length === 1 &&\n first !== (elements[0] as t.SpreadElement).argument\n ) {\n path.replaceWith(first);\n return;\n }\n\n // If the first element is a ArrayExpression we can directly call\n // concat on it.\n // `[..].concat(..)`\n // If not then we have to use `[].concat(arr)` and not `arr.concat`\n // because `arr` could be extended/modified (e.g. Immutable) and we do not know exactly\n // what concat would produce.\n if (!t.isArrayExpression(first)) {\n first = t.arrayExpression([]);\n } else {\n nodes.shift();\n }\n\n path.replaceWith(\n t.callExpression(\n t.memberExpression(first, t.identifier(\"concat\")),\n nodes,\n ),\n );\n },\n CallExpression(path): void {\n const { node, scope } = path;\n\n const args = node.arguments as Array;\n if (!hasSpread(args)) return;\n const calleePath = skipTransparentExprWrappers(\n path.get(\"callee\") as NodePath,\n );\n if (calleePath.isSuper()) {\n // NOTE: spread and classes have almost the same compat data, so this is very unlikely to happen in practice.\n throw path.buildCodeFrameError(\n \"It's not possible to compile spread arguments in `super()` without compiling classes.\\n\" +\n \"Please add '@babel/plugin-transform-classes' to your Babel configuration.\",\n );\n }\n let contextLiteral: t.Expression | t.Super = scope.buildUndefinedNode();\n node.arguments = [];\n\n let nodes: t.Expression[];\n if (\n args.length === 1 &&\n t.isIdentifier((args[0] as t.SpreadElement).argument, {\n name: \"arguments\",\n })\n ) {\n nodes = [(args[0] as t.SpreadElement).argument];\n } else {\n nodes = build(args, scope, this.file);\n }\n\n const first = nodes.shift();\n if (nodes.length) {\n node.arguments.push(\n t.callExpression(\n t.memberExpression(first, t.identifier(\"concat\")),\n nodes,\n ),\n );\n } else {\n node.arguments.push(first);\n }\n\n const callee = calleePath.node as t.MemberExpression;\n\n if (t.isMemberExpression(callee)) {\n const temp = scope.maybeGenerateMemoised(callee.object);\n if (temp) {\n callee.object = t.assignmentExpression(\n \"=\",\n temp,\n // object must not be Super when `temp` is an identifier\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n callee.object as t.Expression,\n );\n contextLiteral = temp;\n } else {\n contextLiteral = t.cloneNode(callee.object);\n }\n }\n\n // We use the original callee here, to preserve any types/parentheses\n node.callee = t.memberExpression(\n node.callee as t.Expression,\n t.identifier(\"apply\"),\n );\n if (t.isSuper(contextLiteral)) {\n contextLiteral = t.thisExpression();\n }\n\n node.arguments.unshift(t.cloneNode(contextLiteral));\n },\n\n NewExpression(path): void {\n const { node, scope } = path;\n if (!hasSpread(node.arguments)) return;\n\n const nodes = build(\n node.arguments as Array,\n scope,\n this.file,\n );\n\n const first = nodes.shift();\n\n let args: t.Expression;\n if (nodes.length) {\n args = t.callExpression(\n t.memberExpression(first, t.identifier(\"concat\")),\n nodes,\n );\n } else {\n args = first;\n }\n\n path.replaceWith(\n t.callExpression(path.hub.addHelper(\"construct\"), [\n node.callee as t.Expression,\n args,\n ]),\n );\n },\n },\n };\n});\n"],"mappings":"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"}plugin-transform-spread/LICENSE000066600000002122150432031470012334 0ustar00MIT License Copyright (c) 2014-present Sebastian McKenzie and other contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. plugin-transform-spread/package.json000066600000001612150432031470013620 0ustar00{ "name": "@babel/plugin-transform-spread", "version": "7.20.7", "description": "Compile ES2015 spread to ES5", "repository": { "type": "git", "url": "https://github.com/babel/babel.git", "directory": "packages/babel-plugin-transform-spread" }, "license": "MIT", "publishConfig": { "access": "public" }, "main": "./lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" }, "devDependencies": { "@babel/core": "^7.20.7", "@babel/helper-plugin-test-runner": "^7.18.6" }, "homepage": "https://babel.dev/docs/en/next/babel-plugin-transform-spread", "engines": { "node": ">=6.9.0" }, "author": "The Babel Team (https://babel.dev/team)", "type": "commonjs" }plugin-proposal-logical-assignment-operators/README.md000066600000000772150432031470016761 0ustar00# @babel/plugin-proposal-logical-assignment-operators > Transforms logical assignment operators into short-circuited assignments See our website [@babel/plugin-proposal-logical-assignment-operators](https://babeljs.io/docs/en/babel-plugin-proposal-logical-assignment-operators) for more information. ## Install Using npm: ```sh npm install --save-dev @babel/plugin-proposal-logical-assignment-operators ``` or using yarn: ```sh yarn add @babel/plugin-proposal-logical-assignment-operators --dev ``` plugin-proposal-logical-assignment-operators/lib/index.js000066600000003464150432031470017716 0ustar00"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _helperPluginUtils = require("@babel/helper-plugin-utils"); var _pluginSyntaxLogicalAssignmentOperators = require("@babel/plugin-syntax-logical-assignment-operators"); var _core = require("@babel/core"); var _default = (0, _helperPluginUtils.declare)(api => { api.assertVersion(7); return { name: "proposal-logical-assignment-operators", inherits: _pluginSyntaxLogicalAssignmentOperators.default, visitor: { AssignmentExpression(path) { const { node, scope } = path; const { operator, left, right } = node; const operatorTrunc = operator.slice(0, -1); if (!_core.types.LOGICAL_OPERATORS.includes(operatorTrunc)) { return; } const lhs = _core.types.cloneNode(left); if (_core.types.isMemberExpression(left)) { const { object, property, computed } = left; const memo = scope.maybeGenerateMemoised(object); if (memo) { left.object = memo; lhs.object = _core.types.assignmentExpression("=", _core.types.cloneNode(memo), object); } if (computed) { const memo = scope.maybeGenerateMemoised(property); if (memo) { left.property = memo; lhs.property = _core.types.assignmentExpression("=", _core.types.cloneNode(memo), property); } } } path.replaceWith(_core.types.logicalExpression( operatorTrunc, lhs, _core.types.assignmentExpression("=", left, right))); } } }; }); exports.default = _default; //# sourceMappingURL=index.js.map plugin-proposal-logical-assignment-operators/lib/index.js.map000066600000007464150432031470020476 0ustar00{"version":3,"names":["declare","api","assertVersion","name","inherits","syntaxLogicalAssignmentOperators","default","visitor","AssignmentExpression","path","node","scope","operator","left","right","operatorTrunc","slice","t","LOGICAL_OPERATORS","includes","lhs","cloneNode","isMemberExpression","object","property","computed","memo","maybeGenerateMemoised","assignmentExpression","replaceWith","logicalExpression"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport syntaxLogicalAssignmentOperators from \"@babel/plugin-syntax-logical-assignment-operators\";\nimport { types as t } from \"@babel/core\";\n\nexport default declare(api => {\n api.assertVersion(7);\n\n return {\n name: \"proposal-logical-assignment-operators\",\n inherits: syntaxLogicalAssignmentOperators.default,\n\n visitor: {\n AssignmentExpression(path) {\n const { node, scope } = path;\n const { operator, left, right } = node;\n const operatorTrunc = operator.slice(0, -1);\n if (!t.LOGICAL_OPERATORS.includes(operatorTrunc)) {\n return;\n }\n\n const lhs = t.cloneNode(left) as t.Identifier | t.MemberExpression;\n if (t.isMemberExpression(left)) {\n const { object, property, computed } = left;\n const memo = scope.maybeGenerateMemoised(object);\n if (memo) {\n left.object = memo;\n (lhs as t.MemberExpression).object = t.assignmentExpression(\n \"=\",\n t.cloneNode(memo),\n // object must not be Super when `memo` is an identifier\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n object as t.Expression,\n );\n }\n\n if (computed) {\n const memo = scope.maybeGenerateMemoised(property);\n if (memo) {\n left.property = memo;\n (lhs as t.MemberExpression).property = t.assignmentExpression(\n \"=\",\n t.cloneNode(memo),\n // @ts-expect-error todo(flow->ts): property can be t.PrivateName\n property,\n );\n }\n }\n }\n\n path.replaceWith(\n t.logicalExpression(\n // @ts-expect-error operatorTrunc has been tested by t.LOGICAL_OPERATORS\n operatorTrunc,\n lhs,\n t.assignmentExpression(\"=\", left, right),\n ),\n );\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA;AACA;AACA;AAAyC,eAE1B,IAAAA,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAAC,CAAC,CAAC;EAEpB,OAAO;IACLC,IAAI,EAAE,uCAAuC;IAC7CC,QAAQ,EAAEC,uCAAgC,CAACC,OAAO;IAElDC,OAAO,EAAE;MACPC,oBAAoB,CAACC,IAAI,EAAE;QACzB,MAAM;UAAEC,IAAI;UAAEC;QAAM,CAAC,GAAGF,IAAI;QAC5B,MAAM;UAAEG,QAAQ;UAAEC,IAAI;UAAEC;QAAM,CAAC,GAAGJ,IAAI;QACtC,MAAMK,aAAa,GAAGH,QAAQ,CAACI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3C,IAAI,CAACC,WAAC,CAACC,iBAAiB,CAACC,QAAQ,CAACJ,aAAa,CAAC,EAAE;UAChD;QACF;QAEA,MAAMK,GAAG,GAAGH,WAAC,CAACI,SAAS,CAACR,IAAI,CAAsC;QAClE,IAAII,WAAC,CAACK,kBAAkB,CAACT,IAAI,CAAC,EAAE;UAC9B,MAAM;YAAEU,MAAM;YAAEC,QAAQ;YAAEC;UAAS,CAAC,GAAGZ,IAAI;UAC3C,MAAMa,IAAI,GAAGf,KAAK,CAACgB,qBAAqB,CAACJ,MAAM,CAAC;UAChD,IAAIG,IAAI,EAAE;YACRb,IAAI,CAACU,MAAM,GAAGG,IAAI;YACjBN,GAAG,CAAwBG,MAAM,GAAGN,WAAC,CAACW,oBAAoB,CACzD,GAAG,EACHX,WAAC,CAACI,SAAS,CAACK,IAAI,CAAC;YAGjBH,MAAM,CACP;UACH;UAEA,IAAIE,QAAQ,EAAE;YACZ,MAAMC,IAAI,GAAGf,KAAK,CAACgB,qBAAqB,CAACH,QAAQ,CAAC;YAClD,IAAIE,IAAI,EAAE;cACRb,IAAI,CAACW,QAAQ,GAAGE,IAAI;cACnBN,GAAG,CAAwBI,QAAQ,GAAGP,WAAC,CAACW,oBAAoB,CAC3D,GAAG,EACHX,WAAC,CAACI,SAAS,CAACK,IAAI,CAAC;cAEjBF,QAAQ,CACT;YACH;UACF;QACF;QAEAf,IAAI,CAACoB,WAAW,CACdZ,WAAC,CAACa,iBAAiB;QAEjBf,aAAa,EACbK,GAAG,EACHH,WAAC,CAACW,oBAAoB,CAAC,GAAG,EAAEf,IAAI,EAAEC,KAAK,CAAC,CACzC,CACF;MACH;IACF;EACF,CAAC;AACH,CAAC,CAAC;AAAA"}plugin-proposal-logical-assignment-operators/LICENSE000066600000002122150432031470016476 0ustar00MIT License Copyright (c) 2014-present Sebastian McKenzie and other contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. plugin-proposal-logical-assignment-operators/package.json000066600000002173150432031470017765 0ustar00{ "name": "@babel/plugin-proposal-logical-assignment-operators", "version": "7.20.7", "description": "Transforms logical assignment operators into short-circuited assignments", "repository": { "type": "git", "url": "https://github.com/babel/babel.git", "directory": "packages/babel-plugin-proposal-logical-assignment-operators" }, "license": "MIT", "publishConfig": { "access": "public" }, "main": "./lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" }, "devDependencies": { "@babel/core": "^7.20.7", "@babel/helper-plugin-test-runner": "^7.18.6", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, "homepage": "https://babel.dev/docs/en/next/babel-plugin-proposal-logical-assignment-operators", "engines": { "node": ">=6.9.0" }, "author": "The Babel Team (https://babel.dev/team)", "type": "commonjs" }helper-annotate-as-pure/README.md000066600000000601150432031470012463 0ustar00# @babel/helper-annotate-as-pure > Helper function to annotate paths and nodes with #__PURE__ comment See our website [@babel/helper-annotate-as-pure](https://babeljs.io/docs/en/babel-helper-annotate-as-pure) for more information. ## Install Using npm: ```sh npm install --save @babel/helper-annotate-as-pure ``` or using yarn: ```sh yarn add @babel/helper-annotate-as-pure ``` helper-annotate-as-pure/lib/index.js000066600000001040150432031470013415 0ustar00"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = annotateAsPure; var _t = require("@babel/types"); const { addComment } = _t; const PURE_ANNOTATION = "#__PURE__"; const isPureAnnotated = ({ leadingComments }) => !!leadingComments && leadingComments.some(comment => /[@#]__PURE__/.test(comment.value)); function annotateAsPure(pathOrNode) { const node = pathOrNode["node"] || pathOrNode; if (isPureAnnotated(node)) { return; } addComment(node, "leading", PURE_ANNOTATION); }helper-annotate-as-pure/LICENSE000066600000002122150432031470012211 0ustar00MIT License Copyright (c) 2014-present Sebastian McKenzie and other contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. helper-annotate-as-pure/package.json000066600000001216150432031470013475 0ustar00{ "name": "@babel/helper-annotate-as-pure", "version": "7.18.6", "description": "Helper function to annotate paths and nodes with #__PURE__ comment", "repository": { "type": "git", "url": "https://github.com/babel/babel.git", "directory": "packages/babel-helper-annotate-as-pure" }, "homepage": "https://babel.dev/docs/en/next/babel-helper-annotate-as-pure", "license": "MIT", "publishConfig": { "access": "public" }, "main": "./lib/index.js", "dependencies": { "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" }, "author": "The Babel Team (https://babel.dev/team)", "type": "commonjs" }plugin-bugfix-safari-id-destructuring-collision-in-function-expression/README.md000066600000001217150432031470023761 0ustar00# @babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression > Rename destructuring parameter to workaround https://bugs.webkit.org/show_bug.cgi?id=220517 See our website [@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression](https://babeljs.io/docs/en/babel-plugin-bugfix-safari-id-destructuring-collision-in-function-expression) for more information. ## Install Using npm: ```sh npm install --save-dev @babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression ``` or using yarn: ```sh yarn add @babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression --dev ``` plugin-bugfix-safari-id-destructuring-collision-in-function-expression/lib/index.js000066600000002164150432031470024717 0ustar00'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var helperPluginUtils = require('@babel/helper-plugin-utils'); function shouldTransform(path) { const { node } = path; const functionId = node.id; if (!functionId) return false; const name = functionId.name; const paramNameBinding = path.scope.getOwnBinding(name); if (paramNameBinding === undefined) { return false; } if (paramNameBinding.kind !== "param") { return false; } if (paramNameBinding.identifier === paramNameBinding.path.node) { return false; } return name; } var index = helperPluginUtils.declare(api => { api.assertVersion("^7.16.0"); return { name: "plugin-bugfix-safari-id-destructuring-collision-in-function-expression", visitor: { FunctionExpression(path) { const name = shouldTransform(path); if (name) { const { scope } = path; const newParamName = scope.generateUid(name); scope.rename(name, newParamName); } } } }; }); exports["default"] = index; //# sourceMappingURL=index.js.map plugin-bugfix-safari-id-destructuring-collision-in-function-expression/lib/index.js.map000066600000007053150432031470025475 0ustar00{"version":3,"file":"index.js","sources":["../src/util.ts","../src/index.ts"],"sourcesContent":["import type { FunctionExpression } from \"@babel/types\";\nimport type { NodePath } from \"@babel/traverse\";\n\n/**\n * Check whether a function expression can be affected by\n * https://bugs.webkit.org/show_bug.cgi?id=220517\n * @param path The function expression NodePath\n * @returns the name of function id if it should be transformed, otherwise returns false\n */\nexport function shouldTransform(\n path: NodePath,\n): string | false {\n const { node } = path;\n const functionId = node.id;\n if (!functionId) return false;\n\n const name = functionId.name;\n // On collision, `getOwnBinding` returns the param binding\n // with the id binding be registered as constant violation\n const paramNameBinding = path.scope.getOwnBinding(name);\n if (paramNameBinding === undefined) {\n // Case 1: the function id is injected by babel-helper-name-function, which\n // assigns `NOT_LOCAL_BINDING` to the `functionId` and thus not registering id\n // in scope tracking\n // Case 2: the function id is injected by a third party plugin which does not update the\n // scope info\n return false;\n }\n if (paramNameBinding.kind !== \"param\") {\n // the function id does not reproduce in params\n return false;\n }\n\n if (paramNameBinding.identifier === paramNameBinding.path.node) {\n // the param binding is a simple parameter\n // e.g. (function a(a) {})\n return false;\n }\n\n return name;\n}\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { shouldTransform } from \"./util\";\n\nexport default declare(api => {\n api.assertVersion(\"^7.16.0\");\n\n return {\n name: \"plugin-bugfix-safari-id-destructuring-collision-in-function-expression\",\n\n visitor: {\n FunctionExpression(path) {\n const name = shouldTransform(path);\n if (name) {\n // Now we have (function a([a]) {})\n const { scope } = path;\n // invariant: path.node.id is always an Identifier here\n const newParamName = scope.generateUid(name);\n scope.rename(name, newParamName);\n }\n },\n },\n };\n});\n"],"names":["shouldTransform","path","node","functionId","id","name","paramNameBinding","scope","getOwnBinding","undefined","kind","identifier","declare","api","assertVersion","visitor","FunctionExpression","newParamName","generateUid","rename"],"mappings":";;;;;;AASO,SAASA,eAAT,CACLC,IADK,EAEW;EAChB,MAAM;AAAEC,IAAAA,IAAAA;AAAF,GAAA,GAAWD,IAAjB,CAAA;AACA,EAAA,MAAME,UAAU,GAAGD,IAAI,CAACE,EAAxB,CAAA;AACA,EAAA,IAAI,CAACD,UAAL,EAAiB,OAAO,KAAP,CAAA;AAEjB,EAAA,MAAME,IAAI,GAAGF,UAAU,CAACE,IAAxB,CAAA;EAGA,MAAMC,gBAAgB,GAAGL,IAAI,CAACM,KAAL,CAAWC,aAAX,CAAyBH,IAAzB,CAAzB,CAAA;;EACA,IAAIC,gBAAgB,KAAKG,SAAzB,EAAoC;AAMlC,IAAA,OAAO,KAAP,CAAA;AACD,GAAA;;AACD,EAAA,IAAIH,gBAAgB,CAACI,IAAjB,KAA0B,OAA9B,EAAuC;AAErC,IAAA,OAAO,KAAP,CAAA;AACD,GAAA;;EAED,IAAIJ,gBAAgB,CAACK,UAAjB,KAAgCL,gBAAgB,CAACL,IAAjB,CAAsBC,IAA1D,EAAgE;AAG9D,IAAA,OAAO,KAAP,CAAA;AACD,GAAA;;AAED,EAAA,OAAOG,IAAP,CAAA;AACD;;ACrCD,YAAeO,yBAAO,CAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAJ,CAAkB,SAAlB,CAAA,CAAA;EAEA,OAAO;AACLT,IAAAA,IAAI,EAAE,wEADD;AAGLU,IAAAA,OAAO,EAAE;MACPC,kBAAkB,CAACf,IAAD,EAAO;AACvB,QAAA,MAAMI,IAAI,GAAGL,eAAe,CAACC,IAAD,CAA5B,CAAA;;AACA,QAAA,IAAII,IAAJ,EAAU;UAER,MAAM;AAAEE,YAAAA,KAAAA;AAAF,WAAA,GAAYN,IAAlB,CAAA;AAEA,UAAA,MAAMgB,YAAY,GAAGV,KAAK,CAACW,WAAN,CAAkBb,IAAlB,CAArB,CAAA;AACAE,UAAAA,KAAK,CAACY,MAAN,CAAad,IAAb,EAAmBY,YAAnB,CAAA,CAAA;AACD,SAAA;AACF,OAAA;;AAVM,KAAA;GAHX,CAAA;AAgBD,CAnBqB,CAAtB;;;;"}plugin-bugfix-safari-id-destructuring-collision-in-function-expression/LICENSE000066600000002122150432031470023503 0ustar00MIT License Copyright (c) 2014-present Sebastian McKenzie and other contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. plugin-bugfix-safari-id-destructuring-collision-in-function-expression/package.json000066600000002303150432031470024765 0ustar00{ "name": "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression", "version": "7.18.6", "description": "Rename destructuring parameter to workaround https://bugs.webkit.org/show_bug.cgi?id=220517", "repository": { "type": "git", "url": "https://github.com/babel/babel.git", "directory": "packages/babel-plugin-bugfix-safari-id-destructuring-collision-in-function-expression" }, "homepage": "https://babel.dev/docs/en/next/babel-plugin-bugfix-safari-id-destructuring-collision-in-function-expression", "license": "MIT", "publishConfig": { "access": "public" }, "main": "./lib/index.js", "exports": { ".": "./lib/index.js", "./package.json": "./package.json" }, "keywords": [ "babel-plugin", "bugfix" ], "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" }, "peerDependencies": { "@babel/core": "^7.0.0" }, "devDependencies": { "@babel/core": "^7.18.6", "@babel/helper-function-name": "^7.18.6", "@babel/helper-plugin-test-runner": "^7.18.6", "@babel/traverse": "^7.18.6" }, "engines": { "node": ">=6.9.0" }, "author": "The Babel Team (https://babel.dev/team)", "type": "commonjs" }highlight/README.md000066600000000474150432031470010002 0ustar00# @babel/highlight > Syntax highlight JavaScript strings for output in terminals. See our website [@babel/highlight](https://babeljs.io/docs/babel-highlight) for more information. ## Install Using npm: ```sh npm install --save-dev @babel/highlight ``` or using yarn: ```sh yarn add @babel/highlight --dev ``` highlight/node_modules/color-convert/index.js000066600000003275150432031470015443 0ustar00var conversions = require('./conversions'); var route = require('./route'); var convert = {}; var models = Object.keys(conversions); function wrapRaw(fn) { var wrappedFn = function (args) { if (args === undefined || args === null) { return args; } if (arguments.length > 1) { args = Array.prototype.slice.call(arguments); } return fn(args); }; // preserve .conversion property if there is one if ('conversion' in fn) { wrappedFn.conversion = fn.conversion; } return wrappedFn; } function wrapRounded(fn) { var wrappedFn = function (args) { if (args === undefined || args === null) { return args; } if (arguments.length > 1) { args = Array.prototype.slice.call(arguments); } var result = fn(args); // we're assuming the result is an array here. // see notice in conversions.js; don't use box types // in conversion functions. if (typeof result === 'object') { for (var len = result.length, i = 0; i < len; i++) { result[i] = Math.round(result[i]); } } return result; }; // preserve .conversion property if there is one if ('conversion' in fn) { wrappedFn.conversion = fn.conversion; } return wrappedFn; } models.forEach(function (fromModel) { convert[fromModel] = {}; Object.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels}); Object.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels}); var routes = route(fromModel); var routeModels = Object.keys(routes); routeModels.forEach(function (toModel) { var fn = routes[toModel]; convert[fromModel][toModel] = wrapRounded(fn); convert[fromModel][toModel].raw = wrapRaw(fn); }); }); module.exports = convert; highlight/node_modules/color-convert/README.md000066600000005445150432031470015256 0ustar00# color-convert [![Build Status](https://travis-ci.org/Qix-/color-convert.svg?branch=master)](https://travis-ci.org/Qix-/color-convert) Color-convert is a color conversion library for JavaScript and node. It converts all ways between `rgb`, `hsl`, `hsv`, `hwb`, `cmyk`, `ansi`, `ansi16`, `hex` strings, and CSS `keyword`s (will round to closest): ```js var convert = require('color-convert'); convert.rgb.hsl(140, 200, 100); // [96, 48, 59] convert.keyword.rgb('blue'); // [0, 0, 255] var rgbChannels = convert.rgb.channels; // 3 var cmykChannels = convert.cmyk.channels; // 4 var ansiChannels = convert.ansi16.channels; // 1 ``` # Install ```console $ npm install color-convert ``` # API Simply get the property of the _from_ and _to_ conversion that you're looking for. All functions have a rounded and unrounded variant. By default, return values are rounded. To get the unrounded (raw) results, simply tack on `.raw` to the function. All 'from' functions have a hidden property called `.channels` that indicates the number of channels the function expects (not including alpha). ```js var convert = require('color-convert'); // Hex to LAB convert.hex.lab('DEADBF'); // [ 76, 21, -2 ] convert.hex.lab.raw('DEADBF'); // [ 75.56213190997677, 20.653827952644754, -2.290532499330533 ] // RGB to CMYK convert.rgb.cmyk(167, 255, 4); // [ 35, 0, 98, 0 ] convert.rgb.cmyk.raw(167, 255, 4); // [ 34.509803921568626, 0, 98.43137254901961, 0 ] ``` ### Arrays All functions that accept multiple arguments also support passing an array. Note that this does **not** apply to functions that convert from a color that only requires one value (e.g. `keyword`, `ansi256`, `hex`, etc.) ```js var convert = require('color-convert'); convert.rgb.hex(123, 45, 67); // '7B2D43' convert.rgb.hex([123, 45, 67]); // '7B2D43' ``` ## Routing Conversions that don't have an _explicitly_ defined conversion (in [conversions.js](conversions.js)), but can be converted by means of sub-conversions (e.g. XYZ -> **RGB** -> CMYK), are automatically routed together. This allows just about any color model supported by `color-convert` to be converted to any other model, so long as a sub-conversion path exists. This is also true for conversions requiring more than one step in between (e.g. LCH -> **LAB** -> **XYZ** -> **RGB** -> Hex). Keep in mind that extensive conversions _may_ result in a loss of precision, and exist only to be complete. For a list of "direct" (single-step) conversions, see [conversions.js](conversions.js). # Contribute If there is a new model you would like to support, or want to add a direct conversion between two existing models, please send us a pull request. # License Copyright © 2011-2016, Heather Arthur and Josh Junon. Licensed under the [MIT License](LICENSE). highlight/node_modules/color-convert/conversions.js000066600000040722150432031470016702 0ustar00/* MIT license */ var cssKeywords = require('color-name'); // NOTE: conversions should only return primitive values (i.e. arrays, or // values that give correct `typeof` results). // do not use box values types (i.e. Number(), String(), etc.) var reverseKeywords = {}; for (var key in cssKeywords) { if (cssKeywords.hasOwnProperty(key)) { reverseKeywords[cssKeywords[key]] = key; } } var convert = module.exports = { rgb: {channels: 3, labels: 'rgb'}, hsl: {channels: 3, labels: 'hsl'}, hsv: {channels: 3, labels: 'hsv'}, hwb: {channels: 3, labels: 'hwb'}, cmyk: {channels: 4, labels: 'cmyk'}, xyz: {channels: 3, labels: 'xyz'}, lab: {channels: 3, labels: 'lab'}, lch: {channels: 3, labels: 'lch'}, hex: {channels: 1, labels: ['hex']}, keyword: {channels: 1, labels: ['keyword']}, ansi16: {channels: 1, labels: ['ansi16']}, ansi256: {channels: 1, labels: ['ansi256']}, hcg: {channels: 3, labels: ['h', 'c', 'g']}, apple: {channels: 3, labels: ['r16', 'g16', 'b16']}, gray: {channels: 1, labels: ['gray']} }; // hide .channels and .labels properties for (var model in convert) { if (convert.hasOwnProperty(model)) { if (!('channels' in convert[model])) { throw new Error('missing channels property: ' + model); } if (!('labels' in convert[model])) { throw new Error('missing channel labels property: ' + model); } if (convert[model].labels.length !== convert[model].channels) { throw new Error('channel and label counts mismatch: ' + model); } var channels = convert[model].channels; var labels = convert[model].labels; delete convert[model].channels; delete convert[model].labels; Object.defineProperty(convert[model], 'channels', {value: channels}); Object.defineProperty(convert[model], 'labels', {value: labels}); } } convert.rgb.hsl = function (rgb) { var r = rgb[0] / 255; var g = rgb[1] / 255; var b = rgb[2] / 255; var min = Math.min(r, g, b); var max = Math.max(r, g, b); var delta = max - min; var h; var s; var l; if (max === min) { h = 0; } else if (r === max) { h = (g - b) / delta; } else if (g === max) { h = 2 + (b - r) / delta; } else if (b === max) { h = 4 + (r - g) / delta; } h = Math.min(h * 60, 360); if (h < 0) { h += 360; } l = (min + max) / 2; if (max === min) { s = 0; } else if (l <= 0.5) { s = delta / (max + min); } else { s = delta / (2 - max - min); } return [h, s * 100, l * 100]; }; convert.rgb.hsv = function (rgb) { var rdif; var gdif; var bdif; var h; var s; var r = rgb[0] / 255; var g = rgb[1] / 255; var b = rgb[2] / 255; var v = Math.max(r, g, b); var diff = v - Math.min(r, g, b); var diffc = function (c) { return (v - c) / 6 / diff + 1 / 2; }; if (diff === 0) { h = s = 0; } else { s = diff / v; rdif = diffc(r); gdif = diffc(g); bdif = diffc(b); if (r === v) { h = bdif - gdif; } else if (g === v) { h = (1 / 3) + rdif - bdif; } else if (b === v) { h = (2 / 3) + gdif - rdif; } if (h < 0) { h += 1; } else if (h > 1) { h -= 1; } } return [ h * 360, s * 100, v * 100 ]; }; convert.rgb.hwb = function (rgb) { var r = rgb[0]; var g = rgb[1]; var b = rgb[2]; var h = convert.rgb.hsl(rgb)[0]; var w = 1 / 255 * Math.min(r, Math.min(g, b)); b = 1 - 1 / 255 * Math.max(r, Math.max(g, b)); return [h, w * 100, b * 100]; }; convert.rgb.cmyk = function (rgb) { var r = rgb[0] / 255; var g = rgb[1] / 255; var b = rgb[2] / 255; var c; var m; var y; var k; k = Math.min(1 - r, 1 - g, 1 - b); c = (1 - r - k) / (1 - k) || 0; m = (1 - g - k) / (1 - k) || 0; y = (1 - b - k) / (1 - k) || 0; return [c * 100, m * 100, y * 100, k * 100]; }; /** * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance * */ function comparativeDistance(x, y) { return ( Math.pow(x[0] - y[0], 2) + Math.pow(x[1] - y[1], 2) + Math.pow(x[2] - y[2], 2) ); } convert.rgb.keyword = function (rgb) { var reversed = reverseKeywords[rgb]; if (reversed) { return reversed; } var currentClosestDistance = Infinity; var currentClosestKeyword; for (var keyword in cssKeywords) { if (cssKeywords.hasOwnProperty(keyword)) { var value = cssKeywords[keyword]; // Compute comparative distance var distance = comparativeDistance(rgb, value); // Check if its less, if so set as closest if (distance < currentClosestDistance) { currentClosestDistance = distance; currentClosestKeyword = keyword; } } } return currentClosestKeyword; }; convert.keyword.rgb = function (keyword) { return cssKeywords[keyword]; }; convert.rgb.xyz = function (rgb) { var r = rgb[0] / 255; var g = rgb[1] / 255; var b = rgb[2] / 255; // assume sRGB r = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92); g = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92); b = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92); var x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805); var y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722); var z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505); return [x * 100, y * 100, z * 100]; }; convert.rgb.lab = function (rgb) { var xyz = convert.rgb.xyz(rgb); var x = xyz[0]; var y = xyz[1]; var z = xyz[2]; var l; var a; var b; x /= 95.047; y /= 100; z /= 108.883; x = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116); y = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116); z = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116); l = (116 * y) - 16; a = 500 * (x - y); b = 200 * (y - z); return [l, a, b]; }; convert.hsl.rgb = function (hsl) { var h = hsl[0] / 360; var s = hsl[1] / 100; var l = hsl[2] / 100; var t1; var t2; var t3; var rgb; var val; if (s === 0) { val = l * 255; return [val, val, val]; } if (l < 0.5) { t2 = l * (1 + s); } else { t2 = l + s - l * s; } t1 = 2 * l - t2; rgb = [0, 0, 0]; for (var i = 0; i < 3; i++) { t3 = h + 1 / 3 * -(i - 1); if (t3 < 0) { t3++; } if (t3 > 1) { t3--; } if (6 * t3 < 1) { val = t1 + (t2 - t1) * 6 * t3; } else if (2 * t3 < 1) { val = t2; } else if (3 * t3 < 2) { val = t1 + (t2 - t1) * (2 / 3 - t3) * 6; } else { val = t1; } rgb[i] = val * 255; } return rgb; }; convert.hsl.hsv = function (hsl) { var h = hsl[0]; var s = hsl[1] / 100; var l = hsl[2] / 100; var smin = s; var lmin = Math.max(l, 0.01); var sv; var v; l *= 2; s *= (l <= 1) ? l : 2 - l; smin *= lmin <= 1 ? lmin : 2 - lmin; v = (l + s) / 2; sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s); return [h, sv * 100, v * 100]; }; convert.hsv.rgb = function (hsv) { var h = hsv[0] / 60; var s = hsv[1] / 100; var v = hsv[2] / 100; var hi = Math.floor(h) % 6; var f = h - Math.floor(h); var p = 255 * v * (1 - s); var q = 255 * v * (1 - (s * f)); var t = 255 * v * (1 - (s * (1 - f))); v *= 255; switch (hi) { case 0: return [v, t, p]; case 1: return [q, v, p]; case 2: return [p, v, t]; case 3: return [p, q, v]; case 4: return [t, p, v]; case 5: return [v, p, q]; } }; convert.hsv.hsl = function (hsv) { var h = hsv[0]; var s = hsv[1] / 100; var v = hsv[2] / 100; var vmin = Math.max(v, 0.01); var lmin; var sl; var l; l = (2 - s) * v; lmin = (2 - s) * vmin; sl = s * vmin; sl /= (lmin <= 1) ? lmin : 2 - lmin; sl = sl || 0; l /= 2; return [h, sl * 100, l * 100]; }; // http://dev.w3.org/csswg/css-color/#hwb-to-rgb convert.hwb.rgb = function (hwb) { var h = hwb[0] / 360; var wh = hwb[1] / 100; var bl = hwb[2] / 100; var ratio = wh + bl; var i; var v; var f; var n; // wh + bl cant be > 1 if (ratio > 1) { wh /= ratio; bl /= ratio; } i = Math.floor(6 * h); v = 1 - bl; f = 6 * h - i; if ((i & 0x01) !== 0) { f = 1 - f; } n = wh + f * (v - wh); // linear interpolation var r; var g; var b; switch (i) { default: case 6: case 0: r = v; g = n; b = wh; break; case 1: r = n; g = v; b = wh; break; case 2: r = wh; g = v; b = n; break; case 3: r = wh; g = n; b = v; break; case 4: r = n; g = wh; b = v; break; case 5: r = v; g = wh; b = n; break; } return [r * 255, g * 255, b * 255]; }; convert.cmyk.rgb = function (cmyk) { var c = cmyk[0] / 100; var m = cmyk[1] / 100; var y = cmyk[2] / 100; var k = cmyk[3] / 100; var r; var g; var b; r = 1 - Math.min(1, c * (1 - k) + k); g = 1 - Math.min(1, m * (1 - k) + k); b = 1 - Math.min(1, y * (1 - k) + k); return [r * 255, g * 255, b * 255]; }; convert.xyz.rgb = function (xyz) { var x = xyz[0] / 100; var y = xyz[1] / 100; var z = xyz[2] / 100; var r; var g; var b; r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986); g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415); b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570); // assume sRGB r = r > 0.0031308 ? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055) : r * 12.92; g = g > 0.0031308 ? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055) : g * 12.92; b = b > 0.0031308 ? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055) : b * 12.92; r = Math.min(Math.max(0, r), 1); g = Math.min(Math.max(0, g), 1); b = Math.min(Math.max(0, b), 1); return [r * 255, g * 255, b * 255]; }; convert.xyz.lab = function (xyz) { var x = xyz[0]; var y = xyz[1]; var z = xyz[2]; var l; var a; var b; x /= 95.047; y /= 100; z /= 108.883; x = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116); y = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116); z = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116); l = (116 * y) - 16; a = 500 * (x - y); b = 200 * (y - z); return [l, a, b]; }; convert.lab.xyz = function (lab) { var l = lab[0]; var a = lab[1]; var b = lab[2]; var x; var y; var z; y = (l + 16) / 116; x = a / 500 + y; z = y - b / 200; var y2 = Math.pow(y, 3); var x2 = Math.pow(x, 3); var z2 = Math.pow(z, 3); y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787; x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787; z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787; x *= 95.047; y *= 100; z *= 108.883; return [x, y, z]; }; convert.lab.lch = function (lab) { var l = lab[0]; var a = lab[1]; var b = lab[2]; var hr; var h; var c; hr = Math.atan2(b, a); h = hr * 360 / 2 / Math.PI; if (h < 0) { h += 360; } c = Math.sqrt(a * a + b * b); return [l, c, h]; }; convert.lch.lab = function (lch) { var l = lch[0]; var c = lch[1]; var h = lch[2]; var a; var b; var hr; hr = h / 360 * 2 * Math.PI; a = c * Math.cos(hr); b = c * Math.sin(hr); return [l, a, b]; }; convert.rgb.ansi16 = function (args) { var r = args[0]; var g = args[1]; var b = args[2]; var value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization value = Math.round(value / 50); if (value === 0) { return 30; } var ansi = 30 + ((Math.round(b / 255) << 2) | (Math.round(g / 255) << 1) | Math.round(r / 255)); if (value === 2) { ansi += 60; } return ansi; }; convert.hsv.ansi16 = function (args) { // optimization here; we already know the value and don't need to get // it converted for us. return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]); }; convert.rgb.ansi256 = function (args) { var r = args[0]; var g = args[1]; var b = args[2]; // we use the extended greyscale palette here, with the exception of // black and white. normal palette only has 4 greyscale shades. if (r === g && g === b) { if (r < 8) { return 16; } if (r > 248) { return 231; } return Math.round(((r - 8) / 247) * 24) + 232; } var ansi = 16 + (36 * Math.round(r / 255 * 5)) + (6 * Math.round(g / 255 * 5)) + Math.round(b / 255 * 5); return ansi; }; convert.ansi16.rgb = function (args) { var color = args % 10; // handle greyscale if (color === 0 || color === 7) { if (args > 50) { color += 3.5; } color = color / 10.5 * 255; return [color, color, color]; } var mult = (~~(args > 50) + 1) * 0.5; var r = ((color & 1) * mult) * 255; var g = (((color >> 1) & 1) * mult) * 255; var b = (((color >> 2) & 1) * mult) * 255; return [r, g, b]; }; convert.ansi256.rgb = function (args) { // handle greyscale if (args >= 232) { var c = (args - 232) * 10 + 8; return [c, c, c]; } args -= 16; var rem; var r = Math.floor(args / 36) / 5 * 255; var g = Math.floor((rem = args % 36) / 6) / 5 * 255; var b = (rem % 6) / 5 * 255; return [r, g, b]; }; convert.rgb.hex = function (args) { var integer = ((Math.round(args[0]) & 0xFF) << 16) + ((Math.round(args[1]) & 0xFF) << 8) + (Math.round(args[2]) & 0xFF); var string = integer.toString(16).toUpperCase(); return '000000'.substring(string.length) + string; }; convert.hex.rgb = function (args) { var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); if (!match) { return [0, 0, 0]; } var colorString = match[0]; if (match[0].length === 3) { colorString = colorString.split('').map(function (char) { return char + char; }).join(''); } var integer = parseInt(colorString, 16); var r = (integer >> 16) & 0xFF; var g = (integer >> 8) & 0xFF; var b = integer & 0xFF; return [r, g, b]; }; convert.rgb.hcg = function (rgb) { var r = rgb[0] / 255; var g = rgb[1] / 255; var b = rgb[2] / 255; var max = Math.max(Math.max(r, g), b); var min = Math.min(Math.min(r, g), b); var chroma = (max - min); var grayscale; var hue; if (chroma < 1) { grayscale = min / (1 - chroma); } else { grayscale = 0; } if (chroma <= 0) { hue = 0; } else if (max === r) { hue = ((g - b) / chroma) % 6; } else if (max === g) { hue = 2 + (b - r) / chroma; } else { hue = 4 + (r - g) / chroma + 4; } hue /= 6; hue %= 1; return [hue * 360, chroma * 100, grayscale * 100]; }; convert.hsl.hcg = function (hsl) { var s = hsl[1] / 100; var l = hsl[2] / 100; var c = 1; var f = 0; if (l < 0.5) { c = 2.0 * s * l; } else { c = 2.0 * s * (1.0 - l); } if (c < 1.0) { f = (l - 0.5 * c) / (1.0 - c); } return [hsl[0], c * 100, f * 100]; }; convert.hsv.hcg = function (hsv) { var s = hsv[1] / 100; var v = hsv[2] / 100; var c = s * v; var f = 0; if (c < 1.0) { f = (v - c) / (1 - c); } return [hsv[0], c * 100, f * 100]; }; convert.hcg.rgb = function (hcg) { var h = hcg[0] / 360; var c = hcg[1] / 100; var g = hcg[2] / 100; if (c === 0.0) { return [g * 255, g * 255, g * 255]; } var pure = [0, 0, 0]; var hi = (h % 1) * 6; var v = hi % 1; var w = 1 - v; var mg = 0; switch (Math.floor(hi)) { case 0: pure[0] = 1; pure[1] = v; pure[2] = 0; break; case 1: pure[0] = w; pure[1] = 1; pure[2] = 0; break; case 2: pure[0] = 0; pure[1] = 1; pure[2] = v; break; case 3: pure[0] = 0; pure[1] = w; pure[2] = 1; break; case 4: pure[0] = v; pure[1] = 0; pure[2] = 1; break; default: pure[0] = 1; pure[1] = 0; pure[2] = w; } mg = (1.0 - c) * g; return [ (c * pure[0] + mg) * 255, (c * pure[1] + mg) * 255, (c * pure[2] + mg) * 255 ]; }; convert.hcg.hsv = function (hcg) { var c = hcg[1] / 100; var g = hcg[2] / 100; var v = c + g * (1.0 - c); var f = 0; if (v > 0.0) { f = c / v; } return [hcg[0], f * 100, v * 100]; }; convert.hcg.hsl = function (hcg) { var c = hcg[1] / 100; var g = hcg[2] / 100; var l = g * (1.0 - c) + 0.5 * c; var s = 0; if (l > 0.0 && l < 0.5) { s = c / (2 * l); } else if (l >= 0.5 && l < 1.0) { s = c / (2 * (1 - l)); } return [hcg[0], s * 100, l * 100]; }; convert.hcg.hwb = function (hcg) { var c = hcg[1] / 100; var g = hcg[2] / 100; var v = c + g * (1.0 - c); return [hcg[0], (v - c) * 100, (1 - v) * 100]; }; convert.hwb.hcg = function (hwb) { var w = hwb[1] / 100; var b = hwb[2] / 100; var v = 1 - b; var c = v - w; var g = 0; if (c < 1) { g = (v - c) / (1 - c); } return [hwb[0], c * 100, g * 100]; }; convert.apple.rgb = function (apple) { return [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255]; }; convert.rgb.apple = function (rgb) { return [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535]; }; convert.gray.rgb = function (args) { return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255]; }; convert.gray.hsl = convert.gray.hsv = function (args) { return [0, 0, args[0]]; }; convert.gray.hwb = function (gray) { return [0, 100, gray[0]]; }; convert.gray.cmyk = function (gray) { return [0, 0, 0, gray[0]]; }; convert.gray.lab = function (gray) { return [gray[0], 0, 0]; }; convert.gray.hex = function (gray) { var val = Math.round(gray[0] / 100 * 255) & 0xFF; var integer = (val << 16) + (val << 8) + val; var string = integer.toString(16).toUpperCase(); return '000000'.substring(string.length) + string; }; convert.rgb.gray = function (rgb) { var val = (rgb[0] + rgb[1] + rgb[2]) / 3; return [val / 255 * 100]; }; highlight/node_modules/color-convert/CHANGELOG.md000066600000002611150432031470015600 0ustar00# 1.0.0 - 2016-01-07 - Removed: unused speed test - Added: Automatic routing between previously unsupported conversions ([#27](https://github.com/Qix-/color-convert/pull/27)) - Removed: `xxx2xxx()` and `xxx2xxxRaw()` functions ([#27](https://github.com/Qix-/color-convert/pull/27)) - Removed: `convert()` class ([#27](https://github.com/Qix-/color-convert/pull/27)) - Changed: all functions to lookup dictionary ([#27](https://github.com/Qix-/color-convert/pull/27)) - Changed: `ansi` to `ansi256` ([#27](https://github.com/Qix-/color-convert/pull/27)) - Fixed: argument grouping for functions requiring only one argument ([#27](https://github.com/Qix-/color-convert/pull/27)) # 0.6.0 - 2015-07-23 - Added: methods to handle [ANSI](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors) 16/256 colors: - rgb2ansi16 - rgb2ansi - hsl2ansi16 - hsl2ansi - hsv2ansi16 - hsv2ansi - hwb2ansi16 - hwb2ansi - cmyk2ansi16 - cmyk2ansi - keyword2ansi16 - keyword2ansi - ansi162rgb - ansi162hsl - ansi162hsv - ansi162hwb - ansi162cmyk - ansi162keyword - ansi2rgb - ansi2hsl - ansi2hsv - ansi2hwb - ansi2cmyk - ansi2keyword ([#18](https://github.com/harthur/color-convert/pull/18)) # 0.5.3 - 2015-06-02 - Fixed: hsl2hsv does not return `NaN` anymore when using `[0,0,0]` ([#15](https://github.com/harthur/color-convert/issues/15)) --- Check out commit logs for older releases highlight/node_modules/color-convert/LICENSE000066600000002077150432031470015002 0ustar00Copyright (c) 2011-2016 Heather Arthur Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. highlight/node_modules/color-convert/route.js000066600000004263150432031470015470 0ustar00var conversions = require('./conversions'); /* this function routes a model to all other models. all functions that are routed have a property `.conversion` attached to the returned synthetic function. This property is an array of strings, each with the steps in between the 'from' and 'to' color models (inclusive). conversions that are not possible simply are not included. */ function buildGraph() { var graph = {}; // https://jsperf.com/object-keys-vs-for-in-with-closure/3 var models = Object.keys(conversions); for (var len = models.length, i = 0; i < len; i++) { graph[models[i]] = { // http://jsperf.com/1-vs-infinity // micro-opt, but this is simple. distance: -1, parent: null }; } return graph; } // https://en.wikipedia.org/wiki/Breadth-first_search function deriveBFS(fromModel) { var graph = buildGraph(); var queue = [fromModel]; // unshift -> queue -> pop graph[fromModel].distance = 0; while (queue.length) { var current = queue.pop(); var adjacents = Object.keys(conversions[current]); for (var len = adjacents.length, i = 0; i < len; i++) { var adjacent = adjacents[i]; var node = graph[adjacent]; if (node.distance === -1) { node.distance = graph[current].distance + 1; node.parent = current; queue.unshift(adjacent); } } } return graph; } function link(from, to) { return function (args) { return to(from(args)); }; } function wrapConversion(toModel, graph) { var path = [graph[toModel].parent, toModel]; var fn = conversions[graph[toModel].parent][toModel]; var cur = graph[toModel].parent; while (graph[cur].parent) { path.unshift(graph[cur].parent); fn = link(conversions[graph[cur].parent][cur], fn); cur = graph[cur].parent; } fn.conversion = path; return fn; } module.exports = function (fromModel) { var graph = deriveBFS(fromModel); var conversion = {}; var models = Object.keys(graph); for (var len = models.length, i = 0; i < len; i++) { var toModel = models[i]; var node = graph[toModel]; if (node.parent === null) { // no possible conversion, or this node is the source model. continue; } conversion[toModel] = wrapConversion(toModel, graph); } return conversion; }; highlight/node_modules/color-convert/package.json000066600000001445150432031470016261 0ustar00{ "name": "color-convert", "description": "Plain color conversion functions", "version": "1.9.3", "author": "Heather Arthur ", "license": "MIT", "repository": "Qix-/color-convert", "scripts": { "pretest": "xo", "test": "node test/basic.js" }, "keywords": [ "color", "colour", "convert", "converter", "conversion", "rgb", "hsl", "hsv", "hwb", "cmyk", "ansi", "ansi16" ], "files": [ "index.js", "conversions.js", "css-keywords.js", "route.js" ], "xo": { "rules": { "default-case": 0, "no-inline-comments": 0, "operator-linebreak": 0 } }, "devDependencies": { "chalk": "1.1.1", "xo": "0.11.2" }, "dependencies": { "color-name": "1.1.3" } } highlight/node_modules/color-name/index.js000066600000011011150432031470014666 0ustar00'use strict' module.exports = { "aliceblue": [240, 248, 255], "antiquewhite": [250, 235, 215], "aqua": [0, 255, 255], "aquamarine": [127, 255, 212], "azure": [240, 255, 255], "beige": [245, 245, 220], "bisque": [255, 228, 196], "black": [0, 0, 0], "blanchedalmond": [255, 235, 205], "blue": [0, 0, 255], "blueviolet": [138, 43, 226], "brown": [165, 42, 42], "burlywood": [222, 184, 135], "cadetblue": [95, 158, 160], "chartreuse": [127, 255, 0], "chocolate": [210, 105, 30], "coral": [255, 127, 80], "cornflowerblue": [100, 149, 237], "cornsilk": [255, 248, 220], "crimson": [220, 20, 60], "cyan": [0, 255, 255], "darkblue": [0, 0, 139], "darkcyan": [0, 139, 139], "darkgoldenrod": [184, 134, 11], "darkgray": [169, 169, 169], "darkgreen": [0, 100, 0], "darkgrey": [169, 169, 169], "darkkhaki": [189, 183, 107], "darkmagenta": [139, 0, 139], "darkolivegreen": [85, 107, 47], "darkorange": [255, 140, 0], "darkorchid": [153, 50, 204], "darkred": [139, 0, 0], "darksalmon": [233, 150, 122], "darkseagreen": [143, 188, 143], "darkslateblue": [72, 61, 139], "darkslategray": [47, 79, 79], "darkslategrey": [47, 79, 79], "darkturquoise": [0, 206, 209], "darkviolet": [148, 0, 211], "deeppink": [255, 20, 147], "deepskyblue": [0, 191, 255], "dimgray": [105, 105, 105], "dimgrey": [105, 105, 105], "dodgerblue": [30, 144, 255], "firebrick": [178, 34, 34], "floralwhite": [255, 250, 240], "forestgreen": [34, 139, 34], "fuchsia": [255, 0, 255], "gainsboro": [220, 220, 220], "ghostwhite": [248, 248, 255], "gold": [255, 215, 0], "goldenrod": [218, 165, 32], "gray": [128, 128, 128], "green": [0, 128, 0], "greenyellow": [173, 255, 47], "grey": [128, 128, 128], "honeydew": [240, 255, 240], "hotpink": [255, 105, 180], "indianred": [205, 92, 92], "indigo": [75, 0, 130], "ivory": [255, 255, 240], "khaki": [240, 230, 140], "lavender": [230, 230, 250], "lavenderblush": [255, 240, 245], "lawngreen": [124, 252, 0], "lemonchiffon": [255, 250, 205], "lightblue": [173, 216, 230], "lightcoral": [240, 128, 128], "lightcyan": [224, 255, 255], "lightgoldenrodyellow": [250, 250, 210], "lightgray": [211, 211, 211], "lightgreen": [144, 238, 144], "lightgrey": [211, 211, 211], "lightpink": [255, 182, 193], "lightsalmon": [255, 160, 122], "lightseagreen": [32, 178, 170], "lightskyblue": [135, 206, 250], "lightslategray": [119, 136, 153], "lightslategrey": [119, 136, 153], "lightsteelblue": [176, 196, 222], "lightyellow": [255, 255, 224], "lime": [0, 255, 0], "limegreen": [50, 205, 50], "linen": [250, 240, 230], "magenta": [255, 0, 255], "maroon": [128, 0, 0], "mediumaquamarine": [102, 205, 170], "mediumblue": [0, 0, 205], "mediumorchid": [186, 85, 211], "mediumpurple": [147, 112, 219], "mediumseagreen": [60, 179, 113], "mediumslateblue": [123, 104, 238], "mediumspringgreen": [0, 250, 154], "mediumturquoise": [72, 209, 204], "mediumvioletred": [199, 21, 133], "midnightblue": [25, 25, 112], "mintcream": [245, 255, 250], "mistyrose": [255, 228, 225], "moccasin": [255, 228, 181], "navajowhite": [255, 222, 173], "navy": [0, 0, 128], "oldlace": [253, 245, 230], "olive": [128, 128, 0], "olivedrab": [107, 142, 35], "orange": [255, 165, 0], "orangered": [255, 69, 0], "orchid": [218, 112, 214], "palegoldenrod": [238, 232, 170], "palegreen": [152, 251, 152], "paleturquoise": [175, 238, 238], "palevioletred": [219, 112, 147], "papayawhip": [255, 239, 213], "peachpuff": [255, 218, 185], "peru": [205, 133, 63], "pink": [255, 192, 203], "plum": [221, 160, 221], "powderblue": [176, 224, 230], "purple": [128, 0, 128], "rebeccapurple": [102, 51, 153], "red": [255, 0, 0], "rosybrown": [188, 143, 143], "royalblue": [65, 105, 225], "saddlebrown": [139, 69, 19], "salmon": [250, 128, 114], "sandybrown": [244, 164, 96], "seagreen": [46, 139, 87], "seashell": [255, 245, 238], "sienna": [160, 82, 45], "silver": [192, 192, 192], "skyblue": [135, 206, 235], "slateblue": [106, 90, 205], "slategray": [112, 128, 144], "slategrey": [112, 128, 144], "snow": [255, 250, 250], "springgreen": [0, 255, 127], "steelblue": [70, 130, 180], "tan": [210, 180, 140], "teal": [0, 128, 128], "thistle": [216, 191, 216], "tomato": [255, 99, 71], "turquoise": [64, 224, 208], "violet": [238, 130, 238], "wheat": [245, 222, 179], "white": [255, 255, 255], "whitesmoke": [245, 245, 245], "yellow": [255, 255, 0], "yellowgreen": [154, 205, 50] }; highlight/node_modules/color-name/README.md000066600000000600150432031470014502 0ustar00A JSON with color names and its values. Based on http://dev.w3.org/csswg/css-color/#named-colors. [![NPM](https://nodei.co/npm/color-name.png?mini=true)](https://nodei.co/npm/color-name/) ```js var colors = require('color-name'); colors.red //[255,0,0] ``` highlight/node_modules/color-name/.npmignore000066600000002554150432031470015234 0ustar00//this will affect all the git repos git config --global core.excludesfile ~/.gitignore //update files since .ignore won't if already tracked git rm --cached # Compiled source # ################### *.com *.class *.dll *.exe *.o *.so # Packages # ############ # it's better to unpack these files and commit the raw source # git has its own built in compression methods *.7z *.dmg *.gz *.iso *.jar *.rar *.tar *.zip # Logs and databases # ###################### *.log *.sql *.sqlite # OS generated files # ###################### .DS_Store .DS_Store? ._* .Spotlight-V100 .Trashes # Icon? ehthumbs.db Thumbs.db .cache .project .settings .tmproj *.esproj nbproject # Numerous always-ignore extensions # ##################################### *.diff *.err *.orig *.rej *.swn *.swo *.swp *.vi *~ *.sass-cache *.grunt *.tmp # Dreamweaver added files # ########################### _notes dwsync.xml # Komodo # ########################### *.komodoproject .komodotools # Node # ##################### node_modules # Bower # ##################### bower_components # Folders to ignore # ##################### .hg .svn .CVS intermediate publish .idea .graphics _test _archive uploads tmp # Vim files to ignore # ####################### .VimballRecord .netrwhist bundle.* _demohighlight/node_modules/color-name/test.js000066600000000253150432031470014544 0ustar00'use strict' var names = require('./'); var assert = require('assert'); assert.deepEqual(names.red, [255,0,0]); assert.deepEqual(names.aliceblue, [240,248,255]); highlight/node_modules/color-name/.eslintrc.json000066600000002210150432031470016016 0ustar00{ "env": { "browser": true, "node": true, "commonjs": true, "es6": true }, "extends": "eslint:recommended", "rules": { "strict": 2, "indent": 0, "linebreak-style": 0, "quotes": 0, "semi": 0, "no-cond-assign": 1, "no-constant-condition": 1, "no-duplicate-case": 1, "no-empty": 1, "no-ex-assign": 1, "no-extra-boolean-cast": 1, "no-extra-semi": 1, "no-fallthrough": 1, "no-func-assign": 1, "no-global-assign": 1, "no-implicit-globals": 2, "no-inner-declarations": ["error", "functions"], "no-irregular-whitespace": 2, "no-loop-func": 1, "no-multi-str": 1, "no-mixed-spaces-and-tabs": 1, "no-proto": 1, "no-sequences": 1, "no-throw-literal": 1, "no-unmodified-loop-condition": 1, "no-useless-call": 1, "no-void": 1, "no-with": 2, "wrap-iife": 1, "no-redeclare": 1, "no-unused-vars": ["error", { "vars": "all", "args": "none" }], "no-sparse-arrays": 1 } } highlight/node_modules/color-name/LICENSE000066600000002075150432031470014240 0ustar00The MIT License (MIT) Copyright (c) 2015 Dmitry Ivanov Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.highlight/node_modules/color-name/package.json000066600000001053150432031470015514 0ustar00{ "name": "color-name", "version": "1.1.3", "description": "A list of color names and its values", "main": "index.js", "scripts": { "test": "node test.js" }, "repository": { "type": "git", "url": "git@github.com:dfcreative/color-name.git" }, "keywords": [ "color-name", "color", "color-keyword", "keyword" ], "author": "DY ", "license": "MIT", "bugs": { "url": "https://github.com/dfcreative/color-name/issues" }, "homepage": "https://github.com/dfcreative/color-name" } highlight/node_modules/chalk/index.js000066600000014447150432031470013734 0ustar00'use strict'; const escapeStringRegexp = require('escape-string-regexp'); const ansiStyles = require('ansi-styles'); const stdoutColor = require('supports-color').stdout; const template = require('./templates.js'); const isSimpleWindowsTerm = process.platform === 'win32' && !(process.env.TERM || '').toLowerCase().startsWith('xterm'); // `supportsColor.level` → `ansiStyles.color[name]` mapping const levelMapping = ['ansi', 'ansi', 'ansi256', 'ansi16m']; // `color-convert` models to exclude from the Chalk API due to conflicts and such const skipModels = new Set(['gray']); const styles = Object.create(null); function applyOptions(obj, options) { options = options || {}; // Detect level if not set manually const scLevel = stdoutColor ? stdoutColor.level : 0; obj.level = options.level === undefined ? scLevel : options.level; obj.enabled = 'enabled' in options ? options.enabled : obj.level > 0; } function Chalk(options) { // We check for this.template here since calling `chalk.constructor()` // by itself will have a `this` of a previously constructed chalk object if (!this || !(this instanceof Chalk) || this.template) { const chalk = {}; applyOptions(chalk, options); chalk.template = function () { const args = [].slice.call(arguments); return chalkTag.apply(null, [chalk.template].concat(args)); }; Object.setPrototypeOf(chalk, Chalk.prototype); Object.setPrototypeOf(chalk.template, chalk); chalk.template.constructor = Chalk; return chalk.template; } applyOptions(this, options); } // Use bright blue on Windows as the normal blue color is illegible if (isSimpleWindowsTerm) { ansiStyles.blue.open = '\u001B[94m'; } for (const key of Object.keys(ansiStyles)) { ansiStyles[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g'); styles[key] = { get() { const codes = ansiStyles[key]; return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, key); } }; } styles.visible = { get() { return build.call(this, this._styles || [], true, 'visible'); } }; ansiStyles.color.closeRe = new RegExp(escapeStringRegexp(ansiStyles.color.close), 'g'); for (const model of Object.keys(ansiStyles.color.ansi)) { if (skipModels.has(model)) { continue; } styles[model] = { get() { const level = this.level; return function () { const open = ansiStyles.color[levelMapping[level]][model].apply(null, arguments); const codes = { open, close: ansiStyles.color.close, closeRe: ansiStyles.color.closeRe }; return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model); }; } }; } ansiStyles.bgColor.closeRe = new RegExp(escapeStringRegexp(ansiStyles.bgColor.close), 'g'); for (const model of Object.keys(ansiStyles.bgColor.ansi)) { if (skipModels.has(model)) { continue; } const bgModel = 'bg' + model[0].toUpperCase() + model.slice(1); styles[bgModel] = { get() { const level = this.level; return function () { const open = ansiStyles.bgColor[levelMapping[level]][model].apply(null, arguments); const codes = { open, close: ansiStyles.bgColor.close, closeRe: ansiStyles.bgColor.closeRe }; return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model); }; } }; } const proto = Object.defineProperties(() => {}, styles); function build(_styles, _empty, key) { const builder = function () { return applyStyle.apply(builder, arguments); }; builder._styles = _styles; builder._empty = _empty; const self = this; Object.defineProperty(builder, 'level', { enumerable: true, get() { return self.level; }, set(level) { self.level = level; } }); Object.defineProperty(builder, 'enabled', { enumerable: true, get() { return self.enabled; }, set(enabled) { self.enabled = enabled; } }); // See below for fix regarding invisible grey/dim combination on Windows builder.hasGrey = this.hasGrey || key === 'gray' || key === 'grey'; // `__proto__` is used because we must return a function, but there is // no way to create a function with a different prototype builder.__proto__ = proto; // eslint-disable-line no-proto return builder; } function applyStyle() { // Support varags, but simply cast to string in case there's only one arg const args = arguments; const argsLen = args.length; let str = String(arguments[0]); if (argsLen === 0) { return ''; } if (argsLen > 1) { // Don't slice `arguments`, it prevents V8 optimizations for (let a = 1; a < argsLen; a++) { str += ' ' + args[a]; } } if (!this.enabled || this.level <= 0 || !str) { return this._empty ? '' : str; } // Turns out that on Windows dimmed gray text becomes invisible in cmd.exe, // see https://github.com/chalk/chalk/issues/58 // If we're on Windows and we're dealing with a gray color, temporarily make 'dim' a noop. const originalDim = ansiStyles.dim.open; if (isSimpleWindowsTerm && this.hasGrey) { ansiStyles.dim.open = ''; } for (const code of this._styles.slice().reverse()) { // Replace any instances already present with a re-opening code // otherwise only the part of the string until said closing code // will be colored, and the rest will simply be 'plain'. str = code.open + str.replace(code.closeRe, code.open) + code.close; // Close the styling before a linebreak and reopen // after next line to fix a bleed issue on macOS // https://github.com/chalk/chalk/pull/92 str = str.replace(/\r?\n/g, `${code.close}$&${code.open}`); } // Reset the original `dim` if we changed it to work around the Windows dimmed gray issue ansiStyles.dim.open = originalDim; return str; } function chalkTag(chalk, strings) { if (!Array.isArray(strings)) { // If chalk() was called by itself or with a string, // return the string itself as a string. return [].slice.call(arguments, 1).join(' '); } const args = [].slice.call(arguments, 2); const parts = [strings.raw[0]]; for (let i = 1; i < strings.length; i++) { parts.push(String(args[i - 1]).replace(/[{}\\]/g, '\\$&')); parts.push(String(strings.raw[i])); } return template(chalk, parts.join('')); } Object.defineProperties(Chalk.prototype, styles); module.exports = Chalk(); // eslint-disable-line new-cap module.exports.supportsColor = stdoutColor; module.exports.default = module.exports; // For TypeScript highlight/node_modules/chalk/readme.md000066600000025026150432031470014041 0ustar00



Chalk


> Terminal string styling done right [![Build Status](https://travis-ci.org/chalk/chalk.svg?branch=master)](https://travis-ci.org/chalk/chalk) [![Coverage Status](https://coveralls.io/repos/github/chalk/chalk/badge.svg?branch=master)](https://coveralls.io/github/chalk/chalk?branch=master) [![](https://img.shields.io/badge/unicorn-approved-ff69b4.svg)](https://www.youtube.com/watch?v=9auOCbH5Ns4) [![XO code style](https://img.shields.io/badge/code_style-XO-5ed9c7.svg)](https://github.com/xojs/xo) [![Mentioned in Awesome Node.js](https://awesome.re/mentioned-badge.svg)](https://github.com/sindresorhus/awesome-nodejs) ### [See what's new in Chalk 2](https://github.com/chalk/chalk/releases/tag/v2.0.0) ## Highlights - Expressive API - Highly performant - Ability to nest styles - [256/Truecolor color support](#256-and-truecolor-color-support) - Auto-detects color support - Doesn't extend `String.prototype` - Clean and focused - Actively maintained - [Used by ~23,000 packages](https://www.npmjs.com/browse/depended/chalk) as of December 31, 2017 ## Install ```console $ npm install chalk ``` ## Usage ```js const chalk = require('chalk'); console.log(chalk.blue('Hello world!')); ``` Chalk comes with an easy to use composable API where you just chain and nest the styles you want. ```js const chalk = require('chalk'); const log = console.log; // Combine styled and normal strings log(chalk.blue('Hello') + ' World' + chalk.red('!')); // Compose multiple styles using the chainable API log(chalk.blue.bgRed.bold('Hello world!')); // Pass in multiple arguments log(chalk.blue('Hello', 'World!', 'Foo', 'bar', 'biz', 'baz')); // Nest styles log(chalk.red('Hello', chalk.underline.bgBlue('world') + '!')); // Nest styles of the same type even (color, underline, background) log(chalk.green( 'I am a green line ' + chalk.blue.underline.bold('with a blue substring') + ' that becomes green again!' )); // ES2015 template literal log(` CPU: ${chalk.red('90%')} RAM: ${chalk.green('40%')} DISK: ${chalk.yellow('70%')} `); // ES2015 tagged template literal log(chalk` CPU: {red ${cpu.totalPercent}%} RAM: {green ${ram.used / ram.total * 100}%} DISK: {rgb(255,131,0) ${disk.used / disk.total * 100}%} `); // Use RGB colors in terminal emulators that support it. log(chalk.keyword('orange')('Yay for orange colored text!')); log(chalk.rgb(123, 45, 67).underline('Underlined reddish color')); log(chalk.hex('#DEADED').bold('Bold gray!')); ``` Easily define your own themes: ```js const chalk = require('chalk'); const error = chalk.bold.red; const warning = chalk.keyword('orange'); console.log(error('Error!')); console.log(warning('Warning!')); ``` Take advantage of console.log [string substitution](https://nodejs.org/docs/latest/api/console.html#console_console_log_data_args): ```js const name = 'Sindre'; console.log(chalk.green('Hello %s'), name); //=> 'Hello Sindre' ``` ## API ### chalk.`