diff --git a/.circleci/config.yml b/.circleci/config.yml index be67df8943c0..ce6353d85851 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -73,7 +73,7 @@ jobs: - run: name: Setup Test Runner command: | - git clone --recurse-submodules https://github.com/babel/babel-test262-runner + git clone --depth=1 --recurse-submodules https://github.com/babel/babel-test262-runner cd babel-test262-runner npm ci npm i tap-mocha-reporter --save-dev @@ -100,7 +100,7 @@ jobs: <<: *test262_workdir - store_artifacts: *artifact_test262_diff_tap - run: - name: Output comparision results and report to CircleCI + name: Output comparison results and report to CircleCI command: | mkdir -p ~/test-results/test262 cat ~/diff.tap | $(npm bin)/tap-merge | $(npm bin)/tap-mocha-reporter xunit | tee ~/test-results/test262/results.xml @@ -203,4 +203,3 @@ workflows: - e2e-vue-cli: requires: - publish-verdaccio - diff --git a/.eslintrc.js b/.eslintrc.js index 4013bc661d5b..c5664b53628b 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -14,8 +14,6 @@ module.exports = { extends: "@babel/internal", rules: { "prettier/prettier": "error", - // TODO: remove after babel-eslint-config-internal is fully integrated into this repository. - "max-len": "off", }, env: { node: true, diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index b4004b788b5d..d7b365c40c6b 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -5,7 +5,7 @@ contact_links: about: You may have an npm error related to proxies/caching. - name: 🗣 Ask a Question, Discuss url: https://github.com/babel/babel/discussions - about: How does X work 🤔? I made this! I have an idea.. + about: How does X work 🤔? I made this! I have an idea... - name: 💡 Propose an RFC url: https://github.com/babel/rfcs about: To suggest a new option or substantial change. diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 000000000000..877c5a9b0d9a --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,42 @@ +name: Node CI + +on: [push, pull_request] + +jobs: + test: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v2 + - name: Use Node.js latest + uses: actions/setup-node@v2-beta + - name: Generate coverage report + run: | + make -j test-ci-coverage + - name: Upload coverage report + uses: codecov/codecov-action@v1 + with: + token: ${{ secrets.CODECOV_TOKEN }} + + legacy-node-version-test: + runs-on: ubuntu-latest + strategy: + matrix: + node-version: [6.x, 8.x] + steps: + - name: Checkout code + uses: actions/checkout@v2 + - name: Use Node.js latest + uses: actions/setup-node@v2-beta # Build Babel on latest node versions + - name: Build + run: | + BABEL_ENV=test-legacy make -j bootstrap + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2-beta + with: + node-version: ${{ matrix.node-version }} + - name: Test on node.js ${{ matrix.node-version }} + # Hack: --color has supports-color@5 returned true for GitHub CI + # Remove once `chalk` is bumped to 4.0. + run: | + BABEL_ENV=test node ./node_modules/.bin/jest --ci --color diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml deleted file mode 100644 index f50b56856cea..000000000000 --- a/.github/workflows/coverage.yml +++ /dev/null @@ -1,21 +0,0 @@ -name: Report Coverage - -on: [push, pull_request] - -jobs: - build: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v2 - - name: Use Node.js latest - uses: actions/setup-node@v2-beta - with: - node-version: "*" - - name: Generate coverage report - run: | - make -j test-ci-coverage - - name: Upload coverage report - uses: codecov/codecov-action@v1 - with: - token: ${{ secrets.CODECOV_TOKEN }} diff --git a/.gitignore b/.gitignore index 6cc6d26c0512..e4edad5683c3 100644 --- a/.gitignore +++ b/.gitignore @@ -73,4 +73,4 @@ packages/babel-standalone/babel.min.js /eslint/*/LICENSE !/packages/babel-eslint-plugin/LICENSE .watchmanconfig -.vscode +/.vscode diff --git a/CHANGELOG.md b/CHANGELOG.md index c269dbf98a88..0dabd46bf1bd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,154 @@ See [`eslint-plugin-babel`'s releases](https://github.com/babel/eslint-plugin-ba +## v7.11.3 (2020-08-08) + +#### :bug: Bug Fix +* [#11932](https://github.com/babel/babel/pull/11932) fix: add ImportExpression visitorKeys ([@JLHwung](https://github.com/JLHwung)) + +#### :nail_care: Polish +* `babel-parser` + * [#11921](https://github.com/babel/babel/pull/11921) refactor: add recoverable error on accessorIsGenerator ([@JLHwung](https://github.com/JLHwung)) + +#### :house: Internal +* `babel-parser` + * [#11919](https://github.com/babel/babel/pull/11919) refactor: simplify smart pipeline parsing ([@JLHwung](https://github.com/JLHwung)) + * [#11922](https://github.com/babel/babel/pull/11922) simplify isLookaheadRelational method ([@JLHwung](https://github.com/JLHwung)) + * [#11917](https://github.com/babel/babel/pull/11917) Support ConditionalExpressions in dry-error-messages rule ([@existentialism](https://github.com/existentialism)) + * [#11918](https://github.com/babel/babel/pull/11918) refactor: avoid unnecessary property access ([@JLHwung](https://github.com/JLHwung)) +## v7.11.2 (2020-08-05) + +#### :bug: Bug Fix +* `babel-parser` + * [#11916](https://github.com/babel/babel/pull/11916) fix: do not eat get/set after async is parsed ([@JLHwung](https://github.com/JLHwung)) +## v7.11.1 (2020-08-04) + +#### :bug: Bug Fix +* `babel-parser` + * [#11912](https://github.com/babel/babel/pull/11912) rescan gt/lt token after TsAsExpression is parsed ([@JLHwung](https://github.com/JLHwung)) +* `babel-core` + * [#11906](https://github.com/babel/babel/pull/11906) Do not cache non-existent config files forever ([@devongovett](https://github.com/devongovett)) +* `babel-plugin-transform-block-scoping`, `babel-standalone` + * [#11901](https://github.com/babel/babel/pull/11901) fix: ensure `[…map.keys]` can be correctly transformed in loose mode ([@JLHwung](https://github.com/JLHwung)) + +#### :memo: Documentation +* [#11900](https://github.com/babel/babel/pull/11900) docs: remove experimental warning on README ([@JLHwung](https://github.com/JLHwung)) + +#### :house: Internal +* `babel-parser` + * [#11871](https://github.com/babel/babel/pull/11871) Parser refactoring ([@JLHwung](https://github.com/JLHwung)) +* Other + * [#11899](https://github.com/babel/babel/pull/11899) Update `@babel/*` deps ([@JLHwung](https://github.com/JLHwung)) +## v7.11.0 (2020-07-30) + +#### :eyeglasses: Spec Compliance +* `babel-parser` + * [#11852](https://github.com/babel/babel/pull/11852) fix: disallow \8, \9 in strict mode string ([@JLHwung](https://github.com/JLHwung)) + * [#11854](https://github.com/babel/babel/pull/11854) fix: allow 09.1_1 and 09e1_1 in sloppy mode ([@JLHwung](https://github.com/JLHwung)) +* `babel-plugin-proposal-optional-chaining` + * [#11850](https://github.com/babel/babel/pull/11850) fix: eval?.() is indirect ([@JLHwung](https://github.com/JLHwung)) + +#### :rocket: New Feature +* `babel-cli`, `babel-core` + * [#11588](https://github.com/babel/babel/pull/11588) add showConfig support ([@JLHwung](https://github.com/JLHwung)) +* `babel-compat-data`, `babel-preset-env` + * [#11876](https://github.com/babel/babel/pull/11876) enable logical assignment in babel preset env ([@morrme](https://github.com/morrme)) + * [#11865](https://github.com/babel/babel/pull/11865) Add `numeric-separator` to `preset-env` ([@JLHwung](https://github.com/JLHwung)) + * [#11849](https://github.com/babel/babel/pull/11849) Add `export-namespace-from` to `preset-env` ([@JLHwung](https://github.com/JLHwung)) +* `babel-parser` + * [#11863](https://github.com/babel/babel/pull/11863) feat: enable numericSeparator parsing support ([@JLHwung](https://github.com/JLHwung)) + * [#11755](https://github.com/babel/babel/pull/11755) Allow unknown/any in TS catch clause param ([@existentialism](https://github.com/existentialism)) + * [#11753](https://github.com/babel/babel/pull/11753) TypeScript 4.0: Allow spread in the middle of tuples ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo)) + * [#11815](https://github.com/babel/babel/pull/11815) eslint-parser: ES2020 features ([@JLHwung](https://github.com/JLHwung)) +* `babel-generator`, `babel-parser`, `babel-types` + * [#11754](https://github.com/babel/babel/pull/11754) TypeScript 4.0: Support labeled tuple elements ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo)) +* `babel-core`, `babel-generator`, `babel-parser`, `babel-plugin-syntax-decimal`, `babel-standalone`, `babel-types` + * [#11640](https://github.com/babel/babel/pull/11640) Add decimal parsing support ([@JLHwung](https://github.com/JLHwung)) +* `babel-core` + * [#10241](https://github.com/babel/babel/pull/10241) Add `cloneInputAst` option to `babel.transformFromAst` ([@coderaiser](https://github.com/coderaiser)) + +#### :bug: Bug Fix +* Other + * [#11896](https://github.com/babel/babel/pull/11896) update: hardcode @babel/eslint-parser min supported version check ([@kaicataldo](https://github.com/kaicataldo)) +* `babel-helper-skip-transparent-expression-wrappers`, `babel-plugin-proposal-optional-chaining`, `babel-plugin-transform-spread` + * [#11404](https://github.com/babel/babel/pull/11404) Skip TSAsExpression when transforming spread in CallExpression ([@oliverdunk](https://github.com/oliverdunk)) +* `babel-helper-member-expression-to-functions`, `babel-plugin-proposal-class-properties`, `babel-plugin-proposal-logical-assignment-operators` + * [#11702](https://github.com/babel/babel/pull/11702) add support for logical assignments with private properties ([@ryzokuken](https://github.com/ryzokuken)) +* `babel-plugin-transform-typescript` + * [#11747](https://github.com/babel/babel/pull/11747) Typescript: always strip declare from class fields ([@jamescdavis](https://github.com/jamescdavis)) +* `babel-plugin-transform-runtime` + * [#11893](https://github.com/babel/babel/pull/11893) Fix incorrect module path when absoluteRuntime is specified ([@sz-coder](https://github.com/sz-coder)) +* `babel-parser` + * [#11862](https://github.com/babel/babel/pull/11862) Correctly check reserved word for PropertyDefinition: IdentifierReference ([@JLHwung](https://github.com/JLHwung)) + * [#11847](https://github.com/babel/babel/pull/11847) fix: correctly set innerEndPos in CoverParenthesizedExpressionAndArrowParameterList ([@JLHwung](https://github.com/JLHwung)) +* `babel-generator`, `babel-parser`, `babel-plugin-transform-typescript` + * [#11767](https://github.com/babel/babel/pull/11767) Follow-up on initial TS4 catch param support ([@JLHwung](https://github.com/JLHwung)) +* `babel-generator` + * [#11836](https://github.com/babel/babel/pull/11836) Always retain lines for async arrow ([@cwohlman](https://github.com/cwohlman)) + +#### :nail_care: Polish +* `babel-traverse` + * [#11791](https://github.com/babel/babel/pull/11791) babel-traverse: prefer clearer, reduced-bias option naming ([@jayaddison](https://github.com/jayaddison)) + +#### :house: Internal +* Other + * [#11688](https://github.com/babel/babel/pull/11688) fix build config to work the same when running on windows ([@zxbodya](https://github.com/zxbodya)) + * [#11894](https://github.com/babel/babel/pull/11894) Prepare to publish `@babel/eslint-*` packages ([@JLHwung](https://github.com/JLHwung)) + * [#11879](https://github.com/babel/babel/pull/11879) chore: use modules: "auto" ([@JLHwung](https://github.com/JLHwung)) + * [#11875](https://github.com/babel/babel/pull/11875) chore(github): fix issue template typo ([@SirWindfield](https://github.com/SirWindfield)) + * [#11706](https://github.com/babel/babel/pull/11706) chore: update `spec-new` in CONTRIBUTING.md [skip ci] ([@JLHwung](https://github.com/JLHwung)) +* `babel-standalone` + * [#11777](https://github.com/babel/babel/pull/11777) chore: build standalone once in prepublish step ([@JLHwung](https://github.com/JLHwung)) +* `babel-compat-data`, `babel-helper-compilation-targets`, `babel-preset-env` + * [#11838](https://github.com/babel/babel/pull/11838) refactor: replace caniuse-db by mdn-browser-compat-data ([@JLHwung](https://github.com/JLHwung)) +* `babel-compat-data`, `babel-core`, `babel-helper-module-transforms`, `babel-helper-split-export-declaration`, `babel-parser`, `babel-plugin-proposal-object-rest-spread`, `babel-plugin-transform-classes`, `babel-preset-env`, `babel-traverse`, `babel-types` + * [#11846](https://github.com/babel/babel/pull/11846) chore: fix typo in codebase ([@JLHwung](https://github.com/JLHwung)) +* `babel-types` + * [#11843](https://github.com/babel/babel/pull/11843) refactor: reorganize babel types definitions structure ([@JLHwung](https://github.com/JLHwung)) +* `babel-compat-data` + * [#11837](https://github.com/babel/babel/pull/11837) chore: use repository HEAD when pulling third party repos ([@JLHwung](https://github.com/JLHwung)) +## v7.10.5 (2020-07-14) + +#### :bug: Bug Fix +* `babel-helper-builder-react-jsx-experimental`, `babel-helper-create-class-features-plugin`, `babel-helper-member-expression-to-functions`, `babel-helper-module-transforms`, `babel-helper-transform-fixture-test-runner`, `babel-plugin-proposal-async-generator-functions`, `babel-plugin-proposal-decorators`, `babel-plugin-proposal-function-bind`, `babel-plugin-proposal-partial-application`, `babel-plugin-proposal-pipeline-operator`, `babel-plugin-transform-block-scoping`, `babel-plugin-transform-modules-amd`, `babel-plugin-transform-modules-systemjs`, `babel-plugin-transform-parameters`, `babel-plugin-transform-react-jsx-source`, `babel-plugin-transform-runtime`, `babel-plugin-transform-template-literals`, `babel-plugin-transform-typescript` + * [#11807](https://github.com/babel/babel/pull/11807) Disallow duplicated AST nodes ([@JLHwung](https://github.com/JLHwung)) +* `babel-parser` + * [#11814](https://github.com/babel/babel/pull/11814) fix: add optional: false to chained optional call expression ([@JLHwung](https://github.com/JLHwung)) + * [#11774](https://github.com/babel/babel/pull/11774) fix: throw expect jsx plugin error when an idStart or > is seen ([@JLHwung](https://github.com/JLHwung)) +* `babel-plugin-transform-typescript` + * [#11816](https://github.com/babel/babel/pull/11816) Typescript transform now removes generic arguments from optional calls (Closes [#11813](https://github.com/babel/babel/issues/11813)) ([@RafaelSalguero](https://github.com/RafaelSalguero)) +* `babel-plugin-transform-block-scoping` + * [#11802](https://github.com/babel/babel/pull/11802) Fix break/continue when switch is nested inside loop ([@existentialism](https://github.com/existentialism)) +* `babel-generator`, `babel-plugin-transform-typescript`, `babel-types` + * [#11582](https://github.com/babel/babel/pull/11582) Refactor generated builder names in @babel/types ([@zxbodya](https://github.com/zxbodya)) +* `babel-compat-data` + * [#11783](https://github.com/babel/babel/pull/11783) fix: update class properties support matrix ([@JLHwung](https://github.com/JLHwung)) + +#### :memo: Documentation +* Other + * [#11799](https://github.com/babel/babel/pull/11799) docs: update README example and REPL link ([@JLHwung](https://github.com/JLHwung)) + * [#11761](https://github.com/babel/babel/pull/11761) Add note about running Make targets in Windows 10 ([@kaicataldo](https://github.com/kaicataldo)) +* `babel-parser` + * [#11729](https://github.com/babel/babel/pull/11729) docs: add AST spec on optional chain [skip ci] ([@JLHwung](https://github.com/JLHwung)) + +#### :house: Internal +* `babel-cli`, `babel-compat-data`, `babel-core`, `babel-helper-define-map`, `babel-helper-fixtures`, `babel-helper-module-transforms`, `babel-helper-regex`, `babel-helper-transform-fixture-test-runner`, `babel-node`, `babel-plugin-transform-proto-to-assign`, `babel-register`, `babel-traverse`, `babel-types` + * [#11818](https://github.com/babel/babel/pull/11818) Bump some deps for audit ([@existentialism](https://github.com/existentialism)) +* `babel-helper-fixtures`, `babel-traverse` + * [#11811](https://github.com/babel/babel/pull/11811) Replace lodash 'clone' usage with ES6 Spread initializer ([@jayaddison](https://github.com/jayaddison)) +* `babel-helper-fixtures`, `babel-helper-transform-fixture-test-runner` + * [#11812](https://github.com/babel/babel/pull/11812) Replace lodash 'extend' usage with Object.assign ([@jayaddison](https://github.com/jayaddison)) +* `babel-plugin-transform-block-scoping` + * [#11798](https://github.com/babel/babel/pull/11798) Reduce dependency on lodash functions: values, extends ([@jayaddison](https://github.com/jayaddison)) +* `babel-generator`, `babel-plugin-transform-typescript`, `babel-types` + * [#11582](https://github.com/babel/babel/pull/11582) Refactor generated builder names in @babel/types ([@zxbodya](https://github.com/zxbodya)) +* `babel-cli`, `babel-generator`, `babel-helper-transform-fixture-test-runner`, `babel-traverse`, `babel-types` + * [#11790](https://github.com/babel/babel/pull/11790) Reduce dependency on lodash functions: includes, uniq, repeat, isinteger ([@jayaddison](https://github.com/jayaddison)) +* Other + * [#11782](https://github.com/babel/babel/pull/11782) chore: refine yarn cache config ([@JLHwung](https://github.com/JLHwung)) +* `babel-register` + * [#11780](https://github.com/babel/babel/pull/11780) test: add console warn spy on babel-register tests ([@JLHwung](https://github.com/JLHwung)) + * [#11776](https://github.com/babel/babel/pull/11776) chore: remove babel-register generated test artifacts ([@JLHwung](https://github.com/JLHwung)) ## v7.10.4 (2020-06-30) #### :eyeglasses: Spec Compliance diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 37cdadbd7008..82ce2de27a19 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -311,15 +311,22 @@ Note that the code shown in Chrome DevTools is compiled code and therefore diffe ## Creating a new plugin (`spec-new`) -> Example: https://github.com/babel/babylon/pull/541 +> Example: https://github.com/babel/babel/pull/11640 -- Create a new issue that describes the proposal (ex: [#538](https://github.com/babel/babylon/issues/538)). Include any relevant information like proposal repo/author, examples, parsing approaches, meeting notes, presentation slides, and more. -- The pull request should include: - - [ ] An update to the [plugins](https://github.com/babel/babel/tree/main/packages/babel-parser#plugins) part of the readme. Add a new entry to that list for the new plugin flag (and link to the proposal) - - [ ] If any new nodes or modifications need to be added to the AST, update [ast/spec.md](https://github.com/babel/babel/blob/main/packages/babel-parser/ast/spec.md) - - [ ] Make sure you use the `this.hasPlugin("plugin-name-here")` check in the babel parser so that your new plugin code only runs when that flag is turned on (not default behavior) +- Create a new PR that describes the proposed AST shape in [ESTree](https://github.com/estree/estree) (ex: [Decimal AST](https://github.com/estree/estree/pull/220)). The new AST should follow ESTree's [design philosophy](https://github.com/estree/estree#philosophy). +- After the ESTree PR is accepted, update [ast/spec.md](https://github.com/babel/babel/blob/master/packages/babel-parser/ast/spec.md). Note that there are differences between Babel AST and ESTree. In these cases, consistency with current Babel AST outweighs alignment to ESTree. Otherwise it should follow ESTree. + +- [ ] Implement parser plugins based on the new AST. The parser plugin name should be the unprefixed slug of the TC39 proposal URL in _camelcase_, i.e. `exportDefaultFrom` from `https://github.com/tc39/proposal-export-default-from`. + - [ ] Use the `this.expectPlugin("newSyntax")` check within `@babel/parser` to ensure your new plugin code only runs when that flag is turned on (not default behavior), and a friendly error is thrown if users forget to enable a plugin. - [ ] Add failing/passing tests according to spec behavior -- Start working about the Babel transform itself! + - [ ] Add `@babel/syntax-new-syntax` package. You can copy `packages/babel-plugin-syntax-decimal` and replace `decimal` to `new-syntax`. + - [ ] Add `@babel/syntax-new-syntax` to `@babel/standalone`. + - [ ] Add `@babel/syntax-new-syntax` to `package.json` + - [ ] Add `@babel/syntax-new-syntax` to [`pluginsConfig.json`](https://github.com/babel/babel/blob/master/packages/babel-standalone/scripts/pluginConfig.json), run `make generate-standalone`. + - [ ] Add `@babel/syntax-new-syntax` to `src/preset-stage-x`. + - [ ] Add `"newSyntax"` to parser [typings](https://github.com/babel/babel/blob/master/packages/babel-parser/typings/babel-parser.d.ts) +- [ ] Implement generator support in `packages/babel-generator/src/generators`. The generator converts AST to source code. +- [ ] If this feature can be transpiled, start working on the Babel transform. ## Internals diff --git a/Makefile b/Makefile index ddd9ec8abdec..68f078f7b497 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ FLOW_COMMIT = a1f9a4c709dcebb27a5084acf47755fbae699c25 TEST262_COMMIT = 058adfed86b1d4129996faaf50a85ea55379a66a -TYPESCRIPT_COMMIT = 5fc917be2e4dd64c8e9504d36615cd7fbfdd4cd3 +TYPESCRIPT_COMMIT = ffa35d3272647fe48ddf173e1f0928f772c18630 FORCE_PUBLISH = "@babel/runtime,@babel/runtime-corejs3,@babel/standalone" @@ -73,8 +73,8 @@ build-no-bundle: clean clean-lib BABEL_ENV=development $(YARN) gulp build-no-bundle # Ensure that build artifacts for types are created during local # development too. - $(MAKE) generate-type-helpers - $(MAKE) build-typings + # Babel-transform-fixture-test-runner requires minified polyfill for performance + $(MAKE) generate-type-helpers build-typings build-polyfill-dist build-no-bundle-ci: bootstrap-only-ci $(MAKE) build-no-bundle @@ -82,9 +82,10 @@ build-no-bundle-ci: bootstrap-only-ci watch: build-no-bundle BABEL_ENV=development $(YARN) gulp watch -code-quality-ci: flowcheck-ci lint-js-ci lint-ts-ci check-compat-data-ci +code-quality-ci: build-no-bundle-ci + $(MAKE) flowcheck-ci lint-js-ci lint-ts-ci check-compat-data-ci -flowcheck-ci: build-no-bundle-ci +flowcheck-ci: $(MAKE) flow lint-js-ci: build-no-bundle-ci @@ -156,8 +157,8 @@ test-ci-coverage: bootstrap-flow: rm -rf build/flow mkdir -p build - git clone --branch=master --single-branch --shallow-since=2018-11-01 https://github.com/facebook/flow.git build/flow - cd build/flow && git checkout $(FLOW_COMMIT) + git clone --single-branch --shallow-since=2018-11-01 https://github.com/facebook/flow.git build/flow + cd build/flow && git checkout -q $(FLOW_COMMIT) test-flow: $(NODE) scripts/parser-tests/flow @@ -171,8 +172,8 @@ test-flow-update-allowlist: bootstrap-typescript: rm -rf ./build/typescript mkdir -p ./build - git clone --branch=master --single-branch --shallow-since=2019-09-01 https://github.com/microsoft/TypeScript.git ./build/typescript - cd build/typescript && git checkout $(TYPESCRIPT_COMMIT) + git clone --single-branch --shallow-since=2019-09-01 https://github.com/microsoft/TypeScript.git ./build/typescript + cd build/typescript && git checkout -q $(TYPESCRIPT_COMMIT) test-typescript: $(NODE) scripts/parser-tests/typescript @@ -186,8 +187,8 @@ test-typescript-update-allowlist: bootstrap-test262: rm -rf build/test262 mkdir -p build - git clone --branch=master --single-branch --shallow-since=2019-12-01 https://github.com/tc39/test262.git build/test262 - cd build/test262 && git checkout $(TEST262_COMMIT) + git clone --single-branch --shallow-since=2019-12-01 https://github.com/tc39/test262.git build/test262 + cd build/test262 && git checkout -q $(TEST262_COMMIT) test-test262: $(NODE) scripts/parser-tests/test262 @@ -203,8 +204,8 @@ clone-license: ./scripts/clone-license.sh prepublish-build: clean-lib clean-runtime-helpers - NODE_ENV=production BABEL_ENV=production $(MAKE) build - $(MAKE) clone-license + NODE_ENV=production BABEL_ENV=production $(MAKE) build-bundle + $(MAKE) prepublish-build-standalone clone-license prepublish: $(MAKE) bootstrap-only @@ -242,11 +243,6 @@ endif $(YARN) lerna publish from-git --registry http://localhost:4873 --yes --tag-version-prefix="version-e2e-test-" $(MAKE) clean -publish-eslint: - $(call set-json-field, ./eslint/$(PKG)/package.json, private, false) - cd eslint/$(PKG); $(YARN) npm publish - $(call set-json-field, ./eslint/$(PKG)/package.json, private, true) - bootstrap-only: clean-all $(YARN) @@ -297,10 +293,3 @@ define clean-source-all rm -rf $(1)/*/package-lock.json endef - -define set-json-field - $(NODE) -e "\ - require('fs').writeFileSync('$1'.trim(), \ - JSON.stringify({ ...require('$1'.trim()), $2: $3 }, null, 2) + '\\n' \ - )" -endef diff --git a/README.md b/README.md index 472558348f0a..31b74893567a 100644 --- a/README.md +++ b/README.md @@ -63,19 +63,21 @@ Babel is a tool that helps you write code in the latest version of JavaScript. W **In** ```js -// ES2015 arrow function -[1, 2, 3].map((n) => n + 1); +// ES2020 nullish coalescing +function greet(input) { + return input ?? "Hello world"; +} ``` **Out** ```js -[1, 2, 3].map(function(n) { - return n + 1; -}); +function greet(input) { + return input != null ? input : "Hello world"; +} ``` -Try it out at our [REPL](https://babeljs.io/repl/build/main#?code_lz=NoRgNATGDMC6B0BbAhgBwBQDsAEBeAfNjgNTYgCUA3EA&lineWrap=true&presets=es2015%2Ces2016%2Ces2017&version=7.0.0-beta.2). +Try it out at our [REPL](https://babel.dev/repl#?browsers=defaults%2C%20not%20ie%2011&loose=true&code_lz=GYVwdgxgLglg9mABAcwE4FN1QBQzABxCgEpEBvAKEUQyhFST0KkQH5XEAiACXQBs-cRAHc4qPgBNOAbgoBfIA&shippedProposals=true&sourceType=script&lineWrap=true&presets=env%2Cenv&prettier=true). ## FAQ diff --git a/babel.config.js b/babel.config.js index 653c5ce168aa..a01b7a8edb32 100644 --- a/babel.config.js +++ b/babel.config.js @@ -1,5 +1,11 @@ "use strict"; +const path = require("path"); + +function normalize(src) { + return src.replace(/\//, path.sep); +} + module.exports = function (api) { const env = api.env(); @@ -7,13 +13,12 @@ module.exports = function (api) { const envOptsNoTargets = { loose: true, - modules: false, shippedProposals: true, - exclude: ["transform-typeof-symbol"], }; const envOpts = Object.assign({}, envOptsNoTargets); - const compileDynamicImport = env === "test" || env === "development"; + const compileDynamicImport = + env === "test" || env === "development" || env === "test-legacy"; let convertESM = true; let ignoreLib = true; @@ -51,6 +56,7 @@ module.exports = function (api) { ); if (env === "rollup") envOpts.targets = { node: nodeVersion }; break; + case "test-legacy": // In test-legacy environment, we build babel on latest node but test on minimum supported legacy versions case "production": // Config during builds before publish. envOpts.targets = { @@ -93,14 +99,14 @@ module.exports = function (api) { "packages/*/test/fixtures", ignoreLib ? "packages/*/lib" : null, "packages/babel-standalone/babel.js", - ].filter(Boolean), + ] + .filter(Boolean) + .map(normalize), presets: [["@babel/env", envOpts]], plugins: [ // TODO: Use @babel/preset-flow when // https://github.com/babel/babel/issues/7233 is fixed "@babel/plugin-transform-flow-strip-types", - ["@babel/proposal-class-properties", { loose: true }], - "@babel/proposal-export-namespace-from", [ "@babel/proposal-object-rest-spread", { useBuiltIns: true, loose: true }, @@ -115,14 +121,14 @@ module.exports = function (api) { test: [ "packages/babel-parser", "packages/babel-helper-validator-identifier", - ], + ].map(normalize), plugins: [ "babel-plugin-transform-charcodes", ["@babel/transform-for-of", { assumeArray: true }], ], }, { - test: ["./packages/babel-cli", "./packages/babel-core"], + test: ["./packages/babel-cli", "./packages/babel-core"].map(normalize), plugins: [ // Explicitly use the lazy version of CommonJS modules. convertESM @@ -131,11 +137,11 @@ module.exports = function (api) { ].filter(Boolean), }, { - test: "./packages/babel-polyfill", + test: normalize("./packages/babel-polyfill"), presets: [["@babel/env", envOptsNoTargets]], }, { - test: unambiguousSources, + test: unambiguousSources.map(normalize), sourceType: "unambiguous", }, includeRegeneratorRuntime && { diff --git a/eslint/babel-eslint-config-internal/package.json b/eslint/babel-eslint-config-internal/package.json index 013b99131543..fb4ebc4fbfb1 100644 --- a/eslint/babel-eslint-config-internal/package.json +++ b/eslint/babel-eslint-config-internal/package.json @@ -1,19 +1,24 @@ { "name": "@babel/eslint-config-internal", - "version": "7.10.4", + "version": "7.11.0", "description": "The Babel Team's ESLint configuration. Since it's internal, it might not respect semver.", - "author": "Sebastian McKenzie ", + "author": "The Babel Team (https://babeljs.io/team)", "homepage": "https://babeljs.io/", "license": "MIT", - "private": true, "repository": { "type": "git", "url": "https://github.com/babel/babel.git", "directory": "eslint/babel-eslint-config-internal" }, - "main": "index.js", + "private": true, + "main": "./index.js", + "type": "commonjs", + "exports": { + ".": "./index.js", + "./package.json": "./package.json" + }, "peerDependencies": { - "@babel/eslint-parser": "*", + "@babel/eslint-parser": "^7.10.4", "eslint-plugin-flowtype": "^3.0.0" } } diff --git a/eslint/babel-eslint-config-internal/yarn.lock b/eslint/babel-eslint-config-internal/yarn.lock new file mode 100644 index 000000000000..fb57ccd13afb --- /dev/null +++ b/eslint/babel-eslint-config-internal/yarn.lock @@ -0,0 +1,4 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + diff --git a/eslint/babel-eslint-parser/README.md b/eslint/babel-eslint-parser/README.md index 75814be5c1f4..8ee13ebda10a 100644 --- a/eslint/babel-eslint-parser/README.md +++ b/eslint/babel-eslint-parser/README.md @@ -1,8 +1,5 @@ # @babel/eslint-parser [![npm](https://img.shields.io/npm/v/@babel/eslint-parser.svg)](https://www.npmjs.com/package/@babel/eslint-parser) [![travis](https://img.shields.io/travis/babel/@babel/eslint-parser/main.svg)](https://travis-ci.org/babel/@babel/eslint-parser) [![npm-downloads](https://img.shields.io/npm/dm/@babel/eslint-parser.svg)](https://www.npmjs.com/package/@babel/eslint-parser) - -## This project is still experimental and will be released with Babel v8. You can track our progress [here](https://github.com/babel/babel/issues/10752)! Please use [babel-eslint](https://github.com/babel/babel-eslint) in the meantime. - **@babel/eslint-parser** allows you to lint **ALL** valid Babel code with the fantastic [ESLint](https://github.com/eslint/eslint). @@ -56,7 +53,7 @@ Additional configuration options can be set in your ESLint configuration under t - `sourceType` can be set to `"module"`(default) or `"script"` if your code isn't using ECMAScript modules. - `allowImportExportEverywhere` (default `false`) can be set to `true` to allow import and export declarations to appear anywhere a statement is allowed if your build environment supports that. Otherwise import and export declarations can only appear at a program's top level. - `ecmaFeatures.globalReturn` (default `false`) allow return statements in the global scope when used with `sourceType: "script"`. -- `babelOptions` is an object containing Babel configuration [options](https://babeljs.io/docs/en/options) that are passed to Babel's parser at runtime. For cases where users might not want to use a Babel configuration file or are running Babel through another tool (such as Webpack with `babel-loader`). +- `babelOptions` is an object containing Babel configuration [options](https://babeljs.io/docs/en/options) that are passed to Babel's parser at runtime. For cases where users might not want to use a Babel configuration file or are running Babel through another tool (such as Webpack with `babel-loader`). **.eslintrc.js** @@ -83,14 +80,14 @@ This configuration would use the default parser for all files except for those f ```js module.exports = { rules: { - indent: "error" + indent: "error", }, overrides: [ { files: ["files/transformed/by/babel/*.js"], parser: "@babel/eslint-parser", - } - ] + }, + ], }; ``` diff --git a/eslint/babel-eslint-parser/package.json b/eslint/babel-eslint-parser/package.json index d08c537019fb..5fb897cbde22 100644 --- a/eslint/babel-eslint-parser/package.json +++ b/eslint/babel-eslint-parser/package.json @@ -1,37 +1,43 @@ { "name": "@babel/eslint-parser", - "version": "7.10.4", + "version": "7.11.3", "description": "ESLint parser that allows for linting of experimental syntax transformed by Babel", - "author": "Sebastian McKenzie ", + "author": "The Babel Team (https://babeljs.io/team)", "license": "MIT", - "private": true, "repository": { "type": "git", "url": "https://github.com/babel/babel.git", "directory": "eslint/babel-eslint-parser" }, + "publishConfig": { + "access": "public" + }, "bugs": { "url": "https://github.com/babel/babel/issues" }, "homepage": "https://babeljs.io/", "engines": { - "node": ">=10.13.0" + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "main": "./lib/index.js", + "type": "commonjs", + "exports": { + ".": "./lib/index.js", + "./package.json": "./package.json" }, - "main": "lib/index.js", "peerDependencies": { - "@babel/core": ">=7.2.0", - "eslint": ">=6.0.0" + "@babel/core": ">=7.11.0", + "eslint": ">=7.5.0" }, "dependencies": { - "eslint-scope": "5.0.0", - "eslint-visitor-keys": "^1.1.0", + "eslint-scope": "5.1.0", + "eslint-visitor-keys": "^1.3.0", "semver": "^6.3.0" }, "devDependencies": { - "@babel/core": "workspace:^7.10.4", - "@babel/eslint-shared-fixtures": "workspace:*", + "@babel/core": "workspace:^7.11.0", "dedent": "^0.7.0", - "eslint": "^6.0.1", + "eslint": "^7.5.0", "lodash.clonedeep": "^4.5.0" } } diff --git a/eslint/babel-eslint-parser/src/convert/convertAST.js b/eslint/babel-eslint-parser/src/convert/convertAST.js index 4cee65d0f6f7..0d714ba5d00b 100644 --- a/eslint/babel-eslint-parser/src/convert/convertAST.js +++ b/eslint/babel-eslint-parser/src/convert/convertAST.js @@ -1,4 +1,5 @@ import { types as t, traverse } from "@babel/core"; +import VISITOR_KEYS from "../visitor-keys"; function convertNodes(ast, code) { const astTransformVisitor = { @@ -81,21 +82,30 @@ function convertNodes(ast, code) { }; const state = { source: code }; - // Monkey patch visitor keys in order to be able to traverse the estree nodes - t.VISITOR_KEYS.Property = t.VISITOR_KEYS.ObjectProperty; - t.VISITOR_KEYS.MethodDefinition = [ - "key", - "value", - "decorators", - "returnType", - "typeParameters", - ]; - - traverse(ast, astTransformVisitor, null, state); - - // These can be safely deleted because they are not defined in the original visitor keys. - delete t.VISITOR_KEYS.Property; - delete t.VISITOR_KEYS.MethodDefinition; + const oldExportAllDeclarationKeys = t.VISITOR_KEYS.ExportAllDeclaration; + + try { + // Monkey patch visitor keys in order to be able to traverse the estree nodes + t.VISITOR_KEYS.ChainExpression = VISITOR_KEYS.ChainExpression; + t.VISITOR_KEYS.ImportExpression = VISITOR_KEYS.ImportExpression; + t.VISITOR_KEYS.Property = VISITOR_KEYS.Property; + t.VISITOR_KEYS.MethodDefinition = VISITOR_KEYS.MethodDefinition; + + // Make sure we visit `exported` key to remove `identifierName` from loc node + t.VISITOR_KEYS.ExportAllDeclaration = t.VISITOR_KEYS.ExportAllDeclaration.concat( + "exported", + ); + + traverse(ast, astTransformVisitor, null, state); + } finally { + // These can be safely deleted because they are not defined in the original visitor keys. + delete t.VISITOR_KEYS.ChainExpression; + delete t.VISITOR_KEYS.ImportExpression; + delete t.VISITOR_KEYS.MethodDefinition; + delete t.VISITOR_KEYS.Property; + + t.VISITOR_KEYS.ExportAllDeclaration = oldExportAllDeclarationKeys; + } } function convertProgramNode(ast) { diff --git a/eslint/babel-eslint-parser/src/convert/convertTokens.js b/eslint/babel-eslint-parser/src/convert/convertTokens.js index 402f02ebe6c6..f444d9941d54 100644 --- a/eslint/babel-eslint-parser/src/convert/convertTokens.js +++ b/eslint/babel-eslint-parser/src/convert/convertTokens.js @@ -115,7 +115,6 @@ function convertToken(token, source) { type === tt.incDec || type === tt.colon || type === tt.question || - type === tt.questionDot || type === tt.template || type === tt.backQuote || type === tt.dollarBraceL || @@ -136,6 +135,7 @@ function convertToken(token, source) { type === tt.tilde || type === tt.doubleColon || type === tt.hash || + type === tt.questionDot || type.isAssign ) { token.type = "Punctuator"; @@ -174,6 +174,10 @@ function convertToken(token, source) { token.type = "Numeric"; token.value = `${token.value}n`; } + if (typeof token.type !== "string") { + // Acorn does not have rightAssociative + delete token.type.rightAssociative; + } return token; } diff --git a/eslint/babel-eslint-parser/src/index.js b/eslint/babel-eslint-parser/src/index.js index 2da046b0f05f..e4be37d822ff 100644 --- a/eslint/babel-eslint-parser/src/index.js +++ b/eslint/babel-eslint-parser/src/index.js @@ -12,19 +12,22 @@ import convert from "./convert"; import analyzeScope from "./analyze-scope"; import visitorKeys from "./visitor-keys"; -let isRunningSupportedVersion; +let isRunningMinSupportedCoreVersion = null; function baseParse(code, options) { - if (typeof isRunningSupportedVersion !== "boolean") { - isRunningSupportedVersion = semver.satisfies( + // Ensure we're using a version of `@babel/core` that includes `parse()` and `tokTypes`. + const minSupportedCoreVersion = ">=7.2.0"; + + if (typeof isRunningMinSupportedCoreVersion !== "boolean") { + isRunningMinSupportedCoreVersion = semver.satisfies( babelCoreVersion, - packageJson.peerDependencies["@babel/core"], + minSupportedCoreVersion, ); } - if (!isRunningSupportedVersion) { + if (!isRunningMinSupportedCoreVersion) { throw new Error( - `@babel/eslint-parser@${packageJson.version} does not support @babel/core@${babelCoreVersion}. Please upgrade to @babel/core@${packageJson.peerDependencies["@babel/core"]}`, + `@babel/eslint-parser@${packageJson.version} does not support @babel/core@${babelCoreVersion}. Please upgrade to @babel/core@${minSupportedCoreVersion}.`, ); } diff --git a/eslint/babel-eslint-parser/src/visitor-keys.js b/eslint/babel-eslint-parser/src/visitor-keys.js index 6676a86602e3..3d28bde44cac 100644 --- a/eslint/babel-eslint-parser/src/visitor-keys.js +++ b/eslint/babel-eslint-parser/src/visitor-keys.js @@ -1,10 +1,14 @@ import { types as t } from "@babel/core"; import { KEYS as ESLINT_VISITOR_KEYS } from "eslint-visitor-keys"; -const { VISITOR_KEYS: BABEL_VISITOR_KEYS } = t; +/*eslint no-unused-vars: ["error", { "ignoreRestSiblings": true }]*/ +const { ExportAllDeclaration, ...BABEL_VISITOR_KEYS } = t.VISITOR_KEYS; export default Object.assign( { + ChainExpression: ESLINT_VISITOR_KEYS.ChainExpression, + ExportAllDeclaration: ESLINT_VISITOR_KEYS.ExportAllDeclaration, + ImportExpression: ESLINT_VISITOR_KEYS.ImportExpression, Literal: ESLINT_VISITOR_KEYS.Literal, MethodDefinition: ["decorators"].concat( ESLINT_VISITOR_KEYS.MethodDefinition, diff --git a/eslint/babel-eslint-parser/test/index.js b/eslint/babel-eslint-parser/test/index.js index bea8b50ef894..7c98083d4f61 100644 --- a/eslint/babel-eslint-parser/test/index.js +++ b/eslint/babel-eslint-parser/test/index.js @@ -6,7 +6,7 @@ import { parseForESLint } from "../src"; const BABEL_OPTIONS = { configFile: require.resolve( - "@babel/eslint-shared-fixtures/config/babel.config.js", + "../../babel-eslint-shared-fixtures/config/babel.config.js", ), }; const PROPS_TO_REMOVE = [ @@ -253,6 +253,10 @@ describe("Babel and Espree", () => { parseAndAssertSame('import "foo";'); }); + it("import meta", () => { + parseAndAssertSame("const url = import.meta.url"); + }); + it("export default class declaration", () => { parseAndAssertSame("export default class Foo {}"); }); @@ -273,15 +277,8 @@ describe("Babel and Espree", () => { parseAndAssertSame('export * from "foo";'); }); - // Espree doesn't support `export * as ns` yet it("export * as ns", () => { - const code = 'export * as Foo from "foo";'; - const babylonAST = parseForESLint(code, { - eslintVisitorKeys: true, - eslintScopeManager: true, - babelOptions: BABEL_OPTIONS, - }).ast; - expect(babylonAST.tokens[1].type).toEqual("Punctuator"); + parseAndAssertSame('export * as Foo from "foo";'); }); it("export named", () => { @@ -292,26 +289,12 @@ describe("Babel and Espree", () => { parseAndAssertSame("var foo = 1;export { foo as bar };"); }); - // Espree doesn't support the optional chaining operator yet - it("optional chaining operator (token)", () => { - const code = "foo?.bar"; - const babylonAST = parseForESLint(code, { - eslintVisitorKeys: true, - eslintScopeManager: true, - babelOptions: BABEL_OPTIONS, - }).ast; - expect(babylonAST.tokens[1].type).toEqual("Punctuator"); + it("optional chaining operator", () => { + parseAndAssertSame("foo?.bar?.().qux()"); }); - // Espree doesn't support the nullish coalescing operator yet - it("nullish coalescing operator (token)", () => { - const code = "foo ?? bar"; - const babylonAST = parseForESLint(code, { - eslintVisitorKeys: true, - eslintScopeManager: true, - babelOptions: BABEL_OPTIONS, - }).ast; - expect(babylonAST.tokens[1].type).toEqual("Punctuator"); + it("nullish coalescing operator", () => { + parseAndAssertSame("foo ?? bar"); }); // Espree doesn't support the pipeline operator yet @@ -586,7 +569,7 @@ describe("Babel and Espree", () => { it("Dynamic Import", () => { parseAndAssertSame(` - const a = import('a'); + const a = import(moduleName); `); }); }); diff --git a/eslint/babel-eslint-parser/yarn.lock b/eslint/babel-eslint-parser/yarn.lock new file mode 100644 index 000000000000..8fe012483632 --- /dev/null +++ b/eslint/babel-eslint-parser/yarn.lock @@ -0,0 +1,938 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" + integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/core@^7.10.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.10.5.tgz#1f15e2cca8ad9a1d78a38ddba612f5e7cdbbd330" + integrity sha512-O34LQooYVDXPl7QWCdW9p4NR+QlzOr7xShPPJz8GsuCU3/8ua/wqTr7gmnxXv+WBESiGU/G5s16i6tUvHkNb+w== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.10.5" + "@babel/helper-module-transforms" "^7.10.5" + "@babel/helpers" "^7.10.4" + "@babel/parser" "^7.10.5" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.10.5" + "@babel/types" "^7.10.5" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.2" + lodash "^4.17.19" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/generator@^7.10.5": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.10.5.tgz#1b903554bc8c583ee8d25f1e8969732e6b829a69" + integrity sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig== + dependencies: + "@babel/types" "^7.10.5" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/helper-function-name@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a" + integrity sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ== + dependencies: + "@babel/helper-get-function-arity" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helper-get-function-arity@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz#98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2" + integrity sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A== + dependencies: + "@babel/types" "^7.10.4" + +"@babel/helper-member-expression-to-functions@^7.10.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.5.tgz#172f56e7a63e78112f3a04055f24365af702e7ee" + integrity sha512-HiqJpYD5+WopCXIAbQDG0zye5XYVvcO9w/DHp5GsaGkRUaamLj2bEtu6i8rnGGprAhHM3qidCMgp71HF4endhA== + dependencies: + "@babel/types" "^7.10.5" + +"@babel/helper-module-imports@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz#4c5c54be04bd31670a7382797d75b9fa2e5b5620" + integrity sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw== + dependencies: + "@babel/types" "^7.10.4" + +"@babel/helper-module-transforms@^7.10.5": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.10.5.tgz#120c271c0b3353673fcdfd8c053db3c544a260d6" + integrity sha512-4P+CWMJ6/j1W915ITJaUkadLObmCRRSC234uctJfn/vHrsLNxsR8dwlcXv9ZhJWzl77awf+mWXSZEKt5t0OnlA== + dependencies: + "@babel/helper-module-imports" "^7.10.4" + "@babel/helper-replace-supers" "^7.10.4" + "@babel/helper-simple-access" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/types" "^7.10.5" + lodash "^4.17.19" + +"@babel/helper-optimise-call-expression@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz#50dc96413d594f995a77905905b05893cd779673" + integrity sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg== + dependencies: + "@babel/types" "^7.10.4" + +"@babel/helper-replace-supers@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz#d585cd9388ea06e6031e4cd44b6713cbead9e6cf" + integrity sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.10.4" + "@babel/helper-optimise-call-expression" "^7.10.4" + "@babel/traverse" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helper-simple-access@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz#0f5ccda2945277a2a7a2d3a821e15395edcf3461" + integrity sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw== + dependencies: + "@babel/template" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helper-split-export-declaration@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz#2c70576eaa3b5609b24cb99db2888cc3fc4251d1" + integrity sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg== + dependencies: + "@babel/types" "^7.10.4" + +"@babel/helper-validator-identifier@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" + integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== + +"@babel/helpers@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.10.4.tgz#2abeb0d721aff7c0a97376b9e1f6f65d7a475044" + integrity sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA== + dependencies: + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/highlight@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" + integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== + dependencies: + "@babel/helper-validator-identifier" "^7.10.4" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.10.4", "@babel/parser@^7.10.5": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.10.5.tgz#e7c6bf5a7deff957cec9f04b551e2762909d826b" + integrity sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ== + +"@babel/template@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278" + integrity sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/parser" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/traverse@^7.10.4", "@babel/traverse@^7.10.5": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.10.5.tgz#77ce464f5b258be265af618d8fddf0536f20b564" + integrity sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.10.5" + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.10.4" + "@babel/parser" "^7.10.5" + "@babel/types" "^7.10.5" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.19" + +"@babel/types@^7.10.4", "@babel/types@^7.10.5": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.10.5.tgz#d88ae7e2fde86bfbfe851d4d81afa70a997b5d15" + integrity sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q== + dependencies: + "@babel/helper-validator-identifier" "^7.10.4" + lodash "^4.17.19" + to-fast-properties "^2.0.0" + +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + +acorn-jsx@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" + integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== + +acorn@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.3.1.tgz#85010754db53c3fbaf3b9ea3e083aa5c5d147ffd" + integrity sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA== + +ajv@^6.10.0, ajv@^6.10.2: + version "6.12.3" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706" + integrity sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +convert-source-map@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + dependencies: + safe-buffer "~5.1.1" + +cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +debug@^4.0.1, debug@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= + +deep-is@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +enquirer@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +eslint-scope@5.1.0, eslint-scope@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.0.tgz#d0f971dfe59c69e0cada684b23d49dbf82600ce5" + integrity sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint@^7.5.0: + version "7.5.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.5.0.tgz#9ecbfad62216d223b82ac9ffea7ef3444671d135" + integrity sha512-vlUP10xse9sWt9SGRtcr1LAC67BENcQMFeV+w5EvLEoFe3xJ8cF1Skd0msziRx/VMC+72B4DxreCE+OR12OA6Q== + dependencies: + "@babel/code-frame" "^7.0.0" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + eslint-scope "^5.1.0" + eslint-utils "^2.1.0" + eslint-visitor-keys "^1.3.0" + espree "^7.2.0" + esquery "^1.2.0" + esutils "^2.0.2" + file-entry-cache "^5.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.0.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash "^4.17.19" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^5.2.3" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.2.0.tgz#1c263d5b513dbad0ac30c4991b93ac354e948d69" + integrity sha512-H+cQ3+3JYRMEIOl87e7QdHX70ocly5iW4+dttuR8iYSPr/hXKFb+7dBsZ7+u1adC4VrnPlTkv0+OwuPnDop19g== + dependencies: + acorn "^7.3.1" + acorn-jsx "^5.2.0" + eslint-visitor-keys "^1.3.0" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" + integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== + dependencies: + estraverse "^4.1.0" + +estraverse@^4.1.0, estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642" + integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" + integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== + dependencies: + flat-cache "^2.0.1" + +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" + integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== + dependencies: + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" + +flatted@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" + integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +gensync@^1.0.0-beta.1: + version "1.0.0-beta.1" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" + integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== + +glob-parent@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" + integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== + dependencies: + is-glob "^4.0.1" + +glob@^7.1.3: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^12.1.0: + version "12.4.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" + integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== + dependencies: + type-fest "^0.8.1" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +import-fresh@^3.0.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" + integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-glob@^4.0.0, is-glob@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" + integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +json5@^2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" + integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== + dependencies: + minimist "^1.2.5" + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= + +lodash@^4.17.14, lodash@^4.17.19: + version "4.17.19" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" + integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +mkdirp@^0.5.1: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +ms@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +regexpp@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" + integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve@^1.3.2: + version "1.17.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" + integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== + dependencies: + path-parse "^1.0.6" + +rimraf@2.6.3: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + +safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +semver@^5.4.1: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^7.2.1: + version "7.3.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" + integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + +source-map@^0.5.0: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +string-width@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +strip-ansi@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-json-comments@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" + integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== + dependencies: + has-flag "^4.0.0" + +table@^5.2.3: + version "5.4.6" + resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" + integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== + dependencies: + ajv "^6.10.2" + lodash "^4.17.14" + slice-ansi "^2.1.0" + string-width "^3.0.0" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + dependencies: + punycode "^2.1.0" + +v8-compile-cache@^2.0.3: + version "2.1.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz#54bc3cdd43317bca91e35dcaf305b1a7237de745" + integrity sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ== + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +word-wrap@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" + integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== + dependencies: + mkdirp "^0.5.1" diff --git a/eslint/babel-eslint-plugin-development-internal/package.json b/eslint/babel-eslint-plugin-development-internal/package.json index 6442a5f12760..0e9445e603ce 100644 --- a/eslint/babel-eslint-plugin-development-internal/package.json +++ b/eslint/babel-eslint-plugin-development-internal/package.json @@ -1,6 +1,6 @@ { "name": "@babel/eslint-plugin-development-internal", - "version": "7.10.4", + "version": "7.11.3", "description": "The Babel Team's ESLint custom rules plugin. Since it's internal, it might not respect semver.", "main": "lib/index.js", "repository": { @@ -18,19 +18,15 @@ "author": "Kai Cataldo ", "license": "MIT", "private": true, - "engines": { - "node": ">=10.9" - }, "bugs": { "url": "https://github.com/babel/babel/issues" }, "homepage": "https://github.com/babel/babel/tree/master/eslint/babel-eslint-plugin-development-internal", "peerDependencies": { - "@babel/eslint-parser": "0.0.0", - "eslint": ">=6.0.0" + "@babel/eslint-parser": ">=7.11.0", + "eslint": ">=7.5.0" }, "devDependencies": { - "@babel/eslint-shared-fixtures": "workspace:^7.10.4", - "eslint": "^6.0.0" + "eslint": "^7.5.0" } } diff --git a/eslint/babel-eslint-plugin-development-internal/src/rules/dry-error-messages.js b/eslint/babel-eslint-plugin-development-internal/src/rules/dry-error-messages.js index 2994d933912a..d6e2226e2e76 100644 --- a/eslint/babel-eslint-plugin-development-internal/src/rules/dry-error-messages.js +++ b/eslint/babel-eslint-plugin-development-internal/src/rules/dry-error-messages.js @@ -41,6 +41,25 @@ function findIdNode(node) { return null; } +function findIdNodes(node) { + if (node.type === "ConditionalExpression") { + const consequent = findIdNode(node.consequent); + const alternate = findIdNode(node.alternate); + + if (consequent && alternate) { + return [consequent, alternate]; + } + } + + const idNode = findIdNode(node); + + if (idNode) { + return [idNode]; + } + + return null; +} + function findReference(node, scope) { let currentScope = scope; @@ -128,11 +147,13 @@ export default { node, ) { const [, errorMsgNode] = node.arguments; - const nodeToCheck = findIdNode(errorMsgNode); + const nodesToCheck = findIdNodes(errorMsgNode); if ( - nodeToCheck && - referencesImportedBinding(nodeToCheck, getScope(), importedBindings) + Array.isArray(nodesToCheck) && + nodesToCheck.every(node => + referencesImportedBinding(node, getScope(), importedBindings), + ) ) { return; } diff --git a/eslint/babel-eslint-plugin-development-internal/test/rules/dry-error-messages.js b/eslint/babel-eslint-plugin-development-internal/test/rules/dry-error-messages.js index 5a3c5bf5336f..7f5ecd284b82 100644 --- a/eslint/babel-eslint-plugin-development-internal/test/rules/dry-error-messages.js +++ b/eslint/babel-eslint-plugin-development-internal/test/rules/dry-error-messages.js @@ -1,6 +1,6 @@ import path from "path"; import rule from "../../src/rules/dry-error-messages"; -import RuleTester from "@babel/eslint-shared-fixtures/utils/RuleTester"; +import RuleTester from "../../../babel-eslint-shared-fixtures/utils/RuleTester"; const FILENAME = path.resolve(__dirname, "test/lib/index.js"); const ERRORS_MODULE = "errorsModule"; @@ -261,6 +261,14 @@ ruleTester.run("dry-error-messages", rule, { code: "this.raise(loc);", options: [{ errorModule: ERRORS_MODULE }], }, + + // Support ternary as second argument + { + filename: FILENAME, + code: + "import Errors, { NotErrors } from 'errorsModule'; this.raise(loc, a ? Errors.someErrorMessage : Errors.someOtherErrorMessage);", + options: [{ errorModule: ERRORS_MODULE }], + }, ], invalid: [ { @@ -691,5 +699,43 @@ ruleTester.run("dry-error-messages", rule, { }, ], }, + + // Should error if either part of a ternary isn't from error module + { + filename: FILENAME, + code: + "import Errors, { NotErrors } from 'errorsModule'; this.raise(loc, a ? Errors.someErrorMessage : 'hello');", + options: [{ errorModule: ERRORS_MODULE }], + errors: [ + { + messageId: "mustBeImported", + data: { errorModule: ERRORS_MODULE }, + }, + ], + }, + { + filename: FILENAME, + code: + "import Errors, { NotErrors } from 'errorsModule'; this.raise(loc, a ? 'hello' : Errors.someErrorMessage);", + options: [{ errorModule: ERRORS_MODULE }], + errors: [ + { + messageId: "mustBeImported", + data: { errorModule: ERRORS_MODULE }, + }, + ], + }, + { + filename: FILENAME, + code: + "import Errors, { NotErrors } from 'errorsModule'; this.raise(loc, a ? 'hello' : 'world');", + options: [{ errorModule: ERRORS_MODULE }], + errors: [ + { + messageId: "mustBeImported", + data: { errorModule: ERRORS_MODULE }, + }, + ], + }, ], }); diff --git a/eslint/babel-eslint-plugin-development-internal/yarn.lock b/eslint/babel-eslint-plugin-development-internal/yarn.lock new file mode 100644 index 000000000000..51aab77c8484 --- /dev/null +++ b/eslint/babel-eslint-plugin-development-internal/yarn.lock @@ -0,0 +1,709 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.0.0": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" + integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/helper-validator-identifier@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" + integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== + +"@babel/highlight@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" + integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== + dependencies: + "@babel/helper-validator-identifier" "^7.10.4" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + +acorn-jsx@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" + integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== + +acorn@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.3.1.tgz#85010754db53c3fbaf3b9ea3e083aa5c5d147ffd" + integrity sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA== + +ajv@^6.10.0, ajv@^6.10.2: + version "6.12.3" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706" + integrity sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +debug@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +deep-is@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +enquirer@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +eslint-scope@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.0.tgz#d0f971dfe59c69e0cada684b23d49dbf82600ce5" + integrity sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint@^7.5.0: + version "7.5.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.5.0.tgz#9ecbfad62216d223b82ac9ffea7ef3444671d135" + integrity sha512-vlUP10xse9sWt9SGRtcr1LAC67BENcQMFeV+w5EvLEoFe3xJ8cF1Skd0msziRx/VMC+72B4DxreCE+OR12OA6Q== + dependencies: + "@babel/code-frame" "^7.0.0" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + eslint-scope "^5.1.0" + eslint-utils "^2.1.0" + eslint-visitor-keys "^1.3.0" + espree "^7.2.0" + esquery "^1.2.0" + esutils "^2.0.2" + file-entry-cache "^5.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.0.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash "^4.17.19" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^5.2.3" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.2.0.tgz#1c263d5b513dbad0ac30c4991b93ac354e948d69" + integrity sha512-H+cQ3+3JYRMEIOl87e7QdHX70ocly5iW4+dttuR8iYSPr/hXKFb+7dBsZ7+u1adC4VrnPlTkv0+OwuPnDop19g== + dependencies: + acorn "^7.3.1" + acorn-jsx "^5.2.0" + eslint-visitor-keys "^1.3.0" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" + integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== + dependencies: + estraverse "^4.1.0" + +estraverse@^4.1.0, estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642" + integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" + integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== + dependencies: + flat-cache "^2.0.1" + +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" + integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== + dependencies: + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" + +flatted@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" + integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +glob-parent@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" + integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== + dependencies: + is-glob "^4.0.1" + +glob@^7.1.3: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^12.1.0: + version "12.4.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" + integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== + dependencies: + type-fest "^0.8.1" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +import-fresh@^3.0.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" + integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-glob@^4.0.0, is-glob@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" + integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +lodash@^4.17.14, lodash@^4.17.19: + version "4.17.19" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" + integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +mkdirp@^0.5.1: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +ms@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +regexpp@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" + integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +rimraf@2.6.3: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + +semver@^7.2.1: + version "7.3.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" + integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +string-width@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +strip-ansi@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-json-comments@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" + integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== + dependencies: + has-flag "^4.0.0" + +table@^5.2.3: + version "5.4.6" + resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" + integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== + dependencies: + ajv "^6.10.2" + lodash "^4.17.14" + slice-ansi "^2.1.0" + string-width "^3.0.0" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + dependencies: + punycode "^2.1.0" + +v8-compile-cache@^2.0.3: + version "2.1.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz#54bc3cdd43317bca91e35dcaf305b1a7237de745" + integrity sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ== + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +word-wrap@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" + integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== + dependencies: + mkdirp "^0.5.1" diff --git a/eslint/babel-eslint-plugin-development/package.json b/eslint/babel-eslint-plugin-development/package.json index 16d8e1515e63..7e64558a88e8 100644 --- a/eslint/babel-eslint-plugin-development/package.json +++ b/eslint/babel-eslint-plugin-development/package.json @@ -1,8 +1,7 @@ { "name": "@babel/eslint-plugin-development", - "version": "7.10.4", + "version": "7.11.0", "description": "ESLint rules that enforce best practices in the development of Babel plugins.", - "private": true, "keywords": [ "eslint", "eslintplugin", @@ -13,12 +12,14 @@ "email": "nicolo.ribaudo@gmail.com", "url": "https://github.com/nicolo-ribaudo" }, - "main": "lib/index.js", - "devDependencies": { - "eslint": "^5.9.0" + "main": "./lib/index.js", + "type": "commonjs", + "exports": { + ".": "./lib/index.js", + "./package.json": "./package.json" }, "engines": { - "node": ">=10.13.0" + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" }, "publishConfig": { "access": "public" @@ -32,5 +33,8 @@ "bugs": { "url": "https://github.com/babel/babel/issues" }, - "homepage": "https://babeljs.io/" + "homepage": "https://babeljs.io/", + "devDependencies": { + "eslint": "^7.5.0" + } } diff --git a/eslint/babel-eslint-plugin-development/src/utils/get-reference-origin.js b/eslint/babel-eslint-plugin-development/src/utils/get-reference-origin.js index 25fd7b0a541f..ffa90fe2a4e7 100644 --- a/eslint/babel-eslint-plugin-development/src/utils/get-reference-origin.js +++ b/eslint/babel-eslint-plugin-development/src/utils/get-reference-origin.js @@ -21,7 +21,7 @@ type ReferenceOrigin = // Given a node and a context, returns a description of where its value comes // from. // It resolves imports, parameters of exported functions and property accesses. -// See the ReferenceOrigin type for more informations. +// See the ReferenceOrigin type for more information. export default function getReferenceOrigin( node, scope, diff --git a/eslint/babel-eslint-plugin-development/test/rules/no-deprecated-clone.js b/eslint/babel-eslint-plugin-development/test/rules/no-deprecated-clone.js index 9905bc170f0c..bf9e4c87e857 100644 --- a/eslint/babel-eslint-plugin-development/test/rules/no-deprecated-clone.js +++ b/eslint/babel-eslint-plugin-development/test/rules/no-deprecated-clone.js @@ -1,5 +1,5 @@ import rule from "../../src/rules/no-deprecated-clone"; -import { RuleTester } from "eslint"; +import RuleTester from "../../../babel-eslint-shared-fixtures/utils/RuleTester"; const cloneError = "t.clone() is deprecated. Use t.cloneNode() instead."; const cloneDeepError = @@ -38,10 +38,12 @@ ruleTester.run("no-deprecated-clone", rule, { }, { code: `import * as t from "@babel/types"; t.clone();`, + output: `import * as t from "@babel/types"; t.cloneNode();`, errors: [cloneError], }, { code: `import * as t from "@babel/types"; t.cloneDeep();`, + output: `import * as t from "@babel/types"; t.cloneNode();`, errors: [cloneDeepError], }, { @@ -62,74 +64,92 @@ ruleTester.run("no-deprecated-clone", rule, { }, { code: `import * as babel from "@babel/core"; babel.types.clone();`, + output: `import * as babel from "@babel/core"; babel.types.cloneNode();`, errors: [cloneError], }, { code: `import * as babel from "@babel/core"; babel.types.cloneDeep();`, + output: `import * as babel from "@babel/core"; babel.types.cloneNode();`, errors: [cloneDeepError], }, { code: `import { types } from "@babel/core"; types.clone();`, + output: `import { types } from "@babel/core"; types.cloneNode();`, errors: [cloneError], }, { code: `import { types } from "@babel/core"; types.cloneDeep();`, + output: `import { types } from "@babel/core"; types.cloneNode();`, errors: [cloneDeepError], }, { code: `import { types as t } from "@babel/core"; t.clone();`, + output: `import { types as t } from "@babel/core"; t.cloneNode();`, errors: [cloneError], }, { code: `import { types as t } from "@babel/core"; t.cloneDeep();`, + output: `import { types as t } from "@babel/core"; t.cloneNode();`, errors: [cloneDeepError], }, { code: `export default function plugin(babel) { babel.types.clone() }`, + output: `export default function plugin(babel) { babel.types.cloneNode() }`, errors: [cloneError], }, { code: `export default function plugin(babel) { babel.types.cloneDeep() }`, + output: `export default function plugin(babel) { babel.types.cloneNode() }`, errors: [cloneDeepError], }, { code: `export default function plugin({ types }) { types.clone() }`, + output: `export default function plugin({ types }) { types.cloneNode() }`, errors: [cloneError], }, { code: `export default function plugin({ types }) { types.cloneDeep() }`, + output: `export default function plugin({ types }) { types.cloneNode() }`, errors: [cloneDeepError], }, { code: `export default function plugin({ types: t }) { t.clone() }`, + output: `export default function plugin({ types: t }) { t.cloneNode() }`, errors: [cloneError], }, { code: `export default function plugin({ types: t }) { t.cloneDeep() }`, + output: `export default function plugin({ types: t }) { t.cloneNode() }`, errors: [cloneDeepError], }, { code: `export default ({ types }) => { types.clone() }`, + output: `export default ({ types }) => { types.cloneNode() }`, errors: [cloneError], }, { code: `export default ({ types }) => { types.cloneDeep() }`, + output: `export default ({ types }) => { types.cloneNode() }`, errors: [cloneDeepError], }, { code: `module.exports = function plugin({ types }) { types.clone() }`, + output: `module.exports = function plugin({ types }) { types.cloneNode() }`, errors: [cloneError], }, { code: `module.exports = function plugin({ types }) { types.cloneDeep() }`, + output: `module.exports = function plugin({ types }) { types.cloneNode() }`, errors: [cloneDeepError], }, { code: `import { declare } from "@babel/helper-plugin-utils"; declare(({ types }) => { types.clone() });`, + output: `import { declare } from "@babel/helper-plugin-utils"; declare(({ types }) => { types.cloneNode() });`, errors: [cloneError], }, { code: `import { declare } from "@babel/helper-plugin-utils"; declare(({ types }) => { types.cloneDeep() });`, + output: `import { declare } from "@babel/helper-plugin-utils"; declare(({ types }) => { types.cloneNode() });`, errors: [cloneDeepError], }, ], diff --git a/eslint/babel-eslint-plugin-development/test/rules/no-undefined-identifier.js b/eslint/babel-eslint-plugin-development/test/rules/no-undefined-identifier.js index d6d8c6b28b6b..7b9a8c62d9e7 100644 --- a/eslint/babel-eslint-plugin-development/test/rules/no-undefined-identifier.js +++ b/eslint/babel-eslint-plugin-development/test/rules/no-undefined-identifier.js @@ -1,5 +1,5 @@ import rule from "../../src/rules/no-undefined-identifier"; -import { RuleTester } from "eslint"; +import RuleTester from "../../../babel-eslint-shared-fixtures/utils/RuleTester"; const error = "Use path.scope.buildUndefinedNode() to create an undefined identifier directly."; diff --git a/eslint/babel-eslint-plugin-development/test/rules/plugin-name.js b/eslint/babel-eslint-plugin-development/test/rules/plugin-name.js index d39924efe752..381c81192f70 100644 --- a/eslint/babel-eslint-plugin-development/test/rules/plugin-name.js +++ b/eslint/babel-eslint-plugin-development/test/rules/plugin-name.js @@ -1,12 +1,10 @@ import rule from "../../src/rules/plugin-name"; -import { RuleTester } from "eslint"; +import RuleTester from "../../../babel-eslint-shared-fixtures/utils/RuleTester"; const missingPluginError = "This file does not export a Babel plugin."; const missingNameError = "This Babel plugin doesn't have a 'name' property."; -const ruleTester = new RuleTester({ - parserOptions: { sourceType: "module" }, -}); +const ruleTester = new RuleTester(); ruleTester.run("plugin-name", rule, { valid: [ diff --git a/eslint/babel-eslint-plugin-development/yarn.lock b/eslint/babel-eslint-plugin-development/yarn.lock new file mode 100644 index 000000000000..51aab77c8484 --- /dev/null +++ b/eslint/babel-eslint-plugin-development/yarn.lock @@ -0,0 +1,709 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.0.0": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" + integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/helper-validator-identifier@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" + integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== + +"@babel/highlight@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" + integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== + dependencies: + "@babel/helper-validator-identifier" "^7.10.4" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + +acorn-jsx@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" + integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== + +acorn@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.3.1.tgz#85010754db53c3fbaf3b9ea3e083aa5c5d147ffd" + integrity sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA== + +ajv@^6.10.0, ajv@^6.10.2: + version "6.12.3" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706" + integrity sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +debug@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +deep-is@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +enquirer@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +eslint-scope@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.0.tgz#d0f971dfe59c69e0cada684b23d49dbf82600ce5" + integrity sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint@^7.5.0: + version "7.5.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.5.0.tgz#9ecbfad62216d223b82ac9ffea7ef3444671d135" + integrity sha512-vlUP10xse9sWt9SGRtcr1LAC67BENcQMFeV+w5EvLEoFe3xJ8cF1Skd0msziRx/VMC+72B4DxreCE+OR12OA6Q== + dependencies: + "@babel/code-frame" "^7.0.0" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + eslint-scope "^5.1.0" + eslint-utils "^2.1.0" + eslint-visitor-keys "^1.3.0" + espree "^7.2.0" + esquery "^1.2.0" + esutils "^2.0.2" + file-entry-cache "^5.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.0.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash "^4.17.19" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^5.2.3" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.2.0.tgz#1c263d5b513dbad0ac30c4991b93ac354e948d69" + integrity sha512-H+cQ3+3JYRMEIOl87e7QdHX70ocly5iW4+dttuR8iYSPr/hXKFb+7dBsZ7+u1adC4VrnPlTkv0+OwuPnDop19g== + dependencies: + acorn "^7.3.1" + acorn-jsx "^5.2.0" + eslint-visitor-keys "^1.3.0" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" + integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== + dependencies: + estraverse "^4.1.0" + +estraverse@^4.1.0, estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642" + integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" + integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== + dependencies: + flat-cache "^2.0.1" + +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" + integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== + dependencies: + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" + +flatted@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" + integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +glob-parent@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" + integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== + dependencies: + is-glob "^4.0.1" + +glob@^7.1.3: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^12.1.0: + version "12.4.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" + integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== + dependencies: + type-fest "^0.8.1" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +import-fresh@^3.0.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" + integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-glob@^4.0.0, is-glob@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" + integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +lodash@^4.17.14, lodash@^4.17.19: + version "4.17.19" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" + integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +mkdirp@^0.5.1: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +ms@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +regexpp@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" + integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +rimraf@2.6.3: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + +semver@^7.2.1: + version "7.3.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" + integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +string-width@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +strip-ansi@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-json-comments@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" + integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== + dependencies: + has-flag "^4.0.0" + +table@^5.2.3: + version "5.4.6" + resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" + integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== + dependencies: + ajv "^6.10.2" + lodash "^4.17.14" + slice-ansi "^2.1.0" + string-width "^3.0.0" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + dependencies: + punycode "^2.1.0" + +v8-compile-cache@^2.0.3: + version "2.1.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz#54bc3cdd43317bca91e35dcaf305b1a7237de745" + integrity sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ== + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +word-wrap@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" + integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== + dependencies: + mkdirp "^0.5.1" diff --git a/eslint/babel-eslint-plugin/README.md b/eslint/babel-eslint-plugin/README.md index cb9eb4e4df43..a73e1b17ed00 100644 --- a/eslint/babel-eslint-plugin/README.md +++ b/eslint/babel-eslint-plugin/README.md @@ -1,12 +1,10 @@ # @babel/eslint-plugin -## This project is still experimental and will be released with Babel v8. You can track our progress [here](https://github.com/babel/babel/issues/10752)! Please use [eslint-plugin-babel](https://github.com/babel/eslint-plugin-babel) in the meantime. - Companion rules for `@babel/eslint-parser`. `@babel/eslint-parser` does a great job at adapting `eslint` for use with Babel, but it can't change the built-in rules to support experimental features. `@babel/eslint-plugin` re-implements problematic rules so they do not give false positives or negatives. -> Requires Node 10.9 or greater +> Requires Node 10.13 or greater ### Install @@ -18,7 +16,7 @@ Load the plugin in your `.eslintrc.json` file: ```json { - "plugins": ["@babel/eslint-plugin"] + "plugins": ["@babel"] } ``` @@ -28,22 +26,23 @@ original ones as well!). ```json { "rules": { - "babel/new-cap": "error", - "babel/no-invalid-this": "error", - "babel/no-unused-expressions": "error", - "babel/object-curly-spacing": "error", - "babel/semi": "error", + "@babel/new-cap": "error", + "@babel/no-invalid-this": "error", + "@babel/no-unused-expressions": "error", + "@babel/object-curly-spacing": "error", + "@babel/semi": "error" } } ``` + ### Rules Each rule corresponds to a core `eslint` rule and has the same options. 🛠: means it's autofixable with `--fix`. -- `babel/new-cap`: handles decorators (`@Decorator`) -- `babel/no-invalid-this`: handles class fields and private class methods (`class A { a = this.b; }`) -- `babel/no-unused-expressions`: handles `do` expressions -- `babel/object-curly-spacing`: handles `export * as x from "mod";` (🛠) -- `babel/semi`: Handles class properties (🛠) +- `@babel/new-cap`: handles decorators (`@Decorator`) +- `@babel/no-invalid-this`: handles class fields and private class methods (`class A { a = this.b; }`) +- `@babel/no-unused-expressions`: handles `do` expressions +- `@babel/object-curly-spacing`: handles `export * as x from "mod";` (🛠) +- `@babel/semi`: Handles class properties (🛠) diff --git a/eslint/babel-eslint-plugin/package.json b/eslint/babel-eslint-plugin/package.json index 80337b2ea431..4538c876623f 100644 --- a/eslint/babel-eslint-plugin/package.json +++ b/eslint/babel-eslint-plugin/package.json @@ -1,8 +1,16 @@ { "name": "@babel/eslint-plugin", - "version": "7.10.4", + "version": "7.11.3", "description": "Companion rules for @babel/eslint-parser", - "main": "lib/index.js", + "main": "./lib/index.js", + "type": "commonjs", + "exports": { + ".": "./lib/index.js", + "./package.json": "./package.json" + }, + "publishConfig": { + "access": "public" + }, "repository": { "type": "git", "url": "https://github.com/babel/babel.git", @@ -17,25 +25,22 @@ ], "author": "Jason Quense @monasticpanic", "license": "MIT", - "private": true, "engines": { - "node": ">=10.13.0" + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" }, "bugs": { "url": "https://github.com/babel/babel/issues" }, "homepage": "https://babeljs.io/", "peerDependencies": { - "@babel/eslint-parser": "^7.10.4", - "eslint": ">=6.0.0" + "@babel/eslint-parser": ">=7.11.0", + "eslint": ">=7.5.0" }, "dependencies": { "eslint-rule-composer": "^0.3.0" }, "devDependencies": { - "@babel/eslint-parser": "workspace:*", - "@babel/eslint-shared-fixtures": "workspace:*", - "eslint": "^6.0.0", + "eslint": "^7.5.0", "lodash.clonedeep": "^4.5.0" } } diff --git a/eslint/babel-eslint-plugin/src/rules/no-unused-expressions.js b/eslint/babel-eslint-plugin/src/rules/no-unused-expressions.js index a313b0743245..455153474668 100644 --- a/eslint/babel-eslint-plugin/src/rules/no-unused-expressions.js +++ b/eslint/babel-eslint-plugin/src/rules/no-unused-expressions.js @@ -53,7 +53,8 @@ function isOptionalCallExpression(node) { return ( !!node && node.type === "ExpressionStatement" && - node.expression.type === "OptionalCallExpression" + node.expression.type === "ChainExpression" && + node.expression.expression.type === "CallExpression" ); } diff --git a/eslint/babel-eslint-plugin/test/rules/new-cap.js b/eslint/babel-eslint-plugin/test/rules/new-cap.js index 669c51ee5765..824ea55053ac 100644 --- a/eslint/babel-eslint-plugin/test/rules/new-cap.js +++ b/eslint/babel-eslint-plugin/test/rules/new-cap.js @@ -1,5 +1,5 @@ import rule from "../../src/rules/new-cap"; -import RuleTester from "@babel/eslint-shared-fixtures/utils/RuleTester"; +import RuleTester from "../../../babel-eslint-shared-fixtures/utils/RuleTester"; const ruleTester = new RuleTester(); ruleTester.run("@babel/new-cap", rule, { diff --git a/eslint/babel-eslint-plugin/test/rules/no-invalid-this.js b/eslint/babel-eslint-plugin/test/rules/no-invalid-this.js index 47cd9d89ad10..7faa3bd745f5 100644 --- a/eslint/babel-eslint-plugin/test/rules/no-invalid-this.js +++ b/eslint/babel-eslint-plugin/test/rules/no-invalid-this.js @@ -1,6 +1,6 @@ import cloneDeep from "lodash.clonedeep"; import rule from "../../src/rules/no-invalid-this"; -import RuleTester from "@babel/eslint-shared-fixtures/utils/RuleTester"; +import RuleTester from "../../../babel-eslint-shared-fixtures/utils/RuleTester"; /** * A constant value for non strict mode environment. diff --git a/eslint/babel-eslint-plugin/test/rules/no-unused-expressions.js b/eslint/babel-eslint-plugin/test/rules/no-unused-expressions.js index 9ba9b5773952..351a09573ff0 100644 --- a/eslint/babel-eslint-plugin/test/rules/no-unused-expressions.js +++ b/eslint/babel-eslint-plugin/test/rules/no-unused-expressions.js @@ -1,5 +1,5 @@ import rule from "../../src/rules/no-unused-expressions"; -import RuleTester from "@babel/eslint-shared-fixtures/utils/RuleTester"; +import RuleTester from "../../../babel-eslint-shared-fixtures/utils/RuleTester"; const ruleTester = new RuleTester(); ruleTester.run("@babel/no-unused-expressions", rule, { diff --git a/eslint/babel-eslint-plugin/test/rules/object-curly-spacing.js b/eslint/babel-eslint-plugin/test/rules/object-curly-spacing.js index 1c3e270582e7..3501da6193a2 100644 --- a/eslint/babel-eslint-plugin/test/rules/object-curly-spacing.js +++ b/eslint/babel-eslint-plugin/test/rules/object-curly-spacing.js @@ -1,5 +1,5 @@ import rule from "../../src/rules/object-curly-spacing"; -import RuleTester from "@babel/eslint-shared-fixtures/utils/RuleTester"; +import RuleTester from "../../../babel-eslint-shared-fixtures/utils/RuleTester"; const ruleTester = new RuleTester(); ruleTester.run("@babel/object-curly-spacing", rule, { diff --git a/eslint/babel-eslint-plugin/test/rules/semi.js b/eslint/babel-eslint-plugin/test/rules/semi.js index cb0e8b85c316..ea622fae0254 100644 --- a/eslint/babel-eslint-plugin/test/rules/semi.js +++ b/eslint/babel-eslint-plugin/test/rules/semi.js @@ -1,5 +1,5 @@ import rule from "../../src/rules/semi"; -import RuleTester from "@babel/eslint-shared-fixtures/utils/RuleTester"; +import RuleTester from "../../../babel-eslint-shared-fixtures/utils/RuleTester"; const ruleTester = new RuleTester(); @@ -22,18 +22,22 @@ ruleTester.run("semi", rule, { invalid: [ { code: "class Foo { bar = 'example' }", + output: "class Foo { bar = 'example'; }", errors: [{ message: "Missing semicolon." }], }, { code: "class Foo { #bar = 'example' }", + output: "class Foo { #bar = 'example'; }", errors: [{ message: "Missing semicolon." }], }, { code: "class Foo { static bar = 'example' }", + output: "class Foo { static bar = 'example'; }", errors: [{ message: "Missing semicolon." }], }, { code: "class Foo { bar = () => {} }", + output: "class Foo { bar = () => {}; }", options: ["always", { omitLastInOneLineBlock: true }], errors: [{ message: "Missing semicolon." }], }, @@ -41,21 +45,25 @@ ruleTester.run("semi", rule, { // "never" { code: "class Foo { bar = 'example'; }", + output: "class Foo { bar = 'example' }", options: ["never"], errors: [{ message: "Extra semicolon." }], }, { code: "class Foo { #bar = 'example'; }", + output: "class Foo { #bar = 'example' }", options: ["never"], errors: [{ message: "Extra semicolon." }], }, { code: "class Foo { static bar = 'example'; }", + output: "class Foo { static bar = 'example' }", options: ["never"], errors: [{ message: "Extra semicolon." }], }, { code: "class Foo { bar = () => {}; }", + output: "class Foo { bar = () => {} }", options: ["never"], errors: [{ message: "Extra semicolon." }], }, diff --git a/eslint/babel-eslint-plugin/yarn.lock b/eslint/babel-eslint-plugin/yarn.lock new file mode 100644 index 000000000000..095726209237 --- /dev/null +++ b/eslint/babel-eslint-plugin/yarn.lock @@ -0,0 +1,719 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.0.0": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" + integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/helper-validator-identifier@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" + integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== + +"@babel/highlight@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" + integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== + dependencies: + "@babel/helper-validator-identifier" "^7.10.4" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + +acorn-jsx@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" + integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== + +acorn@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.3.1.tgz#85010754db53c3fbaf3b9ea3e083aa5c5d147ffd" + integrity sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA== + +ajv@^6.10.0, ajv@^6.10.2: + version "6.12.3" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706" + integrity sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +debug@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +deep-is@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +enquirer@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +eslint-rule-composer@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz#79320c927b0c5c0d3d3d2b76c8b4a488f25bbaf9" + integrity sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg== + +eslint-scope@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.0.tgz#d0f971dfe59c69e0cada684b23d49dbf82600ce5" + integrity sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint@^7.5.0: + version "7.5.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.5.0.tgz#9ecbfad62216d223b82ac9ffea7ef3444671d135" + integrity sha512-vlUP10xse9sWt9SGRtcr1LAC67BENcQMFeV+w5EvLEoFe3xJ8cF1Skd0msziRx/VMC+72B4DxreCE+OR12OA6Q== + dependencies: + "@babel/code-frame" "^7.0.0" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + eslint-scope "^5.1.0" + eslint-utils "^2.1.0" + eslint-visitor-keys "^1.3.0" + espree "^7.2.0" + esquery "^1.2.0" + esutils "^2.0.2" + file-entry-cache "^5.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.0.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash "^4.17.19" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^5.2.3" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.2.0.tgz#1c263d5b513dbad0ac30c4991b93ac354e948d69" + integrity sha512-H+cQ3+3JYRMEIOl87e7QdHX70ocly5iW4+dttuR8iYSPr/hXKFb+7dBsZ7+u1adC4VrnPlTkv0+OwuPnDop19g== + dependencies: + acorn "^7.3.1" + acorn-jsx "^5.2.0" + eslint-visitor-keys "^1.3.0" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" + integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== + dependencies: + estraverse "^4.1.0" + +estraverse@^4.1.0, estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642" + integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" + integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== + dependencies: + flat-cache "^2.0.1" + +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" + integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== + dependencies: + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" + +flatted@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" + integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +glob-parent@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" + integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== + dependencies: + is-glob "^4.0.1" + +glob@^7.1.3: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^12.1.0: + version "12.4.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" + integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== + dependencies: + type-fest "^0.8.1" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +import-fresh@^3.0.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" + integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-glob@^4.0.0, is-glob@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" + integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= + +lodash@^4.17.14, lodash@^4.17.19: + version "4.17.19" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" + integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +mkdirp@^0.5.1: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +ms@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +regexpp@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" + integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +rimraf@2.6.3: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + +semver@^7.2.1: + version "7.3.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" + integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +string-width@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +strip-ansi@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-json-comments@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" + integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== + dependencies: + has-flag "^4.0.0" + +table@^5.2.3: + version "5.4.6" + resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" + integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== + dependencies: + ajv "^6.10.2" + lodash "^4.17.14" + slice-ansi "^2.1.0" + string-width "^3.0.0" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + dependencies: + punycode "^2.1.0" + +v8-compile-cache@^2.0.3: + version "2.1.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz#54bc3cdd43317bca91e35dcaf305b1a7237de745" + integrity sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ== + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +word-wrap@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" + integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== + dependencies: + mkdirp "^0.5.1" diff --git a/eslint/babel-eslint-shared-fixtures/package.json b/eslint/babel-eslint-shared-fixtures/package.json index 6d396d20cc43..1087b3ac711b 100644 --- a/eslint/babel-eslint-shared-fixtures/package.json +++ b/eslint/babel-eslint-shared-fixtures/package.json @@ -1,17 +1,15 @@ { "name": "@babel/eslint-shared-fixtures", - "version": "7.10.4", + "version": "7.11.0", "description": "Shared fixtures for testing @babel/eslint-* packages", "license": "MIT", "private": true, "dependencies": { - "@babel/core": "workspace:^7.10.4", - "@babel/eslint-parser": "workspace:^7.10.4", "@babel/plugin-proposal-class-properties": "workspace:^7.10.4", "@babel/plugin-proposal-decorators": "workspace:^7.10.4", "@babel/plugin-proposal-do-expressions": "workspace:^7.10.4", "@babel/plugin-proposal-nullish-coalescing-operator": "workspace:^7.10.4", - "@babel/plugin-proposal-optional-chaining": "workspace:^7.10.4", + "@babel/plugin-proposal-optional-chaining": "workspace:^7.11.0", "@babel/plugin-proposal-pipeline-operator": "workspace:^7.10.4", "@babel/plugin-proposal-private-methods": "workspace:^7.10.4", "@babel/plugin-syntax-bigint": "^7.7.4", @@ -20,7 +18,7 @@ "@babel/plugin-syntax-export-namespace-from": "^7.0.0", "@babel/plugin-syntax-import-meta": "workspace:^7.10.4", "@babel/plugin-syntax-numeric-separator": "workspace:^7.10.4", - "@babel/preset-env": "workspace:^7.10.4", + "@babel/preset-env": "workspace:^7.11.0", "@babel/preset-flow": "workspace:^7.10.4", "@babel/preset-react": "workspace:^7.10.4" } diff --git a/eslint/babel-eslint-shared-fixtures/utils/RuleTester.js b/eslint/babel-eslint-shared-fixtures/utils/RuleTester.js index 58be2ff8d47e..943de8974e95 100644 --- a/eslint/babel-eslint-shared-fixtures/utils/RuleTester.js +++ b/eslint/babel-eslint-shared-fixtures/utils/RuleTester.js @@ -2,7 +2,7 @@ const path = require("path"); const { RuleTester } = require("eslint"); RuleTester.setDefaultConfig({ - parser: require.resolve("@babel/eslint-parser"), + parser: require.resolve("../../babel-eslint-parser"), parserOptions: { sourceType: "module", ecmaVersion: 11, diff --git a/eslint/babel-eslint-shared-fixtures/yarn.lock b/eslint/babel-eslint-shared-fixtures/yarn.lock new file mode 100644 index 000000000000..08224d888a47 --- /dev/null +++ b/eslint/babel-eslint-shared-fixtures/yarn.lock @@ -0,0 +1,1222 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" + integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/compat-data@^7.10.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.10.5.tgz#d38425e67ea96b1480a3f50404d1bf85676301a6" + integrity sha512-mPVoWNzIpYJHbWje0if7Ck36bpbtTvIxOi9+6WSK9wjGEXearAqlwBoTQvVjsAY2VIwgcs8V940geY3okzRCEw== + dependencies: + browserslist "^4.12.0" + invariant "^2.2.4" + semver "^5.5.0" + +"@babel/generator@^7.10.5": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.10.5.tgz#1b903554bc8c583ee8d25f1e8969732e6b829a69" + integrity sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig== + dependencies: + "@babel/types" "^7.10.5" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/helper-annotate-as-pure@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3" + integrity sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA== + dependencies: + "@babel/types" "^7.10.4" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz#bb0b75f31bf98cbf9ff143c1ae578b87274ae1a3" + integrity sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helper-builder-react-jsx-experimental@^7.10.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.5.tgz#f35e956a19955ff08c1258e44a515a6d6248646b" + integrity sha512-Buewnx6M4ttG+NLkKyt7baQn7ScC/Td+e99G914fRU8fGIUivDDgVIQeDHFa5e4CRSJQt58WpNHhsAZgtzVhsg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-module-imports" "^7.10.4" + "@babel/types" "^7.10.5" + +"@babel/helper-builder-react-jsx@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz#8095cddbff858e6fa9c326daee54a2f2732c1d5d" + integrity sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helper-compilation-targets@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz#804ae8e3f04376607cc791b9d47d540276332bd2" + integrity sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ== + dependencies: + "@babel/compat-data" "^7.10.4" + browserslist "^4.12.0" + invariant "^2.2.4" + levenary "^1.1.1" + semver "^5.5.0" + +"@babel/helper-create-class-features-plugin@^7.10.4", "@babel/helper-create-class-features-plugin@^7.10.5": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz#9f61446ba80e8240b0a5c85c6fdac8459d6f259d" + integrity sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A== + dependencies: + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-member-expression-to-functions" "^7.10.5" + "@babel/helper-optimise-call-expression" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-replace-supers" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.10.4" + +"@babel/helper-create-regexp-features-plugin@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz#fdd60d88524659a0b6959c0579925e425714f3b8" + integrity sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-regex" "^7.10.4" + regexpu-core "^4.7.0" + +"@babel/helper-define-map@^7.10.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz#b53c10db78a640800152692b13393147acb9bb30" + integrity sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ== + dependencies: + "@babel/helper-function-name" "^7.10.4" + "@babel/types" "^7.10.5" + lodash "^4.17.19" + +"@babel/helper-explode-assignable-expression@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz#40a1cd917bff1288f699a94a75b37a1a2dbd8c7c" + integrity sha512-4K71RyRQNPRrR85sr5QY4X3VwG4wtVoXZB9+L3r1Gp38DhELyHCtovqydRi7c1Ovb17eRGiQ/FD5s8JdU0Uy5A== + dependencies: + "@babel/traverse" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helper-function-name@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a" + integrity sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ== + dependencies: + "@babel/helper-get-function-arity" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helper-get-function-arity@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz#98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2" + integrity sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A== + dependencies: + "@babel/types" "^7.10.4" + +"@babel/helper-hoist-variables@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz#d49b001d1d5a68ca5e6604dda01a6297f7c9381e" + integrity sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA== + dependencies: + "@babel/types" "^7.10.4" + +"@babel/helper-member-expression-to-functions@^7.10.4", "@babel/helper-member-expression-to-functions@^7.10.5": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.5.tgz#172f56e7a63e78112f3a04055f24365af702e7ee" + integrity sha512-HiqJpYD5+WopCXIAbQDG0zye5XYVvcO9w/DHp5GsaGkRUaamLj2bEtu6i8rnGGprAhHM3qidCMgp71HF4endhA== + dependencies: + "@babel/types" "^7.10.5" + +"@babel/helper-module-imports@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz#4c5c54be04bd31670a7382797d75b9fa2e5b5620" + integrity sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw== + dependencies: + "@babel/types" "^7.10.4" + +"@babel/helper-module-transforms@^7.10.4", "@babel/helper-module-transforms@^7.10.5": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.10.5.tgz#120c271c0b3353673fcdfd8c053db3c544a260d6" + integrity sha512-4P+CWMJ6/j1W915ITJaUkadLObmCRRSC234uctJfn/vHrsLNxsR8dwlcXv9ZhJWzl77awf+mWXSZEKt5t0OnlA== + dependencies: + "@babel/helper-module-imports" "^7.10.4" + "@babel/helper-replace-supers" "^7.10.4" + "@babel/helper-simple-access" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/types" "^7.10.5" + lodash "^4.17.19" + +"@babel/helper-optimise-call-expression@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz#50dc96413d594f995a77905905b05893cd779673" + integrity sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg== + dependencies: + "@babel/types" "^7.10.4" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" + integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== + +"@babel/helper-regex@^7.10.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.10.5.tgz#32dfbb79899073c415557053a19bd055aae50ae0" + integrity sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg== + dependencies: + lodash "^4.17.19" + +"@babel/helper-remap-async-to-generator@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.4.tgz#fce8bea4e9690bbe923056ded21e54b4e8b68ed5" + integrity sha512-86Lsr6NNw3qTNl+TBcF1oRZMaVzJtbWTyTko+CQL/tvNvcGYEFKbLXDPxtW0HKk3McNOk4KzY55itGWCAGK5tg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-wrap-function" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helper-replace-supers@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz#d585cd9388ea06e6031e4cd44b6713cbead9e6cf" + integrity sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.10.4" + "@babel/helper-optimise-call-expression" "^7.10.4" + "@babel/traverse" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helper-simple-access@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz#0f5ccda2945277a2a7a2d3a821e15395edcf3461" + integrity sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw== + dependencies: + "@babel/template" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helper-split-export-declaration@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz#2c70576eaa3b5609b24cb99db2888cc3fc4251d1" + integrity sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg== + dependencies: + "@babel/types" "^7.10.4" + +"@babel/helper-validator-identifier@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" + integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== + +"@babel/helper-wrap-function@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz#8a6f701eab0ff39f765b5a1cfef409990e624b87" + integrity sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug== + dependencies: + "@babel/helper-function-name" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/highlight@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" + integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== + dependencies: + "@babel/helper-validator-identifier" "^7.10.4" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.10.4", "@babel/parser@^7.10.5": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.10.5.tgz#e7c6bf5a7deff957cec9f04b551e2762909d826b" + integrity sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ== + +"@babel/plugin-proposal-async-generator-functions@^7.10.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz#3491cabf2f7c179ab820606cec27fed15e0e8558" + integrity sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-remap-async-to-generator" "^7.10.4" + "@babel/plugin-syntax-async-generators" "^7.8.0" + +"@babel/plugin-proposal-class-properties@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz#a33bf632da390a59c7a8c570045d1115cd778807" + integrity sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-proposal-decorators@^7.10.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.10.5.tgz#42898bba478bc4b1ae242a703a953a7ad350ffb4" + integrity sha512-Sc5TAQSZuLzgY0664mMDn24Vw2P8g/VhyLyGPaWiHahhgLqeZvcGeyBZOrJW0oSKIK2mvQ22a1ENXBIQLhrEiQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.10.5" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-decorators" "^7.10.4" + +"@babel/plugin-proposal-do-expressions@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-do-expressions/-/plugin-proposal-do-expressions-7.10.4.tgz#9a5190f3bf4818f83e41d673ee517ff76cf8e4ed" + integrity sha512-Gcc2wLVeMceRdP6m9tdDygP01lbUVmaQGBRoIRJZxzPfB5VTiUgmn1jGfORgqbEVgUpG0IQm/z4q5Y/qzG+8JQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-do-expressions" "^7.10.4" + +"@babel/plugin-proposal-dynamic-import@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz#ba57a26cb98b37741e9d5bca1b8b0ddf8291f17e" + integrity sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + +"@babel/plugin-proposal-json-strings@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz#593e59c63528160233bd321b1aebe0820c2341db" + integrity sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.0" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz#02a7e961fc32e6d5b2db0649e01bf80ddee7e04a" + integrity sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + +"@babel/plugin-proposal-numeric-separator@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz#ce1590ff0a65ad12970a609d78855e9a4c1aef06" + integrity sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-object-rest-spread@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.4.tgz#50129ac216b9a6a55b3853fdd923e74bf553a4c0" + integrity sha512-6vh4SqRuLLarjgeOf4EaROJAHjvu9Gl+/346PbDH9yWbJyfnJ/ah3jmYKYtswEyCoWZiidvVHjHshd4WgjB9BA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-transform-parameters" "^7.10.4" + +"@babel/plugin-proposal-optional-catch-binding@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz#31c938309d24a78a49d68fdabffaa863758554dd" + integrity sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + +"@babel/plugin-proposal-optional-chaining@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.4.tgz#750f1255e930a1f82d8cdde45031f81a0d0adff7" + integrity sha512-ZIhQIEeavTgouyMSdZRap4VPPHqJJ3NEs2cuHs5p0erH+iz6khB0qfgU8g7UuJkG88+fBMy23ZiU+nuHvekJeQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + +"@babel/plugin-proposal-pipeline-operator@^7.10.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-pipeline-operator/-/plugin-proposal-pipeline-operator-7.10.5.tgz#0fa2871dbfb74efe19eeb17722032056cb5697f3" + integrity sha512-tCpZ46KUAHgFoXsH593k9sX/ZKsNb4NlTGNif8PdlmkGbtYdbTQi6zNv8yibpRf+3sQFElOBLyNo3I5ZwVu90g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-pipeline-operator" "^7.10.4" + +"@babel/plugin-proposal-private-methods@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz#b160d972b8fdba5c7d111a145fc8c421fc2a6909" + integrity sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-proposal-unicode-property-regex@^7.10.4", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz#4483cda53041ce3413b7fe2f00022665ddfaa75d" + integrity sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-async-generators@^7.8.0": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.7.4": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz#6644e6a0baa55a61f9e3231f6c9eeb6ee46c124c" + integrity sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-decorators@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.10.4.tgz#6853085b2c429f9d322d02f5a635018cdeb2360c" + integrity sha512-2NaoC6fAk2VMdhY1eerkfHV+lVYC1u8b+jmRJISqANCJlTxYy19HGdIkkQtix2UtkcPuPu+IlDgrVseZnU03bw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-do-expressions@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-do-expressions/-/plugin-syntax-do-expressions-7.10.4.tgz#0c7ebb749500c6bfa99a9f926db3bfd6cdbaded9" + integrity sha512-HyvaTg1aiwGo2I+Pu0nyurRMjIP7J89GpuZ2mcQ0fhO6Jt3BnyhEPbNJFG1hRE99NAPNfPYh93/7HO+GPVkTKg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-dynamic-import@^7.0.0", "@babel/plugin-syntax-dynamic-import@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-default-from@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.10.4.tgz#e5494f95006355c10292a0ff1ce42a5746002ec8" + integrity sha512-79V6r6Pgudz0RnuMGp5xidu6Z+bPFugh8/Q9eDHonmLp4wKFAZDwygJwYgCzuDu8lFA/sYyT+mc5y2wkd7bTXA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-export-namespace-from@^7.0.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-flow@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.10.4.tgz#53351dd7ae01995e567d04ce42af1a6e0ba846a6" + integrity sha512-yxQsX1dJixF4qEEdzVbst3SZQ58Nrooz8NV9Z9GL4byTE25BvJgl5lf0RECUf0fh28rZBb/RYTWn/eeKwCMrZQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-import-meta@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz#39abaae3cbf710c4373d8429484e6ba21340166c" + integrity sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-pipeline-operator@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-pipeline-operator/-/plugin-syntax-pipeline-operator-7.10.4.tgz#31bf327cf780dd60e0444fd98561119795247a6c" + integrity sha512-QOmXevisZebt9pBkMdDdXWg+fndB8dT/puwSKKu/1K3P4oBwmydN/4dX1hdrNvPHbw4xE+ocIoEus7c4eh7Igg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-top-level-await@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz#4bbeb8917b54fcf768364e0a81f560e33a3ef57d" + integrity sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-arrow-functions@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz#e22960d77e697c74f41c501d44d73dbf8a6a64cd" + integrity sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-async-to-generator@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz#41a5017e49eb6f3cda9392a51eef29405b245a37" + integrity sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ== + dependencies: + "@babel/helper-module-imports" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-remap-async-to-generator" "^7.10.4" + +"@babel/plugin-transform-block-scoped-functions@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz#1afa595744f75e43a91af73b0d998ecfe4ebc2e8" + integrity sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-block-scoping@^7.10.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.5.tgz#b81b8aafefbfe68f0f65f7ef397b9ece68a6037d" + integrity sha512-6Ycw3hjpQti0qssQcA6AMSFDHeNJ++R6dIMnpRqUjFeBBTmTDPa8zgF90OVfTvAo11mXZTlVUViY1g8ffrURLg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-classes@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz#405136af2b3e218bc4a1926228bc917ab1a0adc7" + integrity sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-define-map" "^7.10.4" + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-optimise-call-expression" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-replace-supers" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.10.4" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz#9ded83a816e82ded28d52d4b4ecbdd810cdfc0eb" + integrity sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-destructuring@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz#70ddd2b3d1bea83d01509e9bb25ddb3a74fc85e5" + integrity sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-dotall-regex@^7.10.4", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz#469c2062105c1eb6a040eaf4fac4b488078395ee" + integrity sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-duplicate-keys@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz#697e50c9fee14380fe843d1f306b295617431e47" + integrity sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-exponentiation-operator@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz#5ae338c57f8cf4001bdb35607ae66b92d665af2e" + integrity sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-flow-strip-types@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.10.4.tgz#c497957f09e86e3df7296271e9eb642876bf7788" + integrity sha512-XTadyuqNst88UWBTdLjM+wEY7BFnY2sYtPyAidfC7M/QaZnSuIZpMvLxqGT7phAcnGyWh/XQFLKcGf04CnvxSQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-flow" "^7.10.4" + +"@babel/plugin-transform-for-of@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz#c08892e8819d3a5db29031b115af511dbbfebae9" + integrity sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-function-name@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz#6a467880e0fc9638514ba369111811ddbe2644b7" + integrity sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg== + dependencies: + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-literals@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz#9f42ba0841100a135f22712d0e391c462f571f3c" + integrity sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-member-expression-literals@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz#b1ec44fcf195afcb8db2c62cd8e551c881baf8b7" + integrity sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-modules-amd@^7.10.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz#1b9cddaf05d9e88b3aad339cb3e445c4f020a9b1" + integrity sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw== + dependencies: + "@babel/helper-module-transforms" "^7.10.5" + "@babel/helper-plugin-utils" "^7.10.4" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-commonjs@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz#66667c3eeda1ebf7896d41f1f16b17105a2fbca0" + integrity sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w== + dependencies: + "@babel/helper-module-transforms" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-simple-access" "^7.10.4" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-systemjs@^7.10.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz#6270099c854066681bae9e05f87e1b9cadbe8c85" + integrity sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw== + dependencies: + "@babel/helper-hoist-variables" "^7.10.4" + "@babel/helper-module-transforms" "^7.10.5" + "@babel/helper-plugin-utils" "^7.10.4" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-umd@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz#9a8481fe81b824654b3a0b65da3df89f3d21839e" + integrity sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA== + dependencies: + "@babel/helper-module-transforms" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz#78b4d978810b6f3bcf03f9e318f2fc0ed41aecb6" + integrity sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.10.4" + +"@babel/plugin-transform-new-target@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz#9097d753cb7b024cb7381a3b2e52e9513a9c6888" + integrity sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-object-super@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz#d7146c4d139433e7a6526f888c667e314a093894" + integrity sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-replace-supers" "^7.10.4" + +"@babel/plugin-transform-parameters@^7.10.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz#59d339d58d0b1950435f4043e74e2510005e2c4a" + integrity sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw== + dependencies: + "@babel/helper-get-function-arity" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-property-literals@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz#f6fe54b6590352298785b83edd815d214c42e3c0" + integrity sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-react-display-name@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.4.tgz#b5795f4e3e3140419c3611b7a2a3832b9aef328d" + integrity sha512-Zd4X54Mu9SBfPGnEcaGcOrVAYOtjT2on8QZkLKEq1S/tHexG39d9XXGZv19VfRrDjPJzFmPfTAqOQS1pfFOujw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-react-jsx-development@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.10.4.tgz#6ec90f244394604623880e15ebc3c34c356258ba" + integrity sha512-RM3ZAd1sU1iQ7rI2dhrZRZGv0aqzNQMbkIUCS1txYpi9wHQ2ZHNjo5TwX+UD6pvFW4AbWqLVYvKy5qJSAyRGjQ== + dependencies: + "@babel/helper-builder-react-jsx-experimental" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-jsx" "^7.10.4" + +"@babel/plugin-transform-react-jsx-self@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.4.tgz#cd301a5fed8988c182ed0b9d55e9bd6db0bd9369" + integrity sha512-yOvxY2pDiVJi0axdTWHSMi5T0DILN+H+SaeJeACHKjQLezEzhLx9nEF9xgpBLPtkZsks9cnb5P9iBEi21En3gg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-jsx" "^7.10.4" + +"@babel/plugin-transform-react-jsx-source@^7.10.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.5.tgz#34f1779117520a779c054f2cdd9680435b9222b4" + integrity sha512-wTeqHVkN1lfPLubRiZH3o73f4rfon42HpgxUSs86Nc+8QIcm/B9s8NNVXu/gwGcOyd7yDib9ikxoDLxJP0UiDA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-jsx" "^7.10.4" + +"@babel/plugin-transform-react-jsx@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.4.tgz#673c9f913948764a4421683b2bef2936968fddf2" + integrity sha512-L+MfRhWjX0eI7Js093MM6MacKU4M6dnCRa/QPDwYMxjljzSCzzlzKzj9Pk4P3OtrPcxr2N3znR419nr3Xw+65A== + dependencies: + "@babel/helper-builder-react-jsx" "^7.10.4" + "@babel/helper-builder-react-jsx-experimental" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-jsx" "^7.10.4" + +"@babel/plugin-transform-react-pure-annotations@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.10.4.tgz#3eefbb73db94afbc075f097523e445354a1c6501" + integrity sha512-+njZkqcOuS8RaPakrnR9KvxjoG1ASJWpoIv/doyWngId88JoFlPlISenGXjrVacZUIALGUr6eodRs1vmPnF23A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-regenerator@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz#2015e59d839074e76838de2159db421966fd8b63" + integrity sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw== + dependencies: + regenerator-transform "^0.14.2" + +"@babel/plugin-transform-reserved-words@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz#8f2682bcdcef9ed327e1b0861585d7013f8a54dd" + integrity sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-shorthand-properties@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz#9fd25ec5cdd555bb7f473e5e6ee1c971eede4dd6" + integrity sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-spread@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.4.tgz#4e2c85ea0d6abaee1b24dcfbbae426fe8d674cff" + integrity sha512-1e/51G/Ni+7uH5gktbWv+eCED9pP8ZpRhZB3jOaI3mmzfvJTWHkuyYTv0Z5PYtyM+Tr2Ccr9kUdQxn60fI5WuQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-sticky-regex@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz#8f3889ee8657581130a29d9cc91d7c73b7c4a28d" + integrity sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-regex" "^7.10.4" + +"@babel/plugin-transform-template-literals@^7.10.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz#78bc5d626a6642db3312d9d0f001f5e7639fde8c" + integrity sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-typeof-symbol@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz#9509f1a7eec31c4edbffe137c16cc33ff0bc5bfc" + integrity sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-unicode-escapes@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz#feae523391c7651ddac115dae0a9d06857892007" + integrity sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-unicode-regex@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz#e56d71f9282fac6db09c82742055576d5e6d80a8" + integrity sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/preset-env@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.10.4.tgz#fbf57f9a803afd97f4f32e4f798bb62e4b2bef5f" + integrity sha512-tcmuQ6vupfMZPrLrc38d0sF2OjLT3/bZ0dry5HchNCQbrokoQi4reXqclvkkAT5b+gWc23meVWpve5P/7+w/zw== + dependencies: + "@babel/compat-data" "^7.10.4" + "@babel/helper-compilation-targets" "^7.10.4" + "@babel/helper-module-imports" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-proposal-async-generator-functions" "^7.10.4" + "@babel/plugin-proposal-class-properties" "^7.10.4" + "@babel/plugin-proposal-dynamic-import" "^7.10.4" + "@babel/plugin-proposal-json-strings" "^7.10.4" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.10.4" + "@babel/plugin-proposal-numeric-separator" "^7.10.4" + "@babel/plugin-proposal-object-rest-spread" "^7.10.4" + "@babel/plugin-proposal-optional-catch-binding" "^7.10.4" + "@babel/plugin-proposal-optional-chaining" "^7.10.4" + "@babel/plugin-proposal-private-methods" "^7.10.4" + "@babel/plugin-proposal-unicode-property-regex" "^7.10.4" + "@babel/plugin-syntax-async-generators" "^7.8.0" + "@babel/plugin-syntax-class-properties" "^7.10.4" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + "@babel/plugin-syntax-json-strings" "^7.8.0" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + "@babel/plugin-syntax-top-level-await" "^7.10.4" + "@babel/plugin-transform-arrow-functions" "^7.10.4" + "@babel/plugin-transform-async-to-generator" "^7.10.4" + "@babel/plugin-transform-block-scoped-functions" "^7.10.4" + "@babel/plugin-transform-block-scoping" "^7.10.4" + "@babel/plugin-transform-classes" "^7.10.4" + "@babel/plugin-transform-computed-properties" "^7.10.4" + "@babel/plugin-transform-destructuring" "^7.10.4" + "@babel/plugin-transform-dotall-regex" "^7.10.4" + "@babel/plugin-transform-duplicate-keys" "^7.10.4" + "@babel/plugin-transform-exponentiation-operator" "^7.10.4" + "@babel/plugin-transform-for-of" "^7.10.4" + "@babel/plugin-transform-function-name" "^7.10.4" + "@babel/plugin-transform-literals" "^7.10.4" + "@babel/plugin-transform-member-expression-literals" "^7.10.4" + "@babel/plugin-transform-modules-amd" "^7.10.4" + "@babel/plugin-transform-modules-commonjs" "^7.10.4" + "@babel/plugin-transform-modules-systemjs" "^7.10.4" + "@babel/plugin-transform-modules-umd" "^7.10.4" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.10.4" + "@babel/plugin-transform-new-target" "^7.10.4" + "@babel/plugin-transform-object-super" "^7.10.4" + "@babel/plugin-transform-parameters" "^7.10.4" + "@babel/plugin-transform-property-literals" "^7.10.4" + "@babel/plugin-transform-regenerator" "^7.10.4" + "@babel/plugin-transform-reserved-words" "^7.10.4" + "@babel/plugin-transform-shorthand-properties" "^7.10.4" + "@babel/plugin-transform-spread" "^7.10.4" + "@babel/plugin-transform-sticky-regex" "^7.10.4" + "@babel/plugin-transform-template-literals" "^7.10.4" + "@babel/plugin-transform-typeof-symbol" "^7.10.4" + "@babel/plugin-transform-unicode-escapes" "^7.10.4" + "@babel/plugin-transform-unicode-regex" "^7.10.4" + "@babel/preset-modules" "^0.1.3" + "@babel/types" "^7.10.4" + browserslist "^4.12.0" + core-js-compat "^3.6.2" + invariant "^2.2.2" + levenary "^1.1.1" + semver "^5.5.0" + +"@babel/preset-flow@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.10.4.tgz#e0d9c72f8cb02d1633f6a5b7b16763aa2edf659f" + integrity sha512-XI6l1CptQCOBv+ZKYwynyswhtOKwpZZp5n0LG1QKCo8erRhqjoQV6nvx61Eg30JHpysWQSBwA2AWRU3pBbSY5g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-transform-flow-strip-types" "^7.10.4" + +"@babel/preset-modules@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.3.tgz#13242b53b5ef8c883c3cf7dddd55b36ce80fbc72" + integrity sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/preset-react@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.10.4.tgz#92e8a66d816f9911d11d4cc935be67adfc82dbcf" + integrity sha512-BrHp4TgOIy4M19JAfO1LhycVXOPWdDbTRep7eVyatf174Hff+6Uk53sDyajqZPu8W1qXRBiYOfIamek6jA7YVw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-transform-react-display-name" "^7.10.4" + "@babel/plugin-transform-react-jsx" "^7.10.4" + "@babel/plugin-transform-react-jsx-development" "^7.10.4" + "@babel/plugin-transform-react-jsx-self" "^7.10.4" + "@babel/plugin-transform-react-jsx-source" "^7.10.4" + "@babel/plugin-transform-react-pure-annotations" "^7.10.4" + +"@babel/runtime@^7.8.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.10.5.tgz#303d8bd440ecd5a491eae6117fd3367698674c5c" + integrity sha512-otddXKhdNn7d0ptoFRHtMLa8LqDxLYwTjB4nYgM1yy5N6gU/MUf8zqyyLltCH3yAVitBzmwK4us+DD0l/MauAg== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/template@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278" + integrity sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/parser" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/traverse@^7.10.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.10.5.tgz#77ce464f5b258be265af618d8fddf0536f20b564" + integrity sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.10.5" + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.10.4" + "@babel/parser" "^7.10.5" + "@babel/types" "^7.10.5" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.19" + +"@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.4.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.10.5.tgz#d88ae7e2fde86bfbfe851d4d81afa70a997b5d15" + integrity sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q== + dependencies: + "@babel/helper-validator-identifier" "^7.10.4" + lodash "^4.17.19" + to-fast-properties "^2.0.0" + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +babel-plugin-dynamic-import-node@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== + dependencies: + object.assign "^4.1.0" + +browserslist@^4.12.0, browserslist@^4.8.5: + version "4.13.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.13.0.tgz#42556cba011e1b0a2775b611cba6a8eca18e940d" + integrity sha512-MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ== + dependencies: + caniuse-lite "^1.0.30001093" + electron-to-chromium "^1.3.488" + escalade "^3.0.1" + node-releases "^1.1.58" + +caniuse-lite@^1.0.30001093: + version "1.0.30001105" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001105.tgz#d2cb0b31e5cf2f3ce845033b61c5c01566549abf" + integrity sha512-JupOe6+dGMr7E20siZHIZQwYqrllxotAhiaej96y6x00b/48rPt42o+SzOSCPbrpsDWvRja40Hwrj0g0q6LZJg== + +chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +core-js-compat@^3.6.2: + version "3.6.5" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.5.tgz#2a51d9a4e25dfd6e690251aa81f99e3c05481f1c" + integrity sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng== + dependencies: + browserslist "^4.8.5" + semver "7.0.0" + +debug@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +define-properties@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +electron-to-chromium@^1.3.488: + version "1.3.505" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.505.tgz#0e55edbdfc13700b6742a73c81c0af7d0d71364f" + integrity sha512-Aunrp3HWtmdiJLIl+IPSFtEvJ/4Q9a3eKaxmzCthaZF1gbTbpHUTCU2zOVnFPH7r/AD7zQXyuFidYXzSHXBdsw== + +escalade@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.0.2.tgz#6a580d70edb87880f22b4c91d0d56078df6962c4" + integrity sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-symbols@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" + integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== + +invariant@^2.2.2, invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levenary@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/levenary/-/levenary-1.1.1.tgz#842a9ee98d2075aa7faeedbe32679e9205f46f77" + integrity sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ== + dependencies: + leven "^3.1.0" + +lodash@^4.17.19: + version "4.17.19" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" + integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== + +loose-envify@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +ms@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +node-releases@^1.1.58: + version "1.1.60" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.60.tgz#6948bdfce8286f0b5d0e5a88e8384e954dfe7084" + integrity sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA== + +object-keys@^1.0.11, object-keys@^1.0.12: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +regenerate-unicode-properties@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" + integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== + dependencies: + regenerate "^1.4.0" + +regenerate@^1.4.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.1.tgz#cad92ad8e6b591773485fbe05a485caf4f457e6f" + integrity sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A== + +regenerator-runtime@^0.13.4: + version "0.13.7" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" + integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== + +regenerator-transform@^0.14.2: + version "0.14.5" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" + integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== + dependencies: + "@babel/runtime" "^7.8.4" + +regexpu-core@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" + integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ== + dependencies: + regenerate "^1.4.0" + regenerate-unicode-properties "^8.2.0" + regjsgen "^0.5.1" + regjsparser "^0.6.4" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.2.0" + +regjsgen@^0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" + integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== + +regjsparser@^0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" + integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== + dependencies: + jsesc "~0.5.0" + +semver@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +semver@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +source-map@^0.5.0: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +unicode-canonical-property-names-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" + integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== + +unicode-match-property-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" + integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== + dependencies: + unicode-canonical-property-names-ecmascript "^1.0.4" + unicode-property-aliases-ecmascript "^1.0.4" + +unicode-match-property-value-ecmascript@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" + integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== + +unicode-property-aliases-ecmascript@^1.0.4: + version "1.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" + integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== diff --git a/eslint/babel-eslint-tests/package.json b/eslint/babel-eslint-tests/package.json index 742709c68b4b..73c48105aee9 100644 --- a/eslint/babel-eslint-tests/package.json +++ b/eslint/babel-eslint-tests/package.json @@ -1,15 +1,12 @@ { "name": "@babel/eslint-tests", - "version": "7.10.4", + "version": "7.11.0", "description": "Tests for babel/eslint-* packages", "license": "MIT", "private": true, "devDependencies": { - "@babel/eslint-parser": "workspace:*", - "@babel/eslint-plugin": "workspace:*", - "@babel/eslint-shared-fixtures": "workspace:*", "dedent": "^0.7.0", - "eslint": "^6.0.0", - "eslint-plugin-import": "^2.20.1" + "eslint": "^7.5.0", + "eslint-plugin-import": "^2.22.0" } } diff --git a/eslint/babel-eslint-tests/test/helpers/verifyAndAssertMessages.js b/eslint/babel-eslint-tests/test/helpers/verifyAndAssertMessages.js index 3d94edfd7906..609cb8f50b79 100644 --- a/eslint/babel-eslint-tests/test/helpers/verifyAndAssertMessages.js +++ b/eslint/babel-eslint-tests/test/helpers/verifyAndAssertMessages.js @@ -1,6 +1,6 @@ import eslint from "eslint"; import unpad from "dedent"; -import * as parser from "@babel/eslint-parser"; +import * as parser from "../../../babel-eslint-parser"; export default function verifyAndAssertMessages( code, @@ -25,7 +25,7 @@ export default function verifyAndAssertMessages( requireConfigFile: false, babelOptions: { configFile: require.resolve( - "@babel/eslint-shared-fixtures/config/babel.config.js", + "../../../babel-eslint-shared-fixtures/config/babel.config.js", ), }, ...overrideConfig?.parserOptions, diff --git a/eslint/babel-eslint-tests/test/integration/eslint/eslint.js b/eslint/babel-eslint-tests/test/integration/eslint/eslint.js index 1a62e20f56a9..5a8ed44b23b9 100644 --- a/eslint/babel-eslint-tests/test/integration/eslint/eslint.js +++ b/eslint/babel-eslint-tests/test/integration/eslint/eslint.js @@ -1081,7 +1081,7 @@ describe("verify", () => { sourceType, babelOptions: { configFile: require.resolve( - "@babel/eslint-shared-fixtures/config/babel.config.decorators-legacy.js", + "../../../../babel-eslint-shared-fixtures/config/babel.config.decorators-legacy.js", ), }, }, diff --git a/eslint/babel-eslint-tests/test/integration/eslint/rules/strict.js b/eslint/babel-eslint-tests/test/integration/eslint/rules/strict.js index 1bd83dd597b6..5753a114a320 100644 --- a/eslint/babel-eslint-tests/test/integration/eslint/rules/strict.js +++ b/eslint/babel-eslint-tests/test/integration/eslint/rules/strict.js @@ -1,7 +1,7 @@ import eslint from "eslint"; import fs from "fs"; import path from "path"; -import * as parser from "@babel/eslint-parser"; +import * as parser from "../../../../../babel-eslint-parser"; eslint.linter.defineParser("@babel/eslint-parser", parser); diff --git a/eslint/babel-eslint-tests/yarn.lock b/eslint/babel-eslint-tests/yarn.lock new file mode 100644 index 000000000000..2c375415d448 --- /dev/null +++ b/eslint/babel-eslint-tests/yarn.lock @@ -0,0 +1,1123 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.0.0": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" + integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/helper-validator-identifier@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" + integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== + +"@babel/highlight@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" + integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== + dependencies: + "@babel/helper-validator-identifier" "^7.10.4" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + +acorn-jsx@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" + integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== + +acorn@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.3.1.tgz#85010754db53c3fbaf3b9ea3e083aa5c5d147ffd" + integrity sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA== + +ajv@^6.10.0, ajv@^6.10.2: + version "6.12.3" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706" + integrity sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +array-includes@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348" + integrity sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0" + is-string "^1.0.5" + +array.prototype.flat@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b" + integrity sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +contains-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" + integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= + +cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= + +deep-is@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +define-properties@^1.1.2, define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +doctrine@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +enquirer@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +error-ex@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.5: + version "1.17.6" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz#9142071707857b2cacc7b89ecb670316c3e2d52a" + integrity sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw== + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.2.0" + is-regex "^1.1.0" + object-inspect "^1.7.0" + object-keys "^1.1.1" + object.assign "^4.1.0" + string.prototype.trimend "^1.0.1" + string.prototype.trimstart "^1.0.1" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +eslint-import-resolver-node@^0.3.3: + version "0.3.4" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717" + integrity sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== + dependencies: + debug "^2.6.9" + resolve "^1.13.1" + +eslint-module-utils@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" + integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== + dependencies: + debug "^2.6.9" + pkg-dir "^2.0.0" + +eslint-plugin-import@^2.22.0: + version "2.22.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.0.tgz#92f7736fe1fde3e2de77623c838dd992ff5ffb7e" + integrity sha512-66Fpf1Ln6aIS5Gr/55ts19eUuoDhAbZgnr6UxK5hbDx6l/QgQgx61AePq+BV4PP2uXQFClgMVzep5zZ94qqsxg== + dependencies: + array-includes "^3.1.1" + array.prototype.flat "^1.2.3" + contains-path "^0.1.0" + debug "^2.6.9" + doctrine "1.5.0" + eslint-import-resolver-node "^0.3.3" + eslint-module-utils "^2.6.0" + has "^1.0.3" + minimatch "^3.0.4" + object.values "^1.1.1" + read-pkg-up "^2.0.0" + resolve "^1.17.0" + tsconfig-paths "^3.9.0" + +eslint-scope@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.0.tgz#d0f971dfe59c69e0cada684b23d49dbf82600ce5" + integrity sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint@^7.5.0: + version "7.5.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.5.0.tgz#9ecbfad62216d223b82ac9ffea7ef3444671d135" + integrity sha512-vlUP10xse9sWt9SGRtcr1LAC67BENcQMFeV+w5EvLEoFe3xJ8cF1Skd0msziRx/VMC+72B4DxreCE+OR12OA6Q== + dependencies: + "@babel/code-frame" "^7.0.0" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + eslint-scope "^5.1.0" + eslint-utils "^2.1.0" + eslint-visitor-keys "^1.3.0" + espree "^7.2.0" + esquery "^1.2.0" + esutils "^2.0.2" + file-entry-cache "^5.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.0.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash "^4.17.19" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^5.2.3" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.2.0.tgz#1c263d5b513dbad0ac30c4991b93ac354e948d69" + integrity sha512-H+cQ3+3JYRMEIOl87e7QdHX70ocly5iW4+dttuR8iYSPr/hXKFb+7dBsZ7+u1adC4VrnPlTkv0+OwuPnDop19g== + dependencies: + acorn "^7.3.1" + acorn-jsx "^5.2.0" + eslint-visitor-keys "^1.3.0" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" + integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== + dependencies: + estraverse "^4.1.0" + +estraverse@^4.1.0, estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642" + integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" + integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== + dependencies: + flat-cache "^2.0.1" + +find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" + integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== + dependencies: + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" + +flatted@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" + integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +glob-parent@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" + integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== + dependencies: + is-glob "^4.0.1" + +glob@^7.1.3: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^12.1.0: + version "12.4.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" + integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== + dependencies: + type-fest "^0.8.1" + +graceful-fs@^4.1.2: + version "4.2.4" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" + integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-symbols@^1.0.0, has-symbols@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" + integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hosted-git-info@^2.1.4: + version "2.8.8" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" + integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +import-fresh@^3.0.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" + integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-callable@^1.1.4, is-callable@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb" + integrity sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw== + +is-date-object@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-glob@^4.0.0, is-glob@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.0.tgz#ece38e389e490df0dc21caea2bd596f987f767ff" + integrity sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw== + dependencies: + has-symbols "^1.0.1" + +is-string@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" + integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== + +is-symbol@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== + dependencies: + has-symbols "^1.0.1" + +isarray@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" + integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +lodash@^4.17.14, lodash@^4.17.19: + version "4.17.19" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" + integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +mkdirp@^0.5.1: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +normalize-package-data@^2.3.2: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +object-inspect@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" + integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== + +object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.values@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" + integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" + has "^1.0.3" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + dependencies: + error-ex "^1.2.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= + dependencies: + pify "^2.0.0" + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= + dependencies: + find-up "^2.1.0" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + +regexpp@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" + integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve@^1.10.0, resolve@^1.13.1, resolve@^1.17.0: + version "1.17.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" + integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== + dependencies: + path-parse "^1.0.6" + +rimraf@2.6.3: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + +"semver@2 || 3 || 4 || 5": + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^7.2.1: + version "7.3.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" + integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.5" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" + integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +string-width@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string.prototype.trimend@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" + integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string.prototype.trimstart@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" + integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +strip-ansi@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-json-comments@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" + integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== + dependencies: + has-flag "^4.0.0" + +table@^5.2.3: + version "5.4.6" + resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" + integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== + dependencies: + ajv "^6.10.2" + lodash "^4.17.14" + slice-ansi "^2.1.0" + string-width "^3.0.0" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +tsconfig-paths@^3.9.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b" + integrity sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.1" + minimist "^1.2.0" + strip-bom "^3.0.0" + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + dependencies: + punycode "^2.1.0" + +v8-compile-cache@^2.0.3: + version "2.1.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz#54bc3cdd43317bca91e35dcaf305b1a7237de745" + integrity sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ== + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +word-wrap@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" + integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== + dependencies: + mkdirp "^0.5.1" diff --git a/lerna.json b/lerna.json index ae2024ebe97e..865794e77abe 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "7.10.4", + "version": "7.11.3", "changelog": { "repo": "babel/babel", "cacheDir": ".changelog", @@ -25,13 +25,13 @@ "# We ignore every JSON file, except for native-modules, built-ins and plugins defined in babel-preset-env/data.", "@(!(native-modules|built-ins|plugins|package)).json" ] + }, + "version": { + "push": false } }, - "packages": [ - "codemods/*", - "eslint/*", - "packages/*" - ], + "packages": ["codemods/*", "eslint/*", "packages/*"], "npmClient": "yarn", - "useWorkspaces": true + "useWorkspaces": true, + "npmClientArgs": ["--pure-lockfile"] } diff --git a/package.json b/package.json index ee963fe7ca6c..7f028aee748c 100644 --- a/package.json +++ b/package.json @@ -11,26 +11,23 @@ "test": "make test" }, "devDependencies": { - "@babel/cli": "^7.10.1", - "@babel/core": "^7.10.2", + "@babel/cli": "^7.10.4", + "@babel/core": "^7.11.0", "@babel/eslint-config-internal": "link:./eslint/babel-eslint-config-internal", - "@babel/eslint-parser": "link:./eslint/babel-eslint-parser", - "@babel/eslint-plugin-development": "link:./eslint/babel-eslint-plugin-development", + "@babel/eslint-parser": "^7.11.0", + "@babel/eslint-plugin-development": "^7.11.0", "@babel/eslint-plugin-development-internal": "link:./eslint/babel-eslint-plugin-development-internal", - "@babel/plugin-proposal-class-properties": "^7.10.1", - "@babel/plugin-proposal-dynamic-import": "^7.10.1", - "@babel/plugin-proposal-export-namespace-from": "^7.10.1", - "@babel/plugin-proposal-object-rest-spread": "^7.10.1", - "@babel/plugin-transform-flow-strip-types": "^7.10.1", - "@babel/plugin-transform-for-of": "^7.10.1", - "@babel/plugin-transform-modules-commonjs": "^7.10.1", - "@babel/plugin-transform-runtime": "^7.10.1", - "@babel/preset-env": "^7.10.2", - "@babel/preset-flow": "^7.10.1", - "@babel/register": "^7.10.1", - "@babel/runtime": "^7.10.2", + "@babel/plugin-proposal-dynamic-import": "^7.10.4", + "@babel/plugin-proposal-object-rest-spread": "^7.11.0", + "@babel/plugin-transform-flow-strip-types": "^7.10.4", + "@babel/plugin-transform-for-of": "^7.10.4", + "@babel/plugin-transform-modules-commonjs": "^7.10.4", + "@babel/plugin-transform-runtime": "^7.11.0", + "@babel/preset-env": "^7.11.0", + "@babel/preset-flow": "^7.10.4", + "@babel/register": "^7.10.5", + "@babel/runtime": "^7.11.0", "@rollup/plugin-json": "4.0.1", - "babel-eslint": "^11.0.0-beta.2", "babel-jest": "^25.1.0", "babel-plugin-transform-charcodes": "^0.2.0", "browserify": "^16.2.3", @@ -39,10 +36,10 @@ "charcodes": "^0.2.0", "derequire": "^2.0.2", "enhanced-resolve": "^3.0.0", - "eslint": "^6.8.0", + "eslint": "^7.5.0", "eslint-import-resolver-node": "^0.3.3", "eslint-plugin-flowtype": "^4.6.0", - "eslint-plugin-import": "^2.20.1", + "eslint-plugin-import": "^2.22.0", "eslint-plugin-jest": "^23.8.2", "eslint-plugin-prettier": "^3.1.2", "fancy-log": "^1.3.3", @@ -57,7 +54,7 @@ "lerna": "^3.19.0", "lerna-changelog": "^0.5.0", "lint-staged": "^9.2.0", - "lodash": "^4.17.13", + "lodash": "^4.17.19", "mergeiterator": "^1.2.5", "prettier": "^2.0.5", "pump": "^3.0.0", diff --git a/packages/babel-cli/package.json b/packages/babel-cli/package.json index 7c77a8b262e9..2eece871d17f 100644 --- a/packages/babel-cli/package.json +++ b/packages/babel-cli/package.json @@ -1,6 +1,6 @@ { "name": "@babel/cli", - "version": "7.10.4", + "version": "7.10.5", "description": "Babel command line.", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -27,19 +27,20 @@ "convert-source-map": "^1.1.0", "fs-readdir-recursive": "^1.1.0", "glob": "^7.0.0", - "lodash": "^4.17.13", - "slash": "^3.0.0", + "lodash": "^4.17.19", + "make-dir": "^2.1.0", + "slash": "^2.0.0", "source-map": "^0.5.0" }, "optionalDependencies": { - "chokidar": "^3.3.1" + "chokidar": "^2.1.8" }, "peerDependencies": { "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "workspace:^7.10.4", - "@babel/helper-fixtures": "workspace:^7.10.4", + "@babel/core": "workspace:^7.10.5", + "@babel/helper-fixtures": "workspace:^7.10.5", "rimraf": "^3.0.0" }, "bin": { diff --git a/packages/babel-cli/src/babel/options.js b/packages/babel-cli/src/babel/options.js index 6b94f75cd675..0aa54b3ef607 100644 --- a/packages/babel-cli/src/babel/options.js +++ b/packages/babel-cli/src/babel/options.js @@ -4,7 +4,6 @@ import fs from "fs"; import commander from "commander"; import { version } from "@babel/core"; -import uniq from "lodash/uniq"; import glob from "glob"; import pkg from "../../package.json"; @@ -195,7 +194,7 @@ export default function parseArgv(args: Array): CmdOptions | null { return globbed.concat(files); }, []); - filenames = uniq(filenames); + filenames = Array.from(new Set(filenames)); filenames.forEach(function (filename) { if (!fs.existsSync(filename)) { diff --git a/packages/babel-cli/src/babel/util.js b/packages/babel-cli/src/babel/util.js index 752203cd0620..868382232d02 100644 --- a/packages/babel-cli/src/babel/util.js +++ b/packages/babel-cli/src/babel/util.js @@ -2,7 +2,6 @@ import readdirRecursive from "fs-readdir-recursive"; import * as babel from "@babel/core"; -import includes from "lodash/includes"; import path from "path"; import fs from "fs"; @@ -47,7 +46,7 @@ export function isCompilableExtension( ): boolean { const exts = altExts || babel.DEFAULT_EXTENSIONS; const ext = path.extname(filename); - return includes(exts, ext); + return exts.includes(ext); } export function addSourceMappingUrl(code: string, loc: string): string { diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with ignored file/in-files/babel.config.json b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with ignored file/in-files/babel.config.json new file mode 100644 index 000000000000..e27502349ff7 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with ignored file/in-files/babel.config.json @@ -0,0 +1,14 @@ +{ + "sourceType": "script", + "overrides": [ + { + "test": "src/index.js", + "sourceType": "module" + } + ], + "env": { + "test": { + "ignore": ["./src/index.js"] + } + } +} diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with ignored file/in-files/src/index.js b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with ignored file/in-files/src/index.js new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with ignored file/options.json b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with ignored file/options.json new file mode 100644 index 000000000000..1843a59d10d6 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with ignored file/options.json @@ -0,0 +1,7 @@ +{ + "args": ["./src/index.js"], + "env": { + "BABEL_SHOW_CONFIG_FOR": "./src/index.js" + }, + "os": ["darwin", "linux"] +} diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with ignored file/stdout.txt b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with ignored file/stdout.txt new file mode 100644 index 000000000000..0f04e572f41d --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with ignored file/stdout.txt @@ -0,0 +1 @@ +No config is applied to "/src/index.js" because it matches one of `ignore: ["./src/index.js"]` from "" diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with multiple files-windows/in-files/babel.config.json b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with multiple files-windows/in-files/babel.config.json new file mode 100644 index 000000000000..d0aed1111196 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with multiple files-windows/in-files/babel.config.json @@ -0,0 +1,13 @@ +{ + "sourceType": "script", + "overrides": [ + { + "test": "src/foo.js", + "sourceType": "module" + }, + { + "test": "src/bar.js", + "sourceType": "script" + } + ] +} diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with multiple files-windows/in-files/src/bar.js b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with multiple files-windows/in-files/src/bar.js new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with multiple files-windows/in-files/src/foo.js b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with multiple files-windows/in-files/src/foo.js new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with multiple files-windows/options.json b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with multiple files-windows/options.json new file mode 100644 index 000000000000..39dd94aba890 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with multiple files-windows/options.json @@ -0,0 +1,7 @@ +{ + "args": ["./src", "--out-file", "./test.js"], + "os": ["win32"], + "env": { + "BABEL_SHOW_CONFIG_FOR": "./src/foo.js" + } +} diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with multiple files-windows/out-files/test.js b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with multiple files-windows/out-files/test.js new file mode 100644 index 000000000000..3918c74e4463 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with multiple files-windows/out-files/test.js @@ -0,0 +1 @@ +"use strict"; diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with multiple files-windows/stdout.txt b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with multiple files-windows/stdout.txt new file mode 100644 index 000000000000..303ac82e7f34 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with multiple files-windows/stdout.txt @@ -0,0 +1,31 @@ +Babel configs on "/src/foo.js" (ascending priority): +config /babel.config.json +{ + "sourceType": "script" +} + +config /babel.config.json .overrides[0] +{ + "test": "src/foo.js", + "sourceType": "module" +} + +config /.babelrc +{} + +programmatic options from @babel/cli +{ + "sourceFileName": "src/foo.js", + "presets": [ + "//packages//babel-preset-react" + ], + "plugins": [ + "//packages//babel-plugin-transform-arrow-functions", + "//packages//babel-plugin-transform-strict-mode", + "//packages//babel-plugin-transform-modules-commonjs" + ], + "caller": { + "name": "@babel/cli" + }, + "filename": "src//foo.js" +} diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with multiple files/in-files/babel.config.json b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with multiple files/in-files/babel.config.json new file mode 100644 index 000000000000..d0aed1111196 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with multiple files/in-files/babel.config.json @@ -0,0 +1,13 @@ +{ + "sourceType": "script", + "overrides": [ + { + "test": "src/foo.js", + "sourceType": "module" + }, + { + "test": "src/bar.js", + "sourceType": "script" + } + ] +} diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with multiple files/in-files/src/bar.js b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with multiple files/in-files/src/bar.js new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with multiple files/in-files/src/foo.js b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with multiple files/in-files/src/foo.js new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with multiple files/options.json b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with multiple files/options.json new file mode 100644 index 000000000000..f825bf6da710 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with multiple files/options.json @@ -0,0 +1,7 @@ +{ + "args": ["./src", "--out-file", "./test.js"], + "os": ["darwin", "linux"], + "env": { + "BABEL_SHOW_CONFIG_FOR": "./src/foo.js" + } +} diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with multiple files/out-files/test.js b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with multiple files/out-files/test.js new file mode 100644 index 000000000000..3918c74e4463 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with multiple files/out-files/test.js @@ -0,0 +1 @@ +"use strict"; diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with multiple files/stdout.txt b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with multiple files/stdout.txt new file mode 100644 index 000000000000..0f982f0e98c4 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with multiple files/stdout.txt @@ -0,0 +1,31 @@ +Babel configs on "/src/foo.js" (ascending priority): +config /babel.config.json +{ + "sourceType": "script" +} + +config /babel.config.json .overrides[0] +{ + "test": "src/foo.js", + "sourceType": "module" +} + +config /.babelrc +{} + +programmatic options from @babel/cli +{ + "sourceFileName": "src/foo.js", + "presets": [ + "/packages/babel-preset-react" + ], + "plugins": [ + "/packages/babel-plugin-transform-arrow-functions", + "/packages/babel-plugin-transform-strict-mode", + "/packages/babel-plugin-transform-modules-commonjs" + ], + "caller": { + "name": "@babel/cli" + }, + "filename": "src/foo.js" +} diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with only file/in-files/babel.config.json b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with only file/in-files/babel.config.json new file mode 100644 index 000000000000..5a9bcd4c46f3 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with only file/in-files/babel.config.json @@ -0,0 +1,14 @@ +{ + "sourceType": "script", + "overrides": [ + { + "test": "src/index.js", + "sourceType": "module" + } + ], + "env": { + "test": { + "only": ["./src/unicorn.js"] + } + } +} diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with only file/in-files/src/index.js b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with only file/in-files/src/index.js new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with only file/options.json b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with only file/options.json new file mode 100644 index 000000000000..1843a59d10d6 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with only file/options.json @@ -0,0 +1,7 @@ +{ + "args": ["./src/index.js"], + "env": { + "BABEL_SHOW_CONFIG_FOR": "./src/index.js" + }, + "os": ["darwin", "linux"] +} diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with only file/stdout.txt b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with only file/stdout.txt new file mode 100644 index 000000000000..e1e47232c0d4 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR with only file/stdout.txt @@ -0,0 +1 @@ +No config is applied to "/src/index.js" because it fails to match one of `only: ["./src/unicorn.js"]` from "" diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR-windows/in-files/babel.config.json b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR-windows/in-files/babel.config.json new file mode 100644 index 000000000000..d0aed1111196 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR-windows/in-files/babel.config.json @@ -0,0 +1,13 @@ +{ + "sourceType": "script", + "overrides": [ + { + "test": "src/foo.js", + "sourceType": "module" + }, + { + "test": "src/bar.js", + "sourceType": "script" + } + ] +} diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR-windows/in-files/src/bar.js b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR-windows/in-files/src/bar.js new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR-windows/in-files/src/foo.js b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR-windows/in-files/src/foo.js new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR-windows/options.json b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR-windows/options.json new file mode 100644 index 000000000000..afe564df4d72 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR-windows/options.json @@ -0,0 +1,7 @@ +{ + "args": ["./src", "-d", "lib"], + "env": { + "BABEL_SHOW_CONFIG_FOR": "./src/foo.js" + }, + "os": ["win32"] +} diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR-windows/out-files/lib/bar.js b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR-windows/out-files/lib/bar.js new file mode 100644 index 000000000000..3918c74e4463 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR-windows/out-files/lib/bar.js @@ -0,0 +1 @@ +"use strict"; diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR-windows/stdout.txt b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR-windows/stdout.txt new file mode 100644 index 000000000000..5d5860f58f82 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR-windows/stdout.txt @@ -0,0 +1,32 @@ +Babel configs on "/src/foo.js" (ascending priority): +config /babel.config.json +{ + "sourceType": "script" +} + +config /babel.config.json .overrides[0] +{ + "test": "src/foo.js", + "sourceType": "module" +} + +config /.babelrc +{} + +programmatic options from @babel/cli +{ + "sourceFileName": "../src/foo.js", + "presets": [ + "//packages//babel-preset-react" + ], + "plugins": [ + "//packages//babel-plugin-transform-arrow-functions", + "//packages//babel-plugin-transform-strict-mode", + "//packages//babel-plugin-transform-modules-commonjs" + ], + "caller": { + "name": "@babel/cli" + }, + "filename": "src//foo.js" +} +Successfully compiled 1 file with Babel (123ms). diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/in-files/my-config.js b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/in-files/my-config.js new file mode 100644 index 000000000000..011eda3d4d61 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/in-files/my-config.js @@ -0,0 +1,40 @@ +module.exports = { + sourceType: "script", + plugins: [require("@foo/babel-plugin-1")], + extends: "./my-extended.js", + overrides: [ + { + test: "src/index.js", + plugins: [["@foo/babel-plugin-2", { noDocumentAll: true }]], + env: { + test: { + plugins: [ + "@foo/babel-plugin-1", + [ + { name: "@foo/inline-babel-plugin-1", visitor: { Program() {} } }, + { noDocumentAll: true }, + ], + ], + }, + }, + }, + { + exclude: "src/index.js", + plugins: ["@foo/babel-plugin-4"], + }, + ], + env: { + test: { + plugins: [ + [ + "@foo/babel-plugin-3", + { noDocumentAll: true }, + "@foo/babel-plugin-three", + ], + ], + }, + development: { + plugins: ["@foo/babel-plugin-4"], + }, + }, +}; diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/in-files/my-extended.js b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/in-files/my-extended.js new file mode 100644 index 000000000000..31ef7c081c62 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/in-files/my-extended.js @@ -0,0 +1,47 @@ +module.exports = { + sourceMaps: false, + presets: ["@foo/babel-preset-1"], + overrides: [ + { + test: "src/index.js", + presets: [["@foo/babel-preset-2", { noDocumentAll: true }]], + env: { + test: { + presets: [ + "@foo/babel-preset-1", + [ + { + name: "@foo/inline-babel-preset-1", + plugins: [ + { + name: "@foo/inline-babel-plugin-1", + visitor: { Program() {} }, + }, + ], + }, + { noDocumentAll: true }, + ], + ], + }, + }, + }, + { + exclude: "src/index.js", + presets: ["@foo/babel-preset-4"], + }, + ], + env: { + test: { + presets: [ + [ + "@foo/babel-preset-3", + { noDocumentAll: true }, + "@foo/babel-preset-three", + ], + ], + }, + development: { + presets: ["@foo/babel-preset-4"], + }, + }, +}; diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/in-files/node_modules/@foo/babel-plugin-1/index.js b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/in-files/node_modules/@foo/babel-plugin-1/index.js new file mode 100644 index 000000000000..2044637bfa46 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/in-files/node_modules/@foo/babel-plugin-1/index.js @@ -0,0 +1,6 @@ +module.exports = (api) => ({ + name: "@foo/" + __dirname, + visitor: { + Program() {} + } +}) diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/in-files/node_modules/@foo/babel-plugin-2/index.js b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/in-files/node_modules/@foo/babel-plugin-2/index.js new file mode 100644 index 000000000000..2044637bfa46 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/in-files/node_modules/@foo/babel-plugin-2/index.js @@ -0,0 +1,6 @@ +module.exports = (api) => ({ + name: "@foo/" + __dirname, + visitor: { + Program() {} + } +}) diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/in-files/node_modules/@foo/babel-plugin-3/index.js b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/in-files/node_modules/@foo/babel-plugin-3/index.js new file mode 100644 index 000000000000..2044637bfa46 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/in-files/node_modules/@foo/babel-plugin-3/index.js @@ -0,0 +1,6 @@ +module.exports = (api) => ({ + name: "@foo/" + __dirname, + visitor: { + Program() {} + } +}) diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/in-files/node_modules/@foo/babel-plugin-4/index.js b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/in-files/node_modules/@foo/babel-plugin-4/index.js new file mode 100644 index 000000000000..2044637bfa46 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/in-files/node_modules/@foo/babel-plugin-4/index.js @@ -0,0 +1,6 @@ +module.exports = (api) => ({ + name: "@foo/" + __dirname, + visitor: { + Program() {} + } +}) diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/in-files/node_modules/@foo/babel-preset-1/index.js b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/in-files/node_modules/@foo/babel-preset-1/index.js new file mode 100644 index 000000000000..1eff8b4a82a5 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/in-files/node_modules/@foo/babel-preset-1/index.js @@ -0,0 +1,4 @@ +module.exports = (api) => ({ + name: "@foo/" + __dirname, + plugins: ["@foo/" + __dirname.replace("preset", "plugin")] +}) diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/in-files/node_modules/@foo/babel-preset-2/index.js b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/in-files/node_modules/@foo/babel-preset-2/index.js new file mode 100644 index 000000000000..1eff8b4a82a5 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/in-files/node_modules/@foo/babel-preset-2/index.js @@ -0,0 +1,4 @@ +module.exports = (api) => ({ + name: "@foo/" + __dirname, + plugins: ["@foo/" + __dirname.replace("preset", "plugin")] +}) diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/in-files/node_modules/@foo/babel-preset-3/index.js b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/in-files/node_modules/@foo/babel-preset-3/index.js new file mode 100644 index 000000000000..1eff8b4a82a5 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/in-files/node_modules/@foo/babel-preset-3/index.js @@ -0,0 +1,4 @@ +module.exports = (api) => ({ + name: "@foo/" + __dirname, + plugins: ["@foo/" + __dirname.replace("preset", "plugin")] +}) diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/in-files/node_modules/@foo/babel-preset-4/index.js b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/in-files/node_modules/@foo/babel-preset-4/index.js new file mode 100644 index 000000000000..1eff8b4a82a5 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/in-files/node_modules/@foo/babel-preset-4/index.js @@ -0,0 +1,4 @@ +module.exports = (api) => ({ + name: "@foo/" + __dirname, + plugins: ["@foo/" + __dirname.replace("preset", "plugin")] +}) diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/in-files/src/index.js b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/in-files/src/index.js new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/options.json b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/options.json new file mode 100644 index 000000000000..98fec747116f --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/options.json @@ -0,0 +1,8 @@ +{ + "args": ["--config-file", "./my-config.js", "./src/index.js"], + "env": { + "BABEL_ENV": "test", + "BABEL_SHOW_CONFIG_FOR": "./src/index.js" + }, + "os": ["darwin", "linux"] +} diff --git a/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/stdout.txt b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/stdout.txt new file mode 100644 index 000000000000..b648f9d8bb48 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/env - SHOW_CONFIG_FOR/stdout.txt @@ -0,0 +1,127 @@ +Babel configs on "/src/index.js" (ascending priority): +config /my-extended.js +{ + "sourceMaps": false, + "presets": [ + "@foo/babel-preset-1" + ] +} + +config /my-extended.js .env["test"] +{ + "presets": [ + [ + "@foo/babel-preset-3", + { + "noDocumentAll": true + }, + "@foo/babel-preset-three" + ] + ] +} + +config /my-extended.js .overrides[0] +{ + "test": "src/index.js", + "presets": [ + [ + "@foo/babel-preset-2", + { + "noDocumentAll": true + } + ] + ] +} + +config /my-extended.js .overrides[0].env["test"] +{ + "presets": [ + "@foo/babel-preset-1", + [ + { + "name": "@foo/inline-babel-preset-1", + "plugins": [ + { + "name": "@foo/inline-babel-plugin-1", + "visitor": {} + } + ] + }, + { + "noDocumentAll": true + } + ] + ] +} + +config /my-config.js +{ + "sourceType": "script", + "plugins": [ + "[Function: (api) => ({/n name: /"@foo//" + __dirname,/n visitor ... ]" + ], + "extends": "./my-extended.js" +} + +config /my-config.js .env["test"] +{ + "plugins": [ + [ + "@foo/babel-plugin-3", + { + "noDocumentAll": true + }, + "@foo/babel-plugin-three" + ] + ] +} + +config /my-config.js .overrides[0] +{ + "test": "src/index.js", + "plugins": [ + [ + "@foo/babel-plugin-2", + { + "noDocumentAll": true + } + ] + ] +} + +config /my-config.js .overrides[0].env["test"] +{ + "plugins": [ + "@foo/babel-plugin-1", + [ + { + "name": "@foo/inline-babel-plugin-1", + "visitor": {} + }, + { + "noDocumentAll": true + } + ] + ] +} + +config /.babelrc +{} + +programmatic options from @babel/cli +{ + "sourceFileName": "./src/index.js", + "presets": [ + "/packages/babel-preset-react" + ], + "plugins": [ + "/packages/babel-plugin-transform-arrow-functions", + "/packages/babel-plugin-transform-strict-mode", + "/packages/babel-plugin-transform-modules-commonjs" + ], + "configFile": "./my-config.js", + "caller": { + "name": "@babel/cli" + }, + "filename": "./src/index.js" +} diff --git a/packages/babel-cli/test/fixtures/babel/error - SHOW_CONFIG_FOR is a folder-windows/in-files/babel.config.json b/packages/babel-cli/test/fixtures/babel/error - SHOW_CONFIG_FOR is a folder-windows/in-files/babel.config.json new file mode 100644 index 000000000000..d0aed1111196 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/error - SHOW_CONFIG_FOR is a folder-windows/in-files/babel.config.json @@ -0,0 +1,13 @@ +{ + "sourceType": "script", + "overrides": [ + { + "test": "src/foo.js", + "sourceType": "module" + }, + { + "test": "src/bar.js", + "sourceType": "script" + } + ] +} diff --git a/packages/babel-cli/test/fixtures/babel/error - SHOW_CONFIG_FOR is a folder-windows/in-files/src/bar.js b/packages/babel-cli/test/fixtures/babel/error - SHOW_CONFIG_FOR is a folder-windows/in-files/src/bar.js new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/packages/babel-cli/test/fixtures/babel/error - SHOW_CONFIG_FOR is a folder-windows/in-files/src/foo.js b/packages/babel-cli/test/fixtures/babel/error - SHOW_CONFIG_FOR is a folder-windows/in-files/src/foo.js new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/packages/babel-cli/test/fixtures/babel/error - SHOW_CONFIG_FOR is a folder-windows/options.json b/packages/babel-cli/test/fixtures/babel/error - SHOW_CONFIG_FOR is a folder-windows/options.json new file mode 100644 index 000000000000..47482647a1f8 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/error - SHOW_CONFIG_FOR is a folder-windows/options.json @@ -0,0 +1,8 @@ +{ + "args": ["./src", "-d", "lib"], + "env": { + "BABEL_SHOW_CONFIG_FOR": "./src" + }, + "os": ["win32"], + "stderrContains": true +} diff --git a/packages/babel-cli/test/fixtures/babel/error - SHOW_CONFIG_FOR is a folder-windows/stderr.txt b/packages/babel-cli/test/fixtures/babel/error - SHOW_CONFIG_FOR is a folder-windows/stderr.txt new file mode 100644 index 000000000000..643907675a08 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/error - SHOW_CONFIG_FOR is a folder-windows/stderr.txt @@ -0,0 +1 @@ +Error: \src: BABEL_SHOW_CONFIG_FOR must refer to a regular file, directories are not supported. diff --git a/packages/babel-cli/test/fixtures/babel/error - SHOW_CONFIG_FOR is a folder/in-files/babel.config.json b/packages/babel-cli/test/fixtures/babel/error - SHOW_CONFIG_FOR is a folder/in-files/babel.config.json new file mode 100644 index 000000000000..d0aed1111196 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/error - SHOW_CONFIG_FOR is a folder/in-files/babel.config.json @@ -0,0 +1,13 @@ +{ + "sourceType": "script", + "overrides": [ + { + "test": "src/foo.js", + "sourceType": "module" + }, + { + "test": "src/bar.js", + "sourceType": "script" + } + ] +} diff --git a/packages/babel-cli/test/fixtures/babel/error - SHOW_CONFIG_FOR is a folder/in-files/src/bar.js b/packages/babel-cli/test/fixtures/babel/error - SHOW_CONFIG_FOR is a folder/in-files/src/bar.js new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/packages/babel-cli/test/fixtures/babel/error - SHOW_CONFIG_FOR is a folder/in-files/src/foo.js b/packages/babel-cli/test/fixtures/babel/error - SHOW_CONFIG_FOR is a folder/in-files/src/foo.js new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/packages/babel-cli/test/fixtures/babel/error - SHOW_CONFIG_FOR is a folder/options.json b/packages/babel-cli/test/fixtures/babel/error - SHOW_CONFIG_FOR is a folder/options.json new file mode 100644 index 000000000000..ad68f809aa27 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/error - SHOW_CONFIG_FOR is a folder/options.json @@ -0,0 +1,8 @@ +{ + "args": ["./src", "-d", "lib"], + "env": { + "BABEL_SHOW_CONFIG_FOR": "./src" + }, + "os": ["darwin", "linux"], + "stderrContains": true +} diff --git a/packages/babel-cli/test/fixtures/babel/error - SHOW_CONFIG_FOR is a folder/stderr.txt b/packages/babel-cli/test/fixtures/babel/error - SHOW_CONFIG_FOR is a folder/stderr.txt new file mode 100644 index 000000000000..6106f380f658 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/error - SHOW_CONFIG_FOR is a folder/stderr.txt @@ -0,0 +1 @@ +Error: /src: BABEL_SHOW_CONFIG_FOR must refer to a regular file, directories are not supported. diff --git a/packages/babel-cli/test/index.js b/packages/babel-cli/test/index.js index 020f4a1537f4..0f9d673ed4cf 100644 --- a/packages/babel-cli/test/index.js +++ b/packages/babel-cli/test/index.js @@ -2,12 +2,14 @@ const readdir = require("fs-readdir-recursive"); const helper = require("@babel/helper-fixtures"); const rimraf = require("rimraf"); const child = require("child_process"); +const escapeRegExp = require("lodash/escapeRegExp"); const merge = require("lodash/merge"); const path = require("path"); const fs = require("fs"); const fixtureLoc = path.join(__dirname, "fixtures"); const tmpLoc = path.join(__dirname, "tmp"); +const rootDir = path.resolve(__dirname, "../../.."); const fileFilter = function (x) { return x !== ".DS_Store"; @@ -18,12 +20,12 @@ const outputFileSync = function (filePath, data) { fs.writeFileSync(filePath, data); }; -const presetLocs = [path.join(__dirname, "../../babel-preset-react")]; +const presetLocs = [path.join(rootDir, "./packages/babel-preset-react")]; const pluginLocs = [ - path.join(__dirname, "/../../babel-plugin-transform-arrow-functions"), - path.join(__dirname, "/../../babel-plugin-transform-strict-mode"), - path.join(__dirname, "/../../babel-plugin-transform-modules-commonjs"), + path.join(rootDir, "./packages/babel-plugin-transform-arrow-functions"), + path.join(rootDir, "./packages/babel-plugin-transform-strict-mode"), + path.join(rootDir, "./packages/babel-plugin-transform-modules-commonjs"), ].join(","); const readDir = function (loc, filter) { @@ -49,13 +51,21 @@ const saveInFiles = function (files) { }; const normalizeOutput = function (str, cwd) { - let prev; - do { - prev = str; - str = str.replace(cwd, ""); - } while (str !== prev); - - return str.replace(/\(\d+ms\)/g, "(123ms)"); + let result = str + .replace(/\(\d+ms\)/g, "(123ms)") + .replace(new RegExp(escapeRegExp(cwd), "g"), "") + // (non-win32) /foo/babel/packages -> /packages + // (win32) C:\foo\babel\packages -> \packages + .replace(new RegExp(escapeRegExp(rootDir), "g"), ""); + if (process.platform === "win32") { + result = result + // C:\\foo\\babel\\packages -> \\packages (in js string literal) + .replace( + new RegExp(escapeRegExp(rootDir.replace(/\\/g, "\\\\")), "g"), + "", + ); + } + return result; }; const assertTest = function (stdout, stderr, opts, cwd) { @@ -131,8 +141,9 @@ const buildTest = function (binName, testName, opts) { } args = args.concat(opts.args); + const env = { ...process.env, ...opts.env }; - const spawn = child.spawn(process.execPath, args); + const spawn = child.spawn(process.execPath, args, { env }); let stderr = ""; let stdout = ""; diff --git a/packages/babel-compat-data/data/native-modules.json b/packages/babel-compat-data/data/native-modules.json index 980db7b7d21b..4ede11b4dd97 100644 --- a/packages/babel-compat-data/data/native-modules.json +++ b/packages/babel-compat-data/data/native-modules.json @@ -1,15 +1,16 @@ { "es6.module": { + "chrome": "61", + "and_chr": "61", "edge": "16", "firefox": "60", - "chrome": "61", - "safari": "10.1", + "and_ff": "60", + "node": "13.2.0", "opera": "48", - "ios_saf": "10.3", - "android": "61", "op_mob": "48", - "and_chr": "61", - "and_ff": "60", - "samsung": "8.2" + "safari": "10.1", + "ios_saf": "10.3", + "samsung": "8.2", + "android": "61" } } diff --git a/packages/babel-compat-data/data/plugin-bugfixes.json b/packages/babel-compat-data/data/plugin-bugfixes.json index 1768229cc446..e7c13dc5129d 100644 --- a/packages/babel-compat-data/data/plugin-bugfixes.json +++ b/packages/babel-compat-data/data/plugin-bugfixes.json @@ -109,7 +109,7 @@ "node": "4", "ios": "9", "samsung": "3.4", - "electron": "0.22" + "electron": "0.21" }, "bugfix/transform-tagged-template-caching": { "chrome": "41", @@ -120,6 +120,6 @@ "node": "4", "ios": "13", "samsung": "3.4", - "electron": "0.22" + "electron": "0.21" } } diff --git a/packages/babel-compat-data/data/plugins.json b/packages/babel-compat-data/data/plugins.json index 06ce685acc0e..5664681d2214 100644 --- a/packages/babel-compat-data/data/plugins.json +++ b/packages/babel-compat-data/data/plugins.json @@ -1,4 +1,17 @@ { + "proposal-class-properties": { + "chrome": "74", + "opera": "61", + "edge": "79", + "node": "12", + "samsung": "11", + "electron": "6" + }, + "proposal-private-methods": { + "chrome": "84", + "edge": "84", + "electron": "10" + }, "proposal-numeric-separator": { "chrome": "75", "opera": "62", @@ -10,16 +23,11 @@ "samsung": "11", "electron": "6" }, - "proposal-class-properties": { - "chrome": "74", - "opera": "61", - "edge": "79", - "node": "12", - "electron": "6.1" - }, - "proposal-private-methods": { - "chrome": "84", - "opera": "71" + "proposal-logical-assignment-operators": { + "chrome": "85", + "firefox": "79", + "safari": "14", + "electron": "10" }, "proposal-nullish-coalescing-operator": { "chrome": "80", @@ -28,7 +36,8 @@ "firefox": "72", "safari": "13.1", "node": "14", - "electron": "8.1" + "ios": "13.4", + "electron": "8" }, "proposal-optional-chaining": { "chrome": "80", @@ -37,7 +46,8 @@ "firefox": "74", "safari": "13.1", "node": "14", - "electron": "8.1" + "ios": "13.4", + "electron": "8" }, "proposal-json-strings": { "chrome": "66", @@ -120,6 +130,7 @@ "chrome": "64", "opera": "51", "edge": "79", + "firefox": "78", "safari": "11.1", "node": "10", "ios": "11.3", @@ -157,7 +168,7 @@ "node": "4", "ios": "13", "samsung": "3.4", - "electron": "0.22" + "electron": "0.21" }, "transform-literals": { "chrome": "44", @@ -202,7 +213,7 @@ "ie": "11", "ios": "10", "samsung": "3.4", - "electron": "0.22" + "electron": "0.21" }, "transform-classes": { "chrome": "46", @@ -235,7 +246,7 @@ "node": "4", "ios": "9", "samsung": "4", - "electron": "0.28" + "electron": "0.27" }, "transform-duplicate-keys": { "chrome": "42", @@ -410,5 +421,13 @@ "phantom": "2", "samsung": "1", "electron": "0.20" + }, + "proposal-export-namespace-from": { + "chrome": "72", + "edge": "79", + "opera": "60", + "firefox": "80", + "node": "13.2", + "samsung": "11.0" } } diff --git a/packages/babel-compat-data/package.json b/packages/babel-compat-data/package.json index c063c4a38f30..73382ded119f 100644 --- a/packages/babel-compat-data/package.json +++ b/packages/babel-compat-data/package.json @@ -1,6 +1,6 @@ { "name": "@babel/compat-data", - "version": "7.10.4", + "version": "7.11.0", "author": "The Babel Team (https://babeljs.io/team)", "license": "MIT", "description": "", @@ -15,12 +15,13 @@ "exports": { "./plugins": "./data/plugins.json", "./native-modules": "./data/native-modules.json", + "./corejs2-built-ins": "./data/corejs2-built-ins.json", "./corejs3-shipped-proposals": "./data/corejs3-shipped-proposals.json", "./overlapping-plugins": "./data/overlapping-plugins.json", "./plugin-bugfixes": "./data/plugin-bugfixes.json" }, "scripts": { - "build-data": "./scripts/download-compat-table.sh; node ./scripts/build-data.js; node ./scripts/build-modules-support.js; node ./scripts/build-bugfixes-targets.js" + "build-data": "./scripts/download-compat-table.sh && node ./scripts/build-data.js && node ./scripts/build-modules-support.js && node ./scripts/build-bugfixes-targets.js" }, "keywords": [ "babel", @@ -34,8 +35,8 @@ }, "devDependencies": { "@babel/helper-compilation-targets": "workspace:^7.10.4", - "caniuse-db": "1.0.30001035", - "electron-to-chromium": "1.3.377", - "lodash": "^4.17.15" + "electron-to-chromium": "1.3.513", + "lodash": "^4.17.19", + "mdn-browser-compat-data": "1.0.31" } } diff --git a/packages/babel-compat-data/scripts/build-corejs3-proposals.js b/packages/babel-compat-data/scripts/build-corejs3-proposals.js index 80cecb1b36a6..e3b4d867a4f7 100644 --- a/packages/babel-compat-data/scripts/build-corejs3-proposals.js +++ b/packages/babel-compat-data/scripts/build-corejs3-proposals.js @@ -25,10 +25,10 @@ const builtInDefinitionsPath = path.join( const builtInDefinitions = fs.readFileSync(builtInDefinitionsPath, "utf-8"); for (const feature of finishedProposals) { - const standarizedName = feature.replace("esnext.", "es."); - if (!builtInDefinitions.includes(standarizedName)) { + const standardizedName = feature.replace("esnext.", "es."); + if (!builtInDefinitions.includes(standardizedName)) { console.log( - `${feature} is now standarized as ${standarizedName}, please add "${standarizedName}" to "${builtInDefinitionsPath}"` + `${feature} is now standarized as ${standardizedName}, please add "${standardizedName}" to "${builtInDefinitionsPath}"` ); } } diff --git a/packages/babel-compat-data/scripts/build-modules-support.js b/packages/babel-compat-data/scripts/build-modules-support.js index ac7eee8d7fef..8ca691cdd6fb 100644 --- a/packages/babel-compat-data/scripts/build-modules-support.js +++ b/packages/babel-compat-data/scripts/build-modules-support.js @@ -1,40 +1,59 @@ const path = require("path"); const fs = require("fs"); -const moduleSupport = require("caniuse-db/features-json/es6-module.json"); - -const acceptedWithCaveats = new Set(["safari", "ios_saf"]); +const compatData = require("mdn-browser-compat-data").javascript; +// Map mdn-browser-compat-data to browserslist browser names const browserNameMap = { - and_chr: "chrome", - and_ff: "firefox", - android: "chrome", // map to chrome here as Android WebView 61 is Chromium-based - op_mob: "opera", + chrome_android: "and_chr", + firefox_android: "and_ff", + safari_ios: "ios_saf", + nodejs: "node", + webview_android: "android", + opera_android: "op_mob", + samsunginternet_android: "samsung", +}; + +const browserSupportMap = { + android: "chrome_android", // map to chrome here as Android WebView 61 is Chromium-based }; -const { stats } = moduleSupport; - -const allowedBrowsers = {}; - -Object.keys(stats).forEach(browser => { - const browserName = browserNameMap[browser] || browser; - const browserVersions = stats[browserName]; - const allowedVersions = Object.keys(browserVersions) - .filter(value => { - // Edge 16/17 are marked as "y #6" - return acceptedWithCaveats.has(browserName) - ? browserVersions[value][0] === "a" - : browserVersions[value].startsWith("y"); - }) - .sort((a, b) => a - b); - - if (allowedVersions[0] !== undefined) { - // Handle cases where caniuse specifies version as: "11.0-11.2" - allowedBrowsers[browser] = allowedVersions[0].split("-")[0]; + +function browserVersion(browser, version_added) { + if (browser === "samsunginternet_android" && version_added === "8.0") { + return "8.2"; // samsung 8.0 is not defined in browserslist } -}); + // fixme: preset-env maps opera_android as opera, this is incorrect as they have different engine mappings + // see https://github.com/mdn/browser-compat-data/blob/master/browsers/opera_android.json + if (browser === "opera_android" && version_added === "45") { + return "48"; + } + return version_added; +} + +function process(source) { + const stats = source.__compat.support; + const allowedBrowsers = {}; + + Object.keys(stats).forEach(browser => { + const browserName = browserNameMap[browser] || browser; + let browserSupport = stats[browserSupportMap[browserName] || browser]; + if (Array.isArray(browserSupport)) { + browserSupport = browserSupport[0]; // The first item is the most progressive support + } + if (browserSupport.version_added && !browserSupport.flags) { + allowedBrowsers[browserName] = browserVersion( + browser, + browserSupport.version_added + ); + } + }); + + return allowedBrowsers; +} const dataPath = path.join(__dirname, "../data/native-modules.json"); const data = { - "es6.module": allowedBrowsers, + "es6.module": process(compatData.statements.export), }; fs.writeFileSync(dataPath, `${JSON.stringify(data, null, 2)}\n`); +exports.process = process; diff --git a/packages/babel-compat-data/scripts/data/plugin-features.js b/packages/babel-compat-data/scripts/data/plugin-features.js index b780251b085a..2e6c23a0e8f8 100644 --- a/packages/babel-compat-data/scripts/data/plugin-features.js +++ b/packages/babel-compat-data/scripts/data/plugin-features.js @@ -122,10 +122,19 @@ const es2020 = { "proposal-optional-chaining": "optional chaining operator (?.)", }; -const shippedProposal = { +const es2021 = { "proposal-numeric-separator": "numeric separator", + "proposal-logical-assignment-operators": "Logical Assignment", +}; + +const shippedProposal = { "proposal-class-properties": { - features: ["static class fields", "instance class fields"], + features: [ + "static class fields", + "instance class fields, public instance class fields", + "instance class fields, private instance class fields basic support", + "instance class fields, computed instance class fields", + ], }, "proposal-private-methods": "private class methods", }; @@ -134,6 +143,7 @@ const shippedProposal = { module.exports = Object.assign( {}, shippedProposal, + es2021, es2020, es2019, es2015Parameter, diff --git a/packages/babel-compat-data/scripts/download-compat-table.sh b/packages/babel-compat-data/scripts/download-compat-table.sh index bf8de677684a..daf9e60c8f75 100755 --- a/packages/babel-compat-data/scripts/download-compat-table.sh +++ b/packages/babel-compat-data/scripts/download-compat-table.sh @@ -1,7 +1,7 @@ #!/bin/bash set -e -COMPAT_TABLE_COMMIT=50e5424d113869b08911a5df956d0e931722e5b5 +COMPAT_TABLE_COMMIT=163aacb6f93e325231d578e31c03141cd9086dbb GIT_HEAD=build/compat-table/.git/HEAD if [ -d "build/compat-table" ]; then @@ -16,5 +16,5 @@ fi rm -rf build/compat-table mkdir -p build -git clone --branch=gh-pages --single-branch --shallow-since=2020-04-01 https://github.com/kangax/compat-table.git build/compat-table -cd build/compat-table && git checkout -qf $COMPAT_TABLE_COMMIT +git clone --single-branch --shallow-since=2020-04-01 https://github.com/kangax/compat-table.git build/compat-table +cd build/compat-table && git checkout -q $COMPAT_TABLE_COMMIT diff --git a/packages/babel-core/package.json b/packages/babel-core/package.json index 6c11b0c13645..3047669b4997 100644 --- a/packages/babel-core/package.json +++ b/packages/babel-core/package.json @@ -1,6 +1,6 @@ { "name": "@babel/core", - "version": "7.10.4", + "version": "7.11.1", "description": "Babel compiler core.", "main": "lib/index.js", "author": "Sebastian McKenzie ", @@ -30,7 +30,7 @@ "compiler" ], "engines": { - "node": ">=10.13.0" + "node": ">=6.9.0" }, "funding": { "type": "opencollective", @@ -44,23 +44,24 @@ }, "dependencies": { "@babel/code-frame": "workspace:^7.10.4", - "@babel/generator": "workspace:^7.10.4", - "@babel/helper-module-transforms": "workspace:^7.10.4", + "@babel/generator": "workspace:^7.11.0", + "@babel/helper-module-transforms": "workspace:^7.11.0", "@babel/helpers": "workspace:^7.10.4", - "@babel/parser": "workspace:^7.10.4", + "@babel/parser": "workspace:^7.11.1", "@babel/template": "workspace:^7.10.4", - "@babel/traverse": "workspace:^7.10.4", - "@babel/types": "workspace:^7.10.4", + "@babel/traverse": "workspace:^7.11.0", + "@babel/types": "workspace:^7.11.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", - "escape-string-regexp": "^4.0.0", + "escape-string-regexp": "4.0.0", "gensync": "^1.0.0-beta.1", "json5": "^2.1.2", - "lodash": "^4.17.13", + "lodash": "^4.17.19", + "resolve": "^1.3.2", "semver": "^5.4.1", "source-map": "^0.5.0" }, "devDependencies": { - "@babel/helper-transform-fixture-test-runner": "workspace:^7.10.4" + "@babel/helper-transform-fixture-test-runner": "workspace:^7.10.5" } } diff --git a/packages/babel-core/src/config/config-chain.js b/packages/babel-core/src/config/config-chain.js index f54dc4dcd6bd..2c897139fb3d 100644 --- a/packages/babel-core/src/config/config-chain.js +++ b/packages/babel-core/src/config/config-chain.js @@ -12,6 +12,7 @@ import { type CallerMetadata, } from "./validation/options"; import pathPatternToRegex from "./pattern-to-regex"; +import { ConfigPrinter, ChainFormatter } from "./printer"; const debug = buildDebug("babel:config:config-chain"); @@ -53,6 +54,7 @@ export type ConfigContext = { root: string, envName: string, caller: CallerMetadata | void, + showConfig: boolean, }; /** @@ -81,6 +83,7 @@ export const buildPresetChainWalker: ( overrides: (preset, index) => loadPresetOverridesDescriptors(preset)(index), overridesEnv: (preset, index, envName) => loadPresetOverridesEnvDescriptors(preset)(index)(envName), + createLogger: () => () => {}, // Currently we don't support logging how preset is expanded }); const loadPresetDescriptors = makeWeakCacheSync((preset: PresetInstance) => buildRootDescriptors(preset, preset.alias, createUncachedDescriptors), @@ -134,14 +137,19 @@ export function* buildRootChain( opts: ValidatedOptions, context: ConfigContext, ): Handler { + let configReport, babelRcReport; + const programmaticLogger = new ConfigPrinter(); const programmaticChain = yield* loadProgrammaticChain( { options: opts, dirname: context.cwd, }, context, + undefined, + programmaticLogger, ); if (!programmaticChain) return null; + const programmaticReport = programmaticLogger.output(); let configFile; if (typeof opts.configFile === "string") { @@ -163,10 +171,17 @@ export function* buildRootChain( let babelrcRootsDirectory = context.cwd; const configFileChain = emptyChain(); + const configFileLogger = new ConfigPrinter(); if (configFile) { const validatedFile = validateConfigFile(configFile); - const result = yield* loadFileChain(validatedFile, context); + const result = yield* loadFileChain( + validatedFile, + context, + undefined, + configFileLogger, + ); if (!result) return null; + configReport = configFileLogger.output(); // Allow config files to toggle `.babelrc` resolution on and off and // specify where the roots are. @@ -208,16 +223,32 @@ export function* buildRootChain( } if (babelrcFile) { + const validatedFile = validateBabelrcFile(babelrcFile); + const babelrcLogger = new ConfigPrinter(); const result = yield* loadFileChain( - validateBabelrcFile(babelrcFile), + validatedFile, context, + undefined, + babelrcLogger, ); if (!result) return null; + babelRcReport = babelrcLogger.output(); mergeChain(fileChain, result); } } + if (context.showConfig) { + console.log( + // $FlowIgnore: context.showConfig implies context.filename is not null + `Babel configs on "${context.filename}" (ascending priority):\n` + + // print config by the order of ascending priority + [configReport, babelRcReport, programmaticReport] + .filter(x => !!x) + .join("\n\n"), + ); + return null; + } // Insert file chain in front so programmatic options have priority // over configuration file chain items. const chain = mergeChain( @@ -317,6 +348,8 @@ const loadProgrammaticChain = makeChainWalker({ index, envName, ), + createLogger: (input, context, baseLogger) => + buildProgrammaticLogger(input, context, baseLogger), }); /** @@ -328,6 +361,8 @@ const loadFileChain = makeChainWalker({ overrides: (file, index) => loadFileOverridesDescriptors(file)(index), overridesEnv: (file, index, envName) => loadFileOverridesEnvDescriptors(file)(index)(envName), + createLogger: (file, context, baseLogger) => + buildFileLogger(file.filepath, context, baseLogger), }); const loadFileDescriptors = makeWeakCacheSync((file: ValidatedFile) => buildRootDescriptors(file, file.filepath, createUncachedDescriptors), @@ -367,10 +402,32 @@ const loadFileOverridesEnvDescriptors = makeWeakCacheSync( ), ); +function buildFileLogger( + filepath: string, + context: ConfigContext, + baseLogger: ConfigPrinter | void, +) { + if (!baseLogger) { + return () => {}; + } + return baseLogger.configure(context.showConfig, ChainFormatter.Config, { + filepath, + }); +} + function buildRootDescriptors({ dirname, options }, alias, descriptors) { return descriptors(dirname, options, alias); } +function buildProgrammaticLogger(_, context, baseLogger: ConfigPrinter | void) { + if (!baseLogger) { + return () => {}; + } + return baseLogger.configure(context.showConfig, ChainFormatter.Programmatic, { + callerName: context.caller?.name, + }); +} + function buildEnvDescriptors( { dirname, options }, alias, @@ -418,41 +475,68 @@ function makeChainWalker({ env, overrides, overridesEnv, + createLogger, }: {| root: ArgT => OptionsAndDescriptors, env: (ArgT, string) => OptionsAndDescriptors | null, overrides: (ArgT, number) => OptionsAndDescriptors, overridesEnv: (ArgT, number, string) => OptionsAndDescriptors | null, + createLogger: ( + ArgT, + ConfigContext, + ConfigPrinter | void, + ) => (OptionsAndDescriptors, ?number, ?string) => void, |}): ( ArgT, ConfigContext, - Set | void, + files?: Set | void, + baseLogger: ConfigPrinter | void, ) => Handler { - return function* (input, context, files = new Set()) { + return function* (input, context, files = new Set(), baseLogger) { const { dirname } = input; - const flattenedConfigs = []; + const flattenedConfigs: Array<{| + config: OptionsAndDescriptors, + index: ?number, + envName: ?string, + |}> = []; const rootOpts = root(input); if (configIsApplicable(rootOpts, dirname, context)) { - flattenedConfigs.push(rootOpts); + flattenedConfigs.push({ + config: rootOpts, + envName: undefined, + index: undefined, + }); const envOpts = env(input, context.envName); if (envOpts && configIsApplicable(envOpts, dirname, context)) { - flattenedConfigs.push(envOpts); + flattenedConfigs.push({ + config: envOpts, + envName: context.envName, + index: undefined, + }); } (rootOpts.options.overrides || []).forEach((_, index) => { const overrideOps = overrides(input, index); if (configIsApplicable(overrideOps, dirname, context)) { - flattenedConfigs.push(overrideOps); + flattenedConfigs.push({ + config: overrideOps, + index, + envName: undefined, + }); const overrideEnvOpts = overridesEnv(input, index, context.envName); if ( overrideEnvOpts && configIsApplicable(overrideEnvOpts, dirname, context) ) { - flattenedConfigs.push(overrideEnvOpts); + flattenedConfigs.push({ + config: overrideEnvOpts, + index, + envName: context.envName, + }); } } }); @@ -462,7 +546,7 @@ function makeChainWalker({ // that we don't do extra work loading extended configs if a file is // ignored. if ( - flattenedConfigs.some(({ options: { ignore, only } }) => + flattenedConfigs.some(({ config: { options: { ignore, only } } }) => shouldIgnore(context, ignore, only, dirname), ) ) { @@ -470,15 +554,24 @@ function makeChainWalker({ } const chain = emptyChain(); + const logger = createLogger(input, context, baseLogger); - for (const op of flattenedConfigs) { + for (const { config, index, envName } of flattenedConfigs) { if ( - !(yield* mergeExtendsChain(chain, op.options, dirname, context, files)) + !(yield* mergeExtendsChain( + chain, + config.options, + dirname, + context, + files, + baseLogger, + )) ) { return null; } - mergeChainOpts(chain, op); + logger(config, index, envName); + mergeChainOpts(chain, config); } return chain; }; @@ -490,6 +583,7 @@ function* mergeExtendsChain( dirname: string, context: ConfigContext, files: Set, + baseLogger: ConfigPrinter | void, ): Handler { if (opts.extends === undefined) return true; @@ -513,6 +607,7 @@ function* mergeExtendsChain( validateExtendFile(file), context, files, + baseLogger, ); files.delete(file); @@ -650,22 +745,28 @@ function shouldIgnore( dirname: string, ): boolean { if (ignore && matchesPatterns(context, ignore, dirname)) { - debug( - "Ignored %o because it matched one of %O from %o", - context.filename, + const message = `No config is applied to "${ + context.filename ?? "(unknown)" + }" because it matches one of \`ignore: ${JSON.stringify( ignore, - dirname, - ); + )}\` from "${dirname}"`; + debug(message); + if (context.showConfig) { + console.log(message); + } return true; } if (only && !matchesPatterns(context, only, dirname)) { - debug( - "Ignored %o because it failed to match one of %O from %o", - context.filename, + const message = `No config is applied to "${ + context.filename ?? "(unknown)" + }" because it fails to match one of \`only: ${JSON.stringify( only, - dirname, - ); + )}\` from "${dirname}"`; + debug(message); + if (context.showConfig) { + console.log(message); + } return true; } diff --git a/packages/babel-core/src/config/files/configuration.js b/packages/babel-core/src/config/files/configuration.js index c03d0c8183bb..8a3bed914fab 100644 --- a/packages/babel-core/src/config/files/configuration.js +++ b/packages/babel-core/src/config/files/configuration.js @@ -298,6 +298,23 @@ const readIgnoreConfig = makeStaticFileCache((filepath, content) => { }; }); +export function* resolveShowConfigPath( + dirname: string, +): Handler { + const targetPath = process.env.BABEL_SHOW_CONFIG_FOR; + if (targetPath != null) { + const absolutePath = path.resolve(dirname, targetPath); + const stats = yield* fs.stat(absolutePath); + if (!stats.isFile()) { + throw new Error( + `${absolutePath}: BABEL_SHOW_CONFIG_FOR must refer to a regular file, directories are not supported.`, + ); + } + return absolutePath; + } + return null; +} + function throwConfigError(): empty { throw new Error(`\ Caching was left unconfigured. Babel's plugins, presets, and .babelrc.js files can be configured diff --git a/packages/babel-core/src/config/files/import.js b/packages/babel-core/src/config/files/import.js index d81b18f7539f..3db10a4e9e1b 100644 --- a/packages/babel-core/src/config/files/import.js +++ b/packages/babel-core/src/config/files/import.js @@ -1,5 +1,5 @@ // @flow -// We keep this in a seprate file so that in older node versions, where +// We keep this in a separate file so that in older node versions, where // import() isn't supported, we can try/catch around the require() call // when loading this file. diff --git a/packages/babel-core/src/config/files/index-browser.js b/packages/babel-core/src/config/files/index-browser.js index 8e3a8cf26ce2..2fb0b6eba1b8 100644 --- a/packages/babel-core/src/config/files/index-browser.js +++ b/packages/babel-core/src/config/files/index-browser.js @@ -58,6 +58,13 @@ export function* loadConfig( throw new Error(`Cannot load ${name} relative to ${dirname} in a browser`); } +// eslint-disable-next-line require-yield +export function* resolveShowConfigPath( + dirname: string, // eslint-disable-line no-unused-vars +): Handler { + return null; +} + export const ROOT_CONFIG_FILENAMES = []; // eslint-disable-next-line no-unused-vars diff --git a/packages/babel-core/src/config/files/index.js b/packages/babel-core/src/config/files/index.js index 464ef66253f4..2321fb7605d9 100644 --- a/packages/babel-core/src/config/files/index.js +++ b/packages/babel-core/src/config/files/index.js @@ -14,6 +14,7 @@ export { findRelativeConfig, findRootConfig, loadConfig, + resolveShowConfigPath, ROOT_CONFIG_FILENAMES, } from "./configuration"; export type { diff --git a/packages/babel-core/src/config/files/utils.js b/packages/babel-core/src/config/files/utils.js index 6a8818c2b3b1..57b60ec4914c 100644 --- a/packages/babel-core/src/config/files/utils.js +++ b/packages/babel-core/src/config/files/utils.js @@ -16,7 +16,6 @@ export function makeStaticFileCache( const cached = cache.invalidate(() => fileMtime(filepath)); if (cached === null) { - cache.forever(); return null; } diff --git a/packages/babel-core/src/config/partial.js b/packages/babel-core/src/config/partial.js index 4d8defe4b664..c0308b6fd507 100644 --- a/packages/babel-core/src/config/partial.js +++ b/packages/babel-core/src/config/partial.js @@ -15,6 +15,7 @@ import { import { findConfigUpwards, + resolveShowConfigPath, ROOT_CONFIG_FILENAMES, type ConfigFile, type IgnoreFile, @@ -81,6 +82,7 @@ export default function* loadPrivatePartialConfig( root: rootDir = ".", rootMode = "root", caller, + cloneInputAst = true, } = args; const absoluteCwd = path.resolve(cwd); const absoluteRootDir = yield* resolveRootMode( @@ -88,15 +90,20 @@ export default function* loadPrivatePartialConfig( rootMode, ); + const filename = + typeof args.filename === "string" + ? path.resolve(cwd, args.filename) + : undefined; + + const showConfigPath = yield* resolveShowConfigPath(absoluteCwd); + const context: ConfigContext = { - filename: - typeof args.filename === "string" - ? path.resolve(cwd, args.filename) - : undefined, + filename, cwd: absoluteCwd, root: absoluteRootDir, envName, caller, + showConfig: showConfigPath === filename, }; const configChain = yield* buildRootChain(args, context); @@ -110,6 +117,7 @@ export default function* loadPrivatePartialConfig( // Tack the passes onto the object itself so that, if this object is // passed back to Babel a second time, it will be in the right structure // to not change behavior. + options.cloneInputAst = cloneInputAst; options.babelrc = false; options.configFile = false; options.passPerPreset = false; diff --git a/packages/babel-core/src/config/printer.js b/packages/babel-core/src/config/printer.js new file mode 100644 index 000000000000..9f9d65787694 --- /dev/null +++ b/packages/babel-core/src/config/printer.js @@ -0,0 +1,133 @@ +// @flow + +import type { + OptionsAndDescriptors, + UnloadedDescriptor, +} from "./config-descriptors"; + +// todo: Use flow enums when @babel/transform-flow-types supports it +export const ChainFormatter = { + Programmatic: 0, + Config: 1, +}; + +type PrintableConfig = { + content: OptionsAndDescriptors, + type: $Values, + callerName: ?string, + filepath: ?string, + index: ?number, + envName: ?string, +}; + +const Formatter = { + title( + type: $Values, + callerName: ?string, + filepath: ?string, + ): string { + let title = ""; + if (type === ChainFormatter.Programmatic) { + title = "programmatic options"; + if (callerName) { + title += " from " + callerName; + } + } else { + // $FlowIgnore + title = "config " + filepath; + } + return title; + }, + loc(index: ?number, envName: ?string): string { + let loc = ""; + if (index != null) { + loc += `.overrides[${index}]`; + } + if (envName != null) { + loc += `.env["${envName}"]`; + } + return loc; + }, + + optionsAndDescriptors(opt: OptionsAndDescriptors) { + const content = { ...opt.options }; + // overrides and env will be printed as separated config items + delete content.overrides; + delete content.env; + // resolve to descriptors + const pluginDescriptors = [...opt.plugins()]; + if (pluginDescriptors.length) { + content.plugins = pluginDescriptors.map(d => descriptorToConfig(d)); + } + const presetDescriptors = [...opt.presets()]; + if (presetDescriptors.length) { + content.presets = [...presetDescriptors].map(d => descriptorToConfig(d)); + } + return JSON.stringify(content, undefined, 2); + }, +}; + +function descriptorToConfig(d: UnloadedDescriptor): string | {} | Array { + let name = d.file?.request; + if (name == null) { + if (typeof d.value === "object") { + name = d.value; + } else if (typeof d.value === "function") { + // If the unloaded descriptor is a function, i.e. `plugins: [ require("my-plugin") ]`, + // we print the first 50 characters of the function source code and hopefully we can see + // `name: 'my-plugin'` in the source + name = `[Function: ${d.value.toString().substr(0, 50)} ... ]`; + } + } + if (name == null) { + name = "[Unknown]"; + } + if (d.options === undefined) { + return name; + } else if (d.name == null) { + return [name, d.options]; + } else { + return [name, d.options, d.name]; + } +} + +export class ConfigPrinter { + _stack: Array = []; + configure( + enabled: boolean, + type: $Values, + { callerName, filepath }: { callerName?: string, filepath?: string }, + ) { + if (!enabled) return () => {}; + return ( + content: OptionsAndDescriptors, + index: ?number, + envName: ?string, + ) => { + this._stack.push({ + type, + callerName, + filepath, + content, + index, + envName, + }); + }; + } + static format(config: PrintableConfig): string { + let title = Formatter.title( + config.type, + config.callerName, + config.filepath, + ); + const loc = Formatter.loc(config.index, config.envName); + if (loc) title += ` ${loc}`; + const content = Formatter.optionsAndDescriptors(config.content); + return `${title}\n${content}`; + } + + output(): string { + if (this._stack.length === 0) return ""; + return this._stack.map(s => ConfigPrinter.format(s)).join("\n\n"); + } +} diff --git a/packages/babel-core/src/config/validation/options.js b/packages/babel-core/src/config/validation/options.js index d4500a747c26..df09c90deab2 100644 --- a/packages/babel-core/src/config/validation/options.js +++ b/packages/babel-core/src/config/validation/options.js @@ -51,6 +51,10 @@ const ROOT_VALIDATORS: ValidatorSet = { code: (assertBoolean: Validator<$PropertyType>), ast: (assertBoolean: Validator<$PropertyType>), + cloneInputAst: (assertBoolean: Validator< + $PropertyType, + >), + envName: (assertString: Validator< $PropertyType, >), @@ -184,6 +188,7 @@ export type ValidatedOptions = { rootMode?: RootMode, code?: boolean, ast?: boolean, + cloneInputAst?: boolean, inputSourceMap?: RootInputSourceMapOption, envName?: string, caller?: CallerMetadata, diff --git a/packages/babel-core/src/gensync-utils/async.js b/packages/babel-core/src/gensync-utils/async.js index a7d70c47bc7c..2b474aeed692 100644 --- a/packages/babel-core/src/gensync-utils/async.js +++ b/packages/babel-core/src/gensync-utils/async.js @@ -10,7 +10,7 @@ const runGenerator = gensync(function* (item) { return yield* item; }); -// This Gensync returns true if the current execution contect is +// This Gensync returns true if the current execution context is // asynchronous, otherwise it returns false. export const isAsync = gensync<[], boolean>({ sync: () => false, diff --git a/packages/babel-core/src/gensync-utils/fs.js b/packages/babel-core/src/gensync-utils/fs.js index 6b8f60c7b145..172fa6a9d024 100644 --- a/packages/babel-core/src/gensync-utils/fs.js +++ b/packages/babel-core/src/gensync-utils/fs.js @@ -19,3 +19,8 @@ export const exists = gensync<[string], boolean>({ }, errback: (path, cb) => fs.access(path, undefined, err => cb(null, !err)), }); + +export const stat = gensync<[string], *>({ + sync: fs.statSync, + errback: fs.stat, +}); diff --git a/packages/babel-core/src/parser/util/missing-plugin-helper.js b/packages/babel-core/src/parser/util/missing-plugin-helper.js index b1bb30c0742f..3604877bd250 100644 --- a/packages/babel-core/src/parser/util/missing-plugin-helper.js +++ b/packages/babel-core/src/parser/util/missing-plugin-helper.js @@ -31,6 +31,12 @@ const pluginNameMap = { url: "https://git.io/JvpRG", }, }, + decimal: { + syntax: { + name: "@babel/plugin-syntax-decimal", + url: "https://git.io/JfKOH", + }, + }, decorators: { syntax: { name: "@babel/plugin-syntax-decorators", @@ -107,16 +113,6 @@ const pluginNameMap = { url: "https://git.io/JfeDR", }, }, - logicalAssignment: { - syntax: { - name: "@babel/plugin-syntax-logical-assignment-operators", - url: "https://git.io/vAlBp", - }, - transform: { - name: "@babel/plugin-proposal-logical-assignment-operators", - url: "https://git.io/vAlRe", - }, - }, moduleAttributes: { syntax: { name: "@babel/plugin-syntax-module-attributes", diff --git a/packages/babel-core/src/transformation/normalize-file.js b/packages/babel-core/src/transformation/normalize-file.js index 69afea4f9fd6..aca84e1e4e95 100644 --- a/packages/babel-core/src/transformation/normalize-file.js +++ b/packages/babel-core/src/transformation/normalize-file.js @@ -34,7 +34,11 @@ export default function* normalizeFile( } else if (ast.type !== "File") { throw new Error("AST root must be a Program or File node"); } - ast = cloneDeep(ast); + + const { cloneInputAst } = options; + if (cloneInputAst) { + ast = cloneDeep(ast); + } } else { ast = yield* parser(pluginPasses, options, code); } diff --git a/packages/babel-core/test/api.js b/packages/babel-core/test/api.js index d3ad7ea3beb6..a0218991af03 100644 --- a/packages/babel-core/test/api.js +++ b/packages/babel-core/test/api.js @@ -214,6 +214,31 @@ describe("api", function () { ); }); + it("transformFromAst should mutate the AST when cloneInputAst is false", function () { + const program = "const identifier = 1"; + const node = parse(program); + const { code } = transformFromAst(node, program, { + cloneInputAst: false, + plugins: [ + function () { + return { + visitor: { + Identifier: function (path) { + path.node.name = "replaced"; + }, + }, + }; + }, + ], + }); + + expect(code).toBe("const replaced = 1;"); + expect(node.program.body[0].declarations[0].id.name).toBe( + "replaced", + "original ast should have been mutated", + ); + }); + it("options throw on falsy true", function () { return expect(function () { transform("", { @@ -779,10 +804,10 @@ describe("api", function () { options, function (err) { expect(err.message).toMatch( - "Support for the experimental syntax 'logicalAssignment' isn't currently enabled (1:3):", + "Support for the experimental syntax 'doExpressions' isn't currently enabled (1:2):", ); expect(err.message).toMatch( - "Add @babel/plugin-proposal-logical-assignment-operators (https://git.io/vAlRe) to the " + + "Add @babel/plugin-proposal-do-expressions (https://git.io/vb4S3) to the " + "'plugins' section of your Babel config to enable transformation.", ); done(); diff --git a/packages/babel-core/test/config-chain.js b/packages/babel-core/test/config-chain.js index 6cd6f2a351e8..5734583bfe6c 100644 --- a/packages/babel-core/test/config-chain.js +++ b/packages/babel-core/test/config-chain.js @@ -951,6 +951,7 @@ describe("buildConfigChain", function () { passPerPreset: false, plugins: [], presets: [], + cloneInputAst: true, }); const realEnv = process.env.NODE_ENV; const realBabelEnv = process.env.BABEL_ENV; diff --git a/packages/babel-core/test/fixtures/api/parsing-errors/syntax-and-transform/file.js b/packages/babel-core/test/fixtures/api/parsing-errors/syntax-and-transform/file.js index 0cb4253cd41b..9fbdc7e7442f 100644 --- a/packages/babel-core/test/fixtures/api/parsing-errors/syntax-and-transform/file.js +++ b/packages/babel-core/test/fixtures/api/parsing-errors/syntax-and-transform/file.js @@ -1 +1,3 @@ -a ||= 2; +(do { + x; +}); diff --git a/packages/babel-core/test/fixtures/plugins/multiple-definition-evaluation/exec.js b/packages/babel-core/test/fixtures/plugins/multiple-definition-evaluation/exec.js index 522d97637c23..2d8f08b6c655 100644 --- a/packages/babel-core/test/fixtures/plugins/multiple-definition-evaluation/exec.js +++ b/packages/babel-core/test/fixtures/plugins/multiple-definition-evaluation/exec.js @@ -1,8 +1,8 @@ -var code = multiline([ - "function foo() {", - " var a = a ? a : a;", - "}", -]); +var code = ` + function foo() { + var a = a ? a : a; + } +`; transform(code, { plugins: [ diff --git a/packages/babel-core/test/fixtures/plugins/regression-2772/exec.js b/packages/babel-core/test/fixtures/plugins/regression-2772/exec.js index b38b6197d9c5..b88b1876f2d0 100644 --- a/packages/babel-core/test/fixtures/plugins/regression-2772/exec.js +++ b/packages/babel-core/test/fixtures/plugins/regression-2772/exec.js @@ -1,12 +1,12 @@ -var code = multiline([ - "(function() {", - " var bar = 'lol';", - " function foo(b){", - " b === bar;", - " foo(b);", - " }", - "})();", -]); +var code = ` + (function() { + var bar = 'lol'; + function foo(b){ + b === bar + foo(b); + } + })(); +`; transform(code, { plugins: [ diff --git a/packages/babel-generator/package.json b/packages/babel-generator/package.json index c01b249fbcb1..759131b0bb3a 100644 --- a/packages/babel-generator/package.json +++ b/packages/babel-generator/package.json @@ -1,6 +1,6 @@ { "name": "@babel/generator", - "version": "7.10.4", + "version": "7.11.0", "description": "Turns an AST into code.", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -18,13 +18,12 @@ "lib" ], "dependencies": { - "@babel/types": "workspace:^7.10.4", - "jsesc": "^3.0.1", - "lodash": "^4.17.13", + "@babel/types": "workspace:^7.11.0", + "jsesc": "^2.5.1", "source-map": "^0.5.0" }, "devDependencies": { - "@babel/helper-fixtures": "workspace:^7.10.4", - "@babel/parser": "workspace:^7.10.4" + "@babel/helper-fixtures": "workspace:^7.10.5", + "@babel/parser": "workspace:^7.11.0" } } diff --git a/packages/babel-generator/src/generators/methods.js b/packages/babel-generator/src/generators/methods.js index 1019aba04c7c..ea656b8b0c1f 100644 --- a/packages/babel-generator/src/generators/methods.js +++ b/packages/babel-generator/src/generators/methods.js @@ -37,6 +37,8 @@ export function _methodHead(node: Object) { } if (node.async) { + // ensure `async` is in the same line with property name + this._catchUp("start", key.loc); this.word("async"); this.space(); } @@ -112,7 +114,7 @@ export function ArrowFunctionExpression(node: Object) { !hasTypes(node, firstParam) ) { if ( - this.format.retainLines && + (this.format.retainLines || node.async) && node.loc && node.body.loc && node.loc.start.line < node.body.loc.start.line diff --git a/packages/babel-generator/src/generators/statements.js b/packages/babel-generator/src/generators/statements.js index 24f9a2dbe5cd..dbeb45bf32b9 100644 --- a/packages/babel-generator/src/generators/statements.js +++ b/packages/babel-generator/src/generators/statements.js @@ -174,6 +174,7 @@ export function CatchClause(node: Object) { if (node.param) { this.token("("); this.print(node.param, node); + this.print(node.param.typeAnnotation, node); this.token(")"); this.space(); } diff --git a/packages/babel-generator/src/generators/types.js b/packages/babel-generator/src/generators/types.js index 55a0fa4afcdd..db367938cf92 100644 --- a/packages/babel-generator/src/generators/types.js +++ b/packages/babel-generator/src/generators/types.js @@ -218,6 +218,15 @@ export function BigIntLiteral(node: Object) { this.token(node.value + "n"); } +export function DecimalLiteral(node: Object) { + const raw = this.getPossibleRaw(node); + if (!this.format.minified && raw != null) { + this.token(raw); + return; + } + this.token(node.value + "m"); +} + export function PipelineTopicExpression(node: Object) { this.print(node.expression, node); } diff --git a/packages/babel-generator/src/generators/typescript.js b/packages/babel-generator/src/generators/typescript.js index 39c580d74d2f..ea3e2218437d 100644 --- a/packages/babel-generator/src/generators/typescript.js +++ b/packages/babel-generator/src/generators/typescript.js @@ -262,6 +262,14 @@ export function TSRestType(node) { this.print(node.typeAnnotation, node); } +export function TSNamedTupleMember(node) { + this.print(node.label, node); + if (node.optional) this.token("?"); + this.token(":"); + this.space(); + this.print(node.elementType, node); +} + export function TSUnionType(node) { this.tsPrintUnionOrIntersectionType(node, "|"); } diff --git a/packages/babel-generator/src/printer.js b/packages/babel-generator/src/printer.js index bed3698545c7..83a0321a0a70 100644 --- a/packages/babel-generator/src/printer.js +++ b/packages/babel-generator/src/printer.js @@ -1,5 +1,3 @@ -import isInteger from "lodash/isInteger"; -import repeat from "lodash/repeat"; import Buffer from "./buffer"; import * as n from "./node"; import * as t from "@babel/types"; @@ -138,7 +136,7 @@ export default class Printer { // Integer tokens need special handling because they cannot have '.'s inserted // immediately after them. this._endsWithInteger = - isInteger(+str) && + Number.isInteger(+str) && !NON_DECIMAL_LITERAL.test(str) && !SCIENTIFIC_NOTATION.test(str) && !ZERO_DECIMAL_INTEGER.test(str) && @@ -324,7 +322,7 @@ export default class Printer { */ _getIndent(): string { - return repeat(this.format.indent.style, this._indent); + return this.format.indent.style.repeat(this._indent); } /** @@ -616,7 +614,7 @@ export default class Printer { this._getIndent().length, this._buf.getCurrentColumn(), ); - val = val.replace(/\n(?!$)/g, `\n${repeat(" ", indentSize)}`); + val = val.replace(/\n(?!$)/g, `\n${" ".repeat(indentSize)}`); } // Avoid creating //* comments diff --git a/packages/babel-generator/test/fixtures/minified/decimal-literal/input.js b/packages/babel-generator/test/fixtures/minified/decimal-literal/input.js new file mode 100644 index 000000000000..bde8a9a31991 --- /dev/null +++ b/packages/babel-generator/test/fixtures/minified/decimal-literal/input.js @@ -0,0 +1,5 @@ +100m; +9223372036854775807m; +0.m; +3.1415926535897932m; +100.000m; diff --git a/packages/babel-generator/test/fixtures/minified/decimal-literal/options.json b/packages/babel-generator/test/fixtures/minified/decimal-literal/options.json new file mode 100644 index 000000000000..739605a4b674 --- /dev/null +++ b/packages/babel-generator/test/fixtures/minified/decimal-literal/options.json @@ -0,0 +1,4 @@ +{ + "plugins": ["decimal"], + "minified": true +} diff --git a/packages/babel-generator/test/fixtures/minified/decimal-literal/output.js b/packages/babel-generator/test/fixtures/minified/decimal-literal/output.js new file mode 100644 index 000000000000..99661ce6bcf6 --- /dev/null +++ b/packages/babel-generator/test/fixtures/minified/decimal-literal/output.js @@ -0,0 +1 @@ +100m;9223372036854775807m;0.m;3.1415926535897932m;100.000m; \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/minified/literals/input.js b/packages/babel-generator/test/fixtures/minified/literals/input.js index 8799ed5e7c20..948f8502b01c 100644 --- a/packages/babel-generator/test/fixtures/minified/literals/input.js +++ b/packages/babel-generator/test/fixtures/minified/literals/input.js @@ -6,7 +6,8 @@ '\x20'; "\n\r"; "😂"; -"\uD83D_\uDE02" +// TODO: Uncomment this line +//"\uD83D_\uDE02" `😂`; /foobar/g; null; diff --git a/packages/babel-generator/test/fixtures/minified/literals/output.js b/packages/babel-generator/test/fixtures/minified/literals/output.js index 82fa0cfb8604..975ae8f31222 100644 --- a/packages/babel-generator/test/fixtures/minified/literals/output.js +++ b/packages/babel-generator/test/fixtures/minified/literals/output.js @@ -1 +1,3 @@ -5;5;50;5e4;"foobar";" ";"\n\r";"😂";"\uD83D_\uDE02"`😂`;/foobar/g;null;true;false;5;2;56;31; +5;5;50;5e4;"foobar";" ";"\n\r";"😂";// TODO: Uncomment this line +//"\uD83D_\uDE02" +`😂`;/foobar/g;null;true;false;5;2;56;31; \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/parentheses/async-arrow-function/input.js b/packages/babel-generator/test/fixtures/parentheses/async-arrow-function/input.js new file mode 100644 index 000000000000..e47e7f048eb5 --- /dev/null +++ b/packages/babel-generator/test/fixtures/parentheses/async-arrow-function/input.js @@ -0,0 +1,10 @@ +const x = async ( + // some comment + a +) => { + return foo(await a); +}; + +function foo(a) { + return a; +} diff --git a/packages/babel-generator/test/fixtures/parentheses/async-arrow-function/options.json b/packages/babel-generator/test/fixtures/parentheses/async-arrow-function/options.json new file mode 100644 index 000000000000..0967ef424bce --- /dev/null +++ b/packages/babel-generator/test/fixtures/parentheses/async-arrow-function/options.json @@ -0,0 +1 @@ +{} diff --git a/packages/babel-generator/test/fixtures/parentheses/async-arrow-function/output.js b/packages/babel-generator/test/fixtures/parentheses/async-arrow-function/output.js new file mode 100644 index 000000000000..eaf8a9076d5a --- /dev/null +++ b/packages/babel-generator/test/fixtures/parentheses/async-arrow-function/output.js @@ -0,0 +1,8 @@ +const x = async ( // some comment + a) => { + return foo(await a); +}; + +function foo(a) { + return a; +} diff --git a/packages/babel-generator/test/fixtures/regression/11870/input.js b/packages/babel-generator/test/fixtures/regression/11870/input.js new file mode 100644 index 000000000000..810351d6e237 --- /dev/null +++ b/packages/babel-generator/test/fixtures/regression/11870/input.js @@ -0,0 +1,4 @@ +class Test { + @TestDecorator + async decorateMe() {} +} diff --git a/packages/babel-generator/test/fixtures/regression/11870/options.json b/packages/babel-generator/test/fixtures/regression/11870/options.json new file mode 100644 index 000000000000..f60ee7d59843 --- /dev/null +++ b/packages/babel-generator/test/fixtures/regression/11870/options.json @@ -0,0 +1,4 @@ +{ + "retainLines": true, + "plugins": [["decorators", { "decoratorsBeforeExport": true }]] +} diff --git a/packages/babel-generator/test/fixtures/regression/11870/output.js b/packages/babel-generator/test/fixtures/regression/11870/output.js new file mode 100644 index 000000000000..7dee47804925 --- /dev/null +++ b/packages/babel-generator/test/fixtures/regression/11870/output.js @@ -0,0 +1,3 @@ +class Test { + @TestDecorator + async decorateMe() {}} \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/types/DecimalLiteral/input.js b/packages/babel-generator/test/fixtures/types/DecimalLiteral/input.js new file mode 100644 index 000000000000..bde8a9a31991 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/DecimalLiteral/input.js @@ -0,0 +1,5 @@ +100m; +9223372036854775807m; +0.m; +3.1415926535897932m; +100.000m; diff --git a/packages/babel-generator/test/fixtures/types/DecimalLiteral/options.json b/packages/babel-generator/test/fixtures/types/DecimalLiteral/options.json new file mode 100644 index 000000000000..f4a30fe3d611 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/DecimalLiteral/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["decimal"] +} diff --git a/packages/babel-generator/test/fixtures/types/DecimalLiteral/output.js b/packages/babel-generator/test/fixtures/types/DecimalLiteral/output.js new file mode 100644 index 000000000000..b03e65f9b1eb --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/DecimalLiteral/output.js @@ -0,0 +1,5 @@ +100m; +9223372036854775807m; +0.m; +3.1415926535897932m; +100.000m; \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/typescript/catch-param-type/input.js b/packages/babel-generator/test/fixtures/typescript/catch-param-type/input.js new file mode 100644 index 000000000000..76318908d8b3 --- /dev/null +++ b/packages/babel-generator/test/fixtures/typescript/catch-param-type/input.js @@ -0,0 +1,2 @@ +try {} catch (e: unknown) {} +try {} catch (e: any) {} diff --git a/packages/babel-generator/test/fixtures/typescript/catch-param-type/output.js b/packages/babel-generator/test/fixtures/typescript/catch-param-type/output.js new file mode 100644 index 000000000000..e9e71a8acf93 --- /dev/null +++ b/packages/babel-generator/test/fixtures/typescript/catch-param-type/output.js @@ -0,0 +1,3 @@ +try {} catch (e: unknown) {} + +try {} catch (e: any) {} \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/typescript/tuple-labeled/input.js b/packages/babel-generator/test/fixtures/typescript/tuple-labeled/input.js new file mode 100644 index 000000000000..a8d132c09bd3 --- /dev/null +++ b/packages/babel-generator/test/fixtures/typescript/tuple-labeled/input.js @@ -0,0 +1 @@ +type T = [x: A, y?: B, ...z: C]; diff --git a/packages/babel-generator/test/fixtures/typescript/tuple-labeled/output.js b/packages/babel-generator/test/fixtures/typescript/tuple-labeled/output.js new file mode 100644 index 000000000000..b9111dbd9aa6 --- /dev/null +++ b/packages/babel-generator/test/fixtures/typescript/tuple-labeled/output.js @@ -0,0 +1 @@ +type T = [x: A, y?: B, ...z: C]; \ No newline at end of file diff --git a/packages/babel-generator/test/index.js b/packages/babel-generator/test/index.js index 54ff79c919d7..efa61fe19430 100644 --- a/packages/babel-generator/test/index.js +++ b/packages/babel-generator/test/index.js @@ -463,32 +463,32 @@ describe("programmatic generation", function () { describe("typescript generate parentheses if necessary", function () { it("wraps around union for array", () => { - const typeStatement = t.TSArrayType( - t.TSUnionType([ - t.TSIntersectionType([t.TSNumberKeyword(), t.TSBooleanKeyword()]), - t.TSNullKeyword(), + const typeStatement = t.tsArrayType( + t.tsUnionType([ + t.tsIntersectionType([t.tsNumberKeyword(), t.tsBooleanKeyword()]), + t.tsNullKeyword(), ]), ); const output = generate(typeStatement).code; expect(output).toBe("((number & boolean) | null)[]"); }); it("wraps around intersection for array", () => { - const typeStatement = t.TSArrayType( - t.TSIntersectionType([t.TSNumberKeyword(), t.TSBooleanKeyword()]), + const typeStatement = t.tsArrayType( + t.tsIntersectionType([t.tsNumberKeyword(), t.tsBooleanKeyword()]), ); const output = generate(typeStatement).code; expect(output).toBe("(number & boolean)[]"); }); it("wraps around rest", () => { const typeStatement = t.tsRestType( - t.TSIntersectionType([t.TSNumberKeyword(), t.TSBooleanKeyword()]), + t.tsIntersectionType([t.tsNumberKeyword(), t.tsBooleanKeyword()]), ); const output = generate(typeStatement).code; expect(output).toBe("...(number & boolean)"); }); it("wraps around optional type", () => { const typeStatement = t.tsOptionalType( - t.TSIntersectionType([t.TSNumberKeyword(), t.TSBooleanKeyword()]), + t.tsIntersectionType([t.tsNumberKeyword(), t.tsBooleanKeyword()]), ); const output = generate(typeStatement).code; expect(output).toBe("(number & boolean)?"); @@ -559,7 +559,9 @@ suites.forEach(function (testSuite) { console.log(`New test file created: ${expected.loc}`); fs.writeFileSync(expected.loc, result.code); } else { - expect(result.code).toBe(expected.code); + expect(Array.from(result.code, x => x.codePointAt(0))).toEqual( + Array.from(expected.code, x => x.codePointAt(0)), + ); } } } diff --git a/packages/babel-helper-bindify-decorators/package.json b/packages/babel-helper-bindify-decorators/package.json index 62f1f69deea7..77bc4d646d4b 100644 --- a/packages/babel-helper-bindify-decorators/package.json +++ b/packages/babel-helper-bindify-decorators/package.json @@ -13,7 +13,9 @@ }, "main": "lib/index.js", "dependencies": { - "@babel/traverse": "workspace:^7.10.4", "@babel/types": "workspace:^7.10.4" + }, + "devDependencies": { + "@babel/traverse": "workspace:^7.10.4" } } diff --git a/packages/babel-helper-builder-react-jsx-experimental/package.json b/packages/babel-helper-builder-react-jsx-experimental/package.json index e2a0acff0a57..4a2612bad154 100644 --- a/packages/babel-helper-builder-react-jsx-experimental/package.json +++ b/packages/babel-helper-builder-react-jsx-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@babel/helper-builder-react-jsx-experimental", - "version": "7.10.4", + "version": "7.10.5", "description": "Helper function to build react jsx", "repository": { "type": "git", @@ -15,6 +15,6 @@ "dependencies": { "@babel/helper-annotate-as-pure": "workspace:^7.10.4", "@babel/helper-module-imports": "workspace:^7.10.4", - "@babel/types": "workspace:^7.10.4" + "@babel/types": "workspace:^7.10.5" } } diff --git a/packages/babel-helper-builder-react-jsx-experimental/src/index.js b/packages/babel-helper-builder-react-jsx-experimental/src/index.js index d42d84c34063..00fee165933f 100644 --- a/packages/babel-helper-builder-react-jsx-experimental/src/index.js +++ b/packages/babel-helper-builder-react-jsx-experimental/src/index.js @@ -457,7 +457,7 @@ You can set \`throwIfNamespace: false\` to bypass this warning.`, } return makeTrace( - state.fileNameIdentifier, + t.cloneNode(state.fileNameIdentifier), location.start.line, location.start.column, ); diff --git a/packages/babel-helper-call-delegate/package.json b/packages/babel-helper-call-delegate/package.json index 247516449fa3..e2577fc98355 100644 --- a/packages/babel-helper-call-delegate/package.json +++ b/packages/babel-helper-call-delegate/package.json @@ -14,7 +14,9 @@ "main": "lib/index.js", "dependencies": { "@babel/helper-hoist-variables": "workspace:^7.10.4", - "@babel/traverse": "workspace:^7.10.4", "@babel/types": "workspace:^7.10.4" + }, + "devDependencies": { + "@babel/traverse": "workspace:^7.10.4" } } diff --git a/packages/babel-helper-compilation-targets/test/__snapshots__/targets-parser.spec.js.snap b/packages/babel-helper-compilation-targets/test/__snapshots__/targets-parser.spec.js.snap new file mode 100644 index 000000000000..5c3fed386ddf --- /dev/null +++ b/packages/babel-helper-compilation-targets/test/__snapshots__/targets-parser.spec.js.snap @@ -0,0 +1,59 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`getTargets esmodules returns browser supporting modules and keyed browser overrides 1`] = ` +Object { + "android": "61.0.0", + "chrome": "61.0.0", + "edge": "16.0.0", + "firefox": "60.0.0", + "ie": "11.0.0", + "ios": "10.3.0", + "node": "13.2.0", + "opera": "48.0.0", + "safari": "10.1.0", + "samsung": "8.2.0", +} +`; + +exports[`getTargets esmodules returns browser supporting modules and keyed browser overrides, ignoring browsers field 1`] = ` +Object { + "android": "61.0.0", + "chrome": "61.0.0", + "edge": "16.0.0", + "firefox": "60.0.0", + "ie": "11.0.0", + "ios": "10.3.0", + "node": "13.2.0", + "opera": "48.0.0", + "safari": "10.1.0", + "samsung": "8.2.0", +} +`; + +exports[`getTargets esmodules returns browsers supporting modules 1`] = ` +Object { + "android": "61.0.0", + "chrome": "61.0.0", + "edge": "16.0.0", + "firefox": "60.0.0", + "ios": "10.3.0", + "node": "13.2.0", + "opera": "48.0.0", + "safari": "10.1.0", + "samsung": "8.2.0", +} +`; + +exports[`getTargets esmodules returns browsers supporting modules, ignoring browsers key 1`] = ` +Object { + "android": "61.0.0", + "chrome": "61.0.0", + "edge": "16.0.0", + "firefox": "60.0.0", + "ios": "10.3.0", + "node": "13.2.0", + "opera": "48.0.0", + "safari": "10.1.0", + "samsung": "8.2.0", +} +`; diff --git a/packages/babel-helper-compilation-targets/test/targets-parser.spec.js b/packages/babel-helper-compilation-targets/test/targets-parser.spec.js index f44ae0060197..e5222b68cec8 100644 --- a/packages/babel-helper-compilation-targets/test/targets-parser.spec.js +++ b/packages/babel-helper-compilation-targets/test/targets-parser.spec.js @@ -203,16 +203,7 @@ describe("getTargets", () => { getTargets({ esmodules: true, }), - ).toEqual({ - android: "61.0.0", - chrome: "61.0.0", - edge: "16.0.0", - firefox: "60.0.0", - ios: "10.3.0", - opera: "48.0.0", - safari: "10.1.0", - samsung: "8.2.0", - }); + ).toMatchSnapshot(); }); it("returns browsers supporting modules, ignoring browsers key", () => { @@ -221,16 +212,7 @@ describe("getTargets", () => { esmodules: true, browsers: "ie 8", }), - ).toEqual({ - android: "61.0.0", - chrome: "61.0.0", - edge: "16.0.0", - firefox: "60.0.0", - ios: "10.3.0", - opera: "48.0.0", - safari: "10.1.0", - samsung: "8.2.0", - }); + ).toMatchSnapshot(); }); it("returns browser supporting modules and keyed browser overrides", () => { @@ -239,17 +221,7 @@ describe("getTargets", () => { esmodules: true, ie: 11, }), - ).toEqual({ - android: "61.0.0", - chrome: "61.0.0", - safari: "10.1.0", - firefox: "60.0.0", - opera: "48.0.0", - ios: "10.3.0", - ie: "11.0.0", - edge: "16.0.0", - samsung: "8.2.0", - }); + ).toMatchSnapshot(); }); it("returns browser supporting modules and keyed browser overrides, ignoring browsers field", () => { @@ -259,17 +231,7 @@ describe("getTargets", () => { browsers: "ie 10", ie: 11, }), - ).toEqual({ - android: "61.0.0", - chrome: "61.0.0", - safari: "10.1.0", - ios: "10.3.0", - ie: "11.0.0", - edge: "16.0.0", - firefox: "60.0.0", - opera: "48.0.0", - samsung: "8.2.0", - }); + ).toMatchSnapshot(); }); }); diff --git a/packages/babel-helper-create-class-features-plugin/package.json b/packages/babel-helper-create-class-features-plugin/package.json index ba61d407b2df..ffa21b15cfc6 100644 --- a/packages/babel-helper-create-class-features-plugin/package.json +++ b/packages/babel-helper-create-class-features-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@babel/helper-create-class-features-plugin", - "version": "7.10.4", + "version": "7.10.5", "author": "The Babel Team (https://babeljs.io/team)", "license": "MIT", "description": "Compile class public and private fields, private methods and decorators to ES6", @@ -19,7 +19,7 @@ ], "dependencies": { "@babel/helper-function-name": "workspace:^7.10.4", - "@babel/helper-member-expression-to-functions": "workspace:^7.10.4", + "@babel/helper-member-expression-to-functions": "workspace:^7.10.5", "@babel/helper-optimise-call-expression": "workspace:^7.10.4", "@babel/helper-plugin-utils": "workspace:^7.10.4", "@babel/helper-replace-supers": "workspace:^7.10.4", @@ -29,7 +29,7 @@ "@babel/core": "^7.0.0" }, "devDependencies": { - "@babel/core": "workspace:^7.10.4", + "@babel/core": "workspace:^7.10.5", "@babel/helper-plugin-test-runner": "workspace:^7.10.4" } } diff --git a/packages/babel-helper-create-class-features-plugin/src/decorators.js b/packages/babel-helper-create-class-features-plugin/src/decorators.js index 49444bbea4ac..b4fbcae13f08 100644 --- a/packages/babel-helper-create-class-features-plugin/src/decorators.js +++ b/packages/babel-helper-create-class-features-plugin/src/decorators.js @@ -137,7 +137,7 @@ export function buildDecoratedClass(ref, path, elements, file) { let replacement = template.expression.ast` ${addDecorateHelper(file)}( ${classDecorators || t.nullLiteral()}, - function (${initializeId}, ${superClass ? superId : null}) { + function (${initializeId}, ${superClass ? t.cloneNode(superId) : null}) { ${node} return { F: ${t.cloneNode(node.id)}, d: ${definitions} }; }, @@ -158,7 +158,7 @@ export function buildDecoratedClass(ref, path, elements, file) { } return { - instanceNodes: [template.statement.ast`${initializeId}(this)`], + instanceNodes: [template.statement.ast`${t.cloneNode(initializeId)}(this)`], wrapClass(path) { path.replaceWith(replacement); return path.get(classPathDesc); diff --git a/packages/babel-helper-create-class-features-plugin/src/fields.js b/packages/babel-helper-create-class-features-plugin/src/fields.js index 848b0033b675..6bb644f6d2b9 100644 --- a/packages/babel-helper-create-class-features-plugin/src/fields.js +++ b/packages/babel-helper-create-class-features-plugin/src/fields.js @@ -45,8 +45,9 @@ export function buildPrivateNamesNodes(privateNamesMap, loose, state) { // In spec mode, only instance fields need a "private name" initializer // because static fields are directly assigned to a variable in the // buildPrivateStaticFieldInitSpec function. - const { id, static: isStatic, method: isMethod, getId, setId } = value; + const { static: isStatic, method: isMethod, getId, setId } = value; const isAccessor = getId || setId; + const id = t.cloneNode(value.id); if (loose) { initNodes.push( template.statement.ast` @@ -157,7 +158,7 @@ const privateInVisitor = privateNameVisitorFactory({ if (loose) { const { id } = privateNamesMap.get(name); path.replaceWith(template.expression.ast` - Object.prototype.hasOwnProperty.call(${right}, ${id}) + Object.prototype.hasOwnProperty.call(${right}, ${t.cloneNode(id)}) `); return; } @@ -169,7 +170,7 @@ const privateInVisitor = privateNameVisitorFactory({ return; } - path.replaceWith(template.expression.ast`${id}.has(${right})`); + path.replaceWith(template.expression.ast`${t.cloneNode(id)}.has(${right})`); }, }); @@ -327,8 +328,8 @@ const privateNameHandlerLoose = { return template.expression`BASE(REF, PROP)[PROP]`({ BASE: file.addHelper("classPrivateFieldLooseBase"), - REF: object, - PROP: privateNamesMap.get(name).id, + REF: t.cloneNode(object), + PROP: t.cloneNode(privateNamesMap.get(name).id), }); }, @@ -387,7 +388,7 @@ function buildPrivateFieldInitLoose(ref, prop, privateNamesMap) { const value = prop.node.value || prop.scope.buildUndefinedNode(); return template.statement.ast` - Object.defineProperty(${ref}, ${id}, { + Object.defineProperty(${ref}, ${t.cloneNode(id)}, { // configurable is false by default // enumerable is false by default writable: true, @@ -400,7 +401,7 @@ function buildPrivateInstanceFieldInitSpec(ref, prop, privateNamesMap) { const { id } = privateNamesMap.get(prop.node.key.id.name); const value = prop.node.value || prop.scope.buildUndefinedNode(); - return template.statement.ast`${id}.set(${ref}, { + return template.statement.ast`${t.cloneNode(id)}.set(${ref}, { // configurable is always false for private elements // enumerable is always false for private elements writable: true, @@ -422,7 +423,7 @@ function buildPrivateStaticFieldInitSpec(prop, privateNamesMap) { }); return template.statement.ast` - var ${id.name} = { + var ${t.cloneNode(id)} = { // configurable is false by default // enumerable is false by default // writable is false by default @@ -434,7 +435,7 @@ function buildPrivateStaticFieldInitSpec(prop, privateNamesMap) { const value = prop.node.value || prop.scope.buildUndefinedNode(); return template.statement.ast` - var ${id} = { + var ${t.cloneNode(id)} = { // configurable is false by default // enumerable is false by default writable: true, @@ -603,14 +604,14 @@ function buildPrivateMethodDeclaration(prop, privateNamesMap, loose = false) { if (isStatic && !loose) { return t.variableDeclaration("var", [ t.variableDeclarator( - id, + t.cloneNode(id), t.functionExpression(id, params, body, generator, async), ), ]); } return t.variableDeclaration("var", [ - t.variableDeclarator(methodId, methodValue), + t.variableDeclarator(t.cloneNode(methodId), methodValue), ]); } diff --git a/packages/babel-helper-create-class-features-plugin/src/index.js b/packages/babel-helper-create-class-features-plugin/src/index.js index fba10a68e8c4..d23c12cefdc1 100644 --- a/packages/babel-helper-create-class-features-plugin/src/index.js +++ b/packages/babel-helper-create-class-features-plugin/src/index.js @@ -1,3 +1,4 @@ +import { types as t } from "@babel/core"; import nameFunction from "@babel/helper-function-name"; import splitExportDeclaration from "@babel/helper-split-export-declaration"; import { @@ -129,7 +130,7 @@ export function createClassFeaturePlugin({ nameFunction(path); ref = path.scope.generateUidIdentifier("class"); } else { - ref = path.node.id; + ref = t.cloneNode(path.node.id); } // NODE: These three functions don't support decorators yet, diff --git a/packages/babel-helper-create-class-features-plugin/src/misc.js b/packages/babel-helper-create-class-features-plugin/src/misc.js index 31f8e0948676..8bb57a85df63 100644 --- a/packages/babel-helper-create-class-features-plugin/src/misc.js +++ b/packages/babel-helper-create-class-features-plugin/src/misc.js @@ -72,8 +72,14 @@ export function injectInitialization(path, constructor, nodes, renamer) { if (isDerived) { const bareSupers = []; constructor.traverse(findBareSupers, bareSupers); + let isFirst = true; for (const bareSuper of bareSupers) { - bareSuper.insertAfter(nodes); + if (isFirst) { + bareSuper.insertAfter(nodes); + isFirst = false; + } else { + bareSuper.insertAfter(nodes.map(n => t.cloneNode(n))); + } } } else { constructor.get("body").unshiftContainer("body", nodes); diff --git a/packages/babel-helper-define-map/package.json b/packages/babel-helper-define-map/package.json index 58216a1976b1..c782a805abf0 100644 --- a/packages/babel-helper-define-map/package.json +++ b/packages/babel-helper-define-map/package.json @@ -1,6 +1,6 @@ { "name": "@babel/helper-define-map", - "version": "7.10.4", + "version": "7.10.5", "description": "Helper function to define a map", "repository": { "type": "git", @@ -14,7 +14,7 @@ "main": "lib/index.js", "dependencies": { "@babel/helper-function-name": "workspace:^7.10.4", - "@babel/types": "workspace:^7.10.4", - "lodash": "^4.17.13" + "@babel/types": "workspace:^7.10.5", + "lodash": "^4.17.19" } } diff --git a/packages/babel-helper-explode-assignable-expression/package.json b/packages/babel-helper-explode-assignable-expression/package.json index 4c22426a89a8..a186091ac8e9 100644 --- a/packages/babel-helper-explode-assignable-expression/package.json +++ b/packages/babel-helper-explode-assignable-expression/package.json @@ -13,7 +13,9 @@ }, "main": "lib/index.js", "dependencies": { - "@babel/traverse": "workspace:^7.10.4", "@babel/types": "workspace:^7.10.4" + }, + "devDependencies": { + "@babel/traverse": "workspace:^7.10.4" } } diff --git a/packages/babel-helper-explode-class/package.json b/packages/babel-helper-explode-class/package.json index 3bd0895243b6..970b0899708d 100644 --- a/packages/babel-helper-explode-class/package.json +++ b/packages/babel-helper-explode-class/package.json @@ -14,7 +14,9 @@ "main": "lib/index.js", "dependencies": { "@babel/helper-bindify-decorators": "workspace:^7.10.4", - "@babel/traverse": "workspace:^7.10.4", "@babel/types": "workspace:^7.10.4" + }, + "devDependencies": { + "@babel/traverse": "workspace:^7.10.4" } } diff --git a/packages/babel-helper-fixtures/package.json b/packages/babel-helper-fixtures/package.json index d9520a1f03cc..0b6ebf586e25 100644 --- a/packages/babel-helper-fixtures/package.json +++ b/packages/babel-helper-fixtures/package.json @@ -1,6 +1,6 @@ { "name": "@babel/helper-fixtures", - "version": "7.10.4", + "version": "7.10.5", "description": "Helper function to support fixtures", "author": "Sebastian McKenzie ", "license": "MIT", @@ -14,7 +14,7 @@ }, "main": "lib/index.js", "dependencies": { - "lodash": "^4.17.13", + "lodash": "^4.17.19", "semver": "^5.3.0" } } diff --git a/packages/babel-helper-fixtures/src/index.js b/packages/babel-helper-fixtures/src/index.js index 9348fcc79af2..01ebe6b9dbb4 100644 --- a/packages/babel-helper-fixtures/src/index.js +++ b/packages/babel-helper-fixtures/src/index.js @@ -1,6 +1,4 @@ import cloneDeep from "lodash/cloneDeep"; -import clone from "lodash/clone"; -import extend from "lodash/extend"; import semver from "semver"; import path from "path"; import fs from "fs"; @@ -119,7 +117,7 @@ function pushTask(taskName, taskDir, suite, suiteName) { const taskOpts = cloneDeep(suite.options); const taskOptsLoc = tryResolve(taskDir + "/options"); - if (taskOptsLoc) extend(taskOpts, require(taskOptsLoc)); + if (taskOptsLoc) Object.assign(taskOpts, require(taskOptsLoc)); const test = { optionsDir: taskOptsLoc ? path.dirname(taskOptsLoc) : null, @@ -263,7 +261,7 @@ export default function get(entryLoc): Array { if (shouldIgnore(suiteName)) continue; const suite = { - options: clone(rootOpts), + options: { ...rootOpts }, tests: [], title: humanize(suiteName), filename: entryLoc + "/" + suiteName, diff --git a/packages/babel-helper-member-expression-to-functions/package.json b/packages/babel-helper-member-expression-to-functions/package.json index 29a172789a1c..cfdff8a79a09 100644 --- a/packages/babel-helper-member-expression-to-functions/package.json +++ b/packages/babel-helper-member-expression-to-functions/package.json @@ -1,6 +1,6 @@ { "name": "@babel/helper-member-expression-to-functions", - "version": "7.10.4", + "version": "7.11.0", "description": "Helper function to replace certain member expressions with function calls", "repository": { "type": "git", @@ -14,6 +14,6 @@ "main": "lib/index.js", "author": "Justin Ridgewell ", "dependencies": { - "@babel/types": "workspace:^7.10.4" + "@babel/types": "workspace:^7.11.0" } } diff --git a/packages/babel-helper-member-expression-to-functions/src/index.js b/packages/babel-helper-member-expression-to-functions/src/index.js index 6620978c6bc6..62d844b9f177 100644 --- a/packages/babel-helper-member-expression-to-functions/src/index.js +++ b/packages/babel-helper-member-expression-to-functions/src/index.js @@ -235,8 +235,12 @@ const handle = { t.binaryExpression( "===", baseNeedsMemoised - ? t.assignmentExpression("=", baseRef, startingNode) - : baseRef, + ? t.assignmentExpression( + "=", + t.cloneNode(baseRef), + t.cloneNode(startingNode), + ) + : t.cloneNode(baseRef), t.nullLiteral(), ), t.binaryExpression( @@ -263,7 +267,7 @@ const handle = { false, true, ), - [context, ...endParent.arguments], + [t.cloneNode(context), ...endParent.arguments], false, ), ); @@ -311,29 +315,42 @@ const handle = { // MEMBER = VALUE -> _set(MEMBER, VALUE) // MEMBER += VALUE -> _set(MEMBER, _get(MEMBER) + VALUE) + // MEMBER ??= VALUE -> _get(MEMBER) ?? _set(MEMBER, VALUE) if (parentPath.isAssignmentExpression({ left: node })) { if (this.simpleSet) { member.replaceWith(this.simpleSet(member)); return; } - const { operator, right } = parent; - let value = right; + const { operator, right: value } = parent; - if (operator !== "=") { - // Give the state handler a chance to memoise the member, since we'll - // reference it twice. The second access (the set) should do the memo - // assignment. - this.memoise(member, 2); - - value = t.binaryExpression( - operator.slice(0, -1), - this.get(member), - value, - ); + if (operator === "=") { + parentPath.replaceWith(this.set(member, value)); + } else { + const operatorTrunc = operator.slice(0, -1); + if (t.LOGICAL_OPERATORS.includes(operatorTrunc)) { + // Give the state handler a chance to memoise the member, since we'll + // reference it twice. The first access (the get) should do the memo + // assignment. + this.memoise(member, 1); + parentPath.replaceWith( + t.logicalExpression( + operatorTrunc, + this.get(member), + this.set(member, value), + ), + ); + } else { + // Here, the second access (the set) is evaluated first. + this.memoise(member, 2); + parentPath.replaceWith( + this.set( + member, + t.binaryExpression(operatorTrunc, this.get(member), value), + ), + ); + } } - - parentPath.replaceWith(this.set(member, value)); return; } diff --git a/packages/babel-helper-module-transforms/package.json b/packages/babel-helper-module-transforms/package.json index f30539189caf..d94542bd7116 100644 --- a/packages/babel-helper-module-transforms/package.json +++ b/packages/babel-helper-module-transforms/package.json @@ -1,6 +1,6 @@ { "name": "@babel/helper-module-transforms", - "version": "7.10.4", + "version": "7.11.0", "description": "Babel helper functions for implementing ES6 module transformations", "author": "Logan Smyth ", "homepage": "https://babeljs.io/", @@ -18,9 +18,9 @@ "@babel/helper-module-imports": "workspace:^7.10.4", "@babel/helper-replace-supers": "workspace:^7.10.4", "@babel/helper-simple-access": "workspace:^7.10.4", - "@babel/helper-split-export-declaration": "workspace:^7.10.4", + "@babel/helper-split-export-declaration": "workspace:^7.11.0", "@babel/template": "workspace:^7.10.4", - "@babel/types": "workspace:^7.10.4", - "lodash": "^4.17.13" + "@babel/types": "workspace:^7.11.0", + "lodash": "^4.17.19" } } diff --git a/packages/babel-helper-module-transforms/src/rewrite-live-references.js b/packages/babel-helper-module-transforms/src/rewrite-live-references.js index b98953f70662..888495ab4eb9 100644 --- a/packages/babel-helper-module-transforms/src/rewrite-live-references.js +++ b/packages/babel-helper-module-transforms/src/rewrite-live-references.js @@ -12,7 +12,7 @@ export default function rewriteLiveReferences( const imported = new Map(); const exported = new Map(); const requeueInParent = path => { - // Manualy re-queue `exports.default =` expressions so that the ES3 + // Manually re-queue `exports.default =` expressions so that the ES3 // transform has an opportunity to convert them. Ideally this would // happen automatically from the replaceWith above. See #4140 for // more info. @@ -191,9 +191,9 @@ const rewriteReferencesVisitor = { } else if (path.isJSXIdentifier() && t.isMemberExpression(ref)) { const { object, property } = ref; path.replaceWith( - t.JSXMemberExpression( - t.JSXIdentifier(object.name), - t.JSXIdentifier(property.name), + t.jsxMemberExpression( + t.jsxIdentifier(object.name), + t.jsxIdentifier(property.name), ), ); } else { @@ -337,7 +337,9 @@ const rewriteReferencesVisitor = { path .get("left") .replaceWith( - t.variableDeclaration("let", [t.variableDeclarator(newLoopId)]), + t.variableDeclaration("let", [ + t.variableDeclarator(t.cloneNode(newLoopId)), + ]), ); scope.registerDeclaration(path.get("left")); } diff --git a/packages/babel-helper-regex/package.json b/packages/babel-helper-regex/package.json index 8430a23e4f66..60162c9600d3 100644 --- a/packages/babel-helper-regex/package.json +++ b/packages/babel-helper-regex/package.json @@ -1,6 +1,6 @@ { "name": "@babel/helper-regex", - "version": "7.10.4", + "version": "7.10.5", "description": "Helper function to check for literal RegEx", "repository": { "type": "git", @@ -13,6 +13,6 @@ }, "main": "lib/index.js", "dependencies": { - "lodash": "^4.17.13" + "lodash": "^4.17.19" } } diff --git a/packages/babel-helper-remap-async-to-generator/package.json b/packages/babel-helper-remap-async-to-generator/package.json index cb55203c1a44..447e2e62f960 100644 --- a/packages/babel-helper-remap-async-to-generator/package.json +++ b/packages/babel-helper-remap-async-to-generator/package.json @@ -16,7 +16,9 @@ "@babel/helper-annotate-as-pure": "workspace:^7.10.4", "@babel/helper-wrap-function": "workspace:^7.10.4", "@babel/template": "workspace:^7.10.4", - "@babel/traverse": "workspace:^7.10.4", "@babel/types": "workspace:^7.10.4" + }, + "devDependencies": { + "@babel/traverse": "workspace:^7.10.4" } } diff --git a/packages/babel-helper-replace-supers/package.json b/packages/babel-helper-replace-supers/package.json index 2ebca0e3211e..21d56e8940c2 100644 --- a/packages/babel-helper-replace-supers/package.json +++ b/packages/babel-helper-replace-supers/package.json @@ -15,7 +15,9 @@ "dependencies": { "@babel/helper-member-expression-to-functions": "workspace:^7.10.4", "@babel/helper-optimise-call-expression": "workspace:^7.10.4", - "@babel/traverse": "workspace:^7.10.4", "@babel/types": "workspace:^7.10.4" + }, + "devDependencies": { + "@babel/traverse": "workspace:^7.10.4" } } diff --git a/packages/babel-helper-skip-transparent-expression-wrappers/.npmignore b/packages/babel-helper-skip-transparent-expression-wrappers/.npmignore new file mode 100644 index 000000000000..f9806945836e --- /dev/null +++ b/packages/babel-helper-skip-transparent-expression-wrappers/.npmignore @@ -0,0 +1,3 @@ +src +test +*.log diff --git a/packages/babel-helper-skip-transparent-expression-wrappers/README.md b/packages/babel-helper-skip-transparent-expression-wrappers/README.md new file mode 100644 index 000000000000..ac89e026937c --- /dev/null +++ b/packages/babel-helper-skip-transparent-expression-wrappers/README.md @@ -0,0 +1,17 @@ +# @babel/helper-skip-transparent-expression-wrappers + +> Helper which skips types and parentheses + +## Install + +Using npm: + +```sh +npm install --save-dev @babel/helper-skip-transparent-expression-wrappers +``` + +or using yarn: + +```sh +yarn add @babel/helper-skip-transparent-expression-wrappers --dev +``` diff --git a/packages/babel-helper-skip-transparent-expression-wrappers/package.json b/packages/babel-helper-skip-transparent-expression-wrappers/package.json new file mode 100644 index 000000000000..59e99cd77d34 --- /dev/null +++ b/packages/babel-helper-skip-transparent-expression-wrappers/package.json @@ -0,0 +1,25 @@ +{ + "name": "@babel/helper-skip-transparent-expression-wrappers", + "version": "7.11.0", + "description": "Helper which skips types and parentheses", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel.git", + "directory": "packages/babel-helper-skip-transparent-expression-wrappers" + }, + "license": "MIT", + "publishConfig": { + "access": "public" + }, + "main": "./lib/index.js", + "exports": { + ".": "./lib/index.js", + "./package.json": "./package.json" + }, + "dependencies": { + "@babel/types": "workspace:^7.11.0" + }, + "devDependencies": { + "@babel/traverse": "workspace:^7.11.0" + } +} diff --git a/packages/babel-helper-skip-transparent-expression-wrappers/src/index.js b/packages/babel-helper-skip-transparent-expression-wrappers/src/index.js new file mode 100644 index 000000000000..c218ac6c8fde --- /dev/null +++ b/packages/babel-helper-skip-transparent-expression-wrappers/src/index.js @@ -0,0 +1,27 @@ +// @flow + +import * as t from "@babel/types"; +import type { NodePath } from "@babel/traverse"; + +// A transparent expression wrapper is an AST node that most plugins will wish +// to skip, as its presence does not affect the behaviour of the code. This +// includes expressions used for types, and extra parenthesis. For example, in +// (a as any)(), this helper can be used to skip the TSAsExpression when +// determining the callee. +export function isTransparentExprWrapper(node: Node) { + return ( + t.isTSAsExpression(node) || + t.isTSTypeAssertion(node) || + t.isTSNonNullExpression(node) || + t.isTypeCastExpression(node) || + t.isParenthesizedExpression(node) + ); +} + +export function skipTransparentExprWrappers(path: NodePath): NodePath { + while (isTransparentExprWrapper(path.node)) { + path = path.get("expression"); + } + + return path; +} diff --git a/packages/babel-helper-split-export-declaration/package.json b/packages/babel-helper-split-export-declaration/package.json index cf1d580afb84..d602716424e1 100644 --- a/packages/babel-helper-split-export-declaration/package.json +++ b/packages/babel-helper-split-export-declaration/package.json @@ -1,6 +1,6 @@ { "name": "@babel/helper-split-export-declaration", - "version": "7.10.4", + "version": "7.11.0", "description": "", "repository": { "type": "git", @@ -13,6 +13,6 @@ }, "main": "lib/index.js", "dependencies": { - "@babel/types": "workspace:^7.10.4" + "@babel/types": "workspace:^7.11.0" } } diff --git a/packages/babel-helper-split-export-declaration/src/index.js b/packages/babel-helper-split-export-declaration/src/index.js index c591f8746396..a2eae668e07a 100644 --- a/packages/babel-helper-split-export-declaration/src/index.js +++ b/packages/babel-helper-split-export-declaration/src/index.js @@ -2,7 +2,7 @@ import * as t from "@babel/types"; export default function splitExportDeclaration(exportDeclaration) { if (!exportDeclaration.isExportDeclaration()) { - throw new Error("Only export declarations can be splitted."); + throw new Error("Only export declarations can be split."); } // build specifiers that point back to this export declaration diff --git a/packages/babel-helper-transform-fixture-test-runner/package.json b/packages/babel-helper-transform-fixture-test-runner/package.json index 925cc64effd8..5cd562374c31 100644 --- a/packages/babel-helper-transform-fixture-test-runner/package.json +++ b/packages/babel-helper-transform-fixture-test-runner/package.json @@ -1,6 +1,6 @@ { "name": "@babel/helper-transform-fixture-test-runner", - "version": "7.10.4", + "version": "7.10.5", "description": "Transform test runner for @babel/helper-fixtures module", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -16,14 +16,15 @@ "main": "lib/index.js", "dependencies": { "@babel/code-frame": "workspace:^7.10.4", - "@babel/core": "workspace:^7.10.4", - "@babel/helper-fixtures": "workspace:^7.10.4", + "@babel/core": "workspace:^7.10.5", + "@babel/helper-fixtures": "workspace:^7.10.5", "@babel/polyfill": "workspace:^7.10.4", "babel-check-duplicated-nodes": "^1.0.0", - "escape-string-regexp": "^4.0.0", - "jest": "^25.1.0", - "jest-diff": "^25.1.0", - "lodash": "^4.17.13", + "jest": "^24.8.0", + "jest-diff": "^24.8.0", + "lodash": "^4.17.19", + "quick-lru": "5.1.0", + "resolve": "^1.3.2", "source-map": "^0.5.0" } } diff --git a/packages/babel-helper-transform-fixture-test-runner/src/index.js b/packages/babel-helper-transform-fixture-test-runner/src/index.js index f67e70750598..44441e5ee71a 100644 --- a/packages/babel-helper-transform-fixture-test-runner/src/index.js +++ b/packages/babel-helper-transform-fixture-test-runner/src/index.js @@ -5,44 +5,108 @@ import getFixtures from "@babel/helper-fixtures"; import sourceMap from "source-map"; import { codeFrameColumns } from "@babel/code-frame"; import defaults from "lodash/defaults"; -import includes from "lodash/includes"; -import escapeRegExp from "escape-string-regexp"; +import escapeRegExp from "lodash/escapeRegExp"; import * as helpers from "./helpers"; -import extend from "lodash/extend"; import merge from "lodash/merge"; import assert from "assert"; import fs from "fs"; import path from "path"; import vm from "vm"; import checkDuplicatedNodes from "babel-check-duplicated-nodes"; +import QuickLRU from "quick-lru"; import diff from "jest-diff"; -const moduleCache = {}; -const testContext = vm.createContext({ - ...helpers, - process: process, - transform: babel.transform, - setTimeout: setTimeout, - setImmediate: setImmediate, - expect, -}); -testContext.global = testContext; +const cachedScripts = new QuickLRU({ maxSize: 10 }); +const contextModuleCache = new WeakMap(); +const sharedTestContext = createContext(); + +function createContext() { + const context = vm.createContext({ + ...helpers, + process: process, + transform: babel.transform, + setTimeout: setTimeout, + setImmediate: setImmediate, + expect, + }); + context.global = context; + + const moduleCache = Object.create(null); + contextModuleCache.set(context, moduleCache); + + // Initialize the test context with the polyfill, and then freeze the global to prevent implicit + // global creation in tests, which could cause things to bleed between tests. + runModuleInTestContext( + "@babel/polyfill/dist/polyfill.min.js", + __filename, + context, + moduleCache, + ); + + // Populate the "babelHelpers" global with Babel's helper utilities. + runCacheableScriptInTestContext( + path.join(__dirname, "babel-helpers-in-memory.js"), + buildExternalHelpers, + context, + moduleCache, + ); + + return context; +} -// Initialize the test context with the polyfill, and then freeze the global to prevent implicit -// global creation in tests, which could cause things to bleed between tests. -runModuleInTestContext("@babel/polyfill", __filename); +function runCacheableScriptInTestContext( + filename: string, + srcFn: () => string, + context: Context, + moduleCache: Object, +) { + let cached = cachedScripts.get(filename); + if (!cached) { + const code = `(function (exports, require, module, __filename, __dirname) {\n${srcFn()}\n});`; + cached = { + code, + cachedData: undefined, + }; + cachedScripts.set(filename, cached); + } -// Populate the "babelHelpers" global with Babel's helper utilities. -runCodeInTestContext(buildExternalHelpers(), { - filename: path.join(__dirname, "babel-helpers-in-memory.js"), -}); + const script = new vm.Script(cached.code, { + filename, + displayErrors: true, + lineOffset: -1, + cachedData: cached.cachedData, + produceCachedData: true, + }); + + if (script.cachedDataProduced) { + cached.cachedData = script.cachedData; + } + + const module = { + id: filename, + exports: {}, + }; + const req = id => runModuleInTestContext(id, filename, context, moduleCache); + const dirname = path.dirname(filename); + + script + .runInContext(context) + .call(module.exports, module.exports, req, module, filename, dirname); + + return module; +} /** * A basic implementation of CommonJS so we can execute `@babel/polyfill` inside our test context. * This allows us to run our unittests */ -function runModuleInTestContext(id: string, relativeFilename: string) { +function runModuleInTestContext( + id: string, + relativeFilename: string, + context: Context, + moduleCache: Object, +) { const filename = require.resolve(id, { paths: [path.dirname(relativeFilename)], }); @@ -51,23 +115,17 @@ function runModuleInTestContext(id: string, relativeFilename: string) { // the context's global scope. if (filename === id) return require(id); + // Modules can only evaluate once per context, so the moduleCache is a + // stronger cache guarantee than the LRU's Script cache. if (moduleCache[filename]) return moduleCache[filename].exports; - const module = (moduleCache[filename] = { - id: filename, - exports: {}, - }); - const dirname = path.dirname(filename); - const req = id => runModuleInTestContext(id, filename); - - const src = fs.readFileSync(filename, "utf8"); - const code = `(function (exports, require, module, __filename, __dirname) {\n${src}\n});`; - - vm.runInContext(code, testContext, { + const module = runCacheableScriptInTestContext( filename, - displayErrors: true, - lineOffset: -1, - }).call(module.exports, module.exports, req, module, filename, dirname); + () => fs.readFileSync(filename, "utf8"), + context, + moduleCache, + ); + moduleCache[filename] = module; return module.exports; } @@ -77,10 +135,15 @@ function runModuleInTestContext(id: string, relativeFilename: string) { * * Exposed for unit tests, not for use as an API. */ -export function runCodeInTestContext(code: string, opts: { filename: string }) { +export function runCodeInTestContext( + code: string, + opts: { filename: string }, + context = sharedTestContext, +) { const filename = opts.filename; const dirname = path.dirname(filename); - const req = id => runModuleInTestContext(id, filename); + const moduleCache = contextModuleCache.get(context); + const req = id => runModuleInTestContext(id, filename, context, moduleCache); const module = { id: filename, @@ -95,7 +158,7 @@ export function runCodeInTestContext(code: string, opts: { filename: string }) { // Note: This isn't doing .call(module.exports, ...) because some of our tests currently // rely on 'this === global'. const src = `(function(exports, require, module, __filename, __dirname, opts) {\n${code}\n});`; - return vm.runInContext(src, testContext, { + return vm.runInContext(src, context, { filename, displayErrors: true, lineOffset: -1, @@ -147,6 +210,7 @@ function run(task) { function getOpts(self) { const newOpts = merge( { + ast: true, cwd: path.dirname(self.loc), filename: self.loc, filenameRelative: self.filename, @@ -183,13 +247,14 @@ function run(task) { let resultExec; if (execCode) { + const context = createContext(); const execOpts = getOpts(exec); result = babel.transform(execCode, execOpts); checkDuplicatedNodes(babel, result.ast); execCode = result.code; try { - resultExec = runCodeInTestContext(execCode, execOpts); + resultExec = runCodeInTestContext(execCode, execOpts, context); } catch (err) { // Pass empty location to include the whole file in the output. err.message = @@ -352,7 +417,7 @@ export default function ( const suites = getFixtures(fixturesLoc); for (const testSuite of suites) { - if (includes(suiteOpts.ignoreSuites, testSuite.title)) continue; + if (suiteOpts.ignoreSuites?.includes(testSuite.title)) continue; describe(name + "/" + testSuite.title, function () { jest.addMatchers({ @@ -361,8 +426,8 @@ export default function ( for (const task of testSuite.tests) { if ( - includes(suiteOpts.ignoreTasks, task.title) || - includes(suiteOpts.ignoreTasks, testSuite.title + "/" + task.title) + suiteOpts.ignoreTasks?.includes(task.title) || + suiteOpts.ignoreTasks?.includes(testSuite.title + "/" + task.title) ) { continue; } @@ -385,7 +450,7 @@ export default function ( sourceMap: !!(task.sourceMappings || task.sourceMap), }); - extend(task.options, taskOpts); + Object.assign(task.options, taskOpts); if (dynamicOpts) dynamicOpts(task.options, task); diff --git a/packages/babel-helpers/src/helpers.js b/packages/babel-helpers/src/helpers.js index e1329ce14a96..7bb8038a3ce3 100644 --- a/packages/babel-helpers/src/helpers.js +++ b/packages/babel-helpers/src/helpers.js @@ -1265,8 +1265,6 @@ helpers.applyDecoratedDescriptor = helper("7.0.0-beta.0")` } if (desc.initializer === void 0){ - // This is a hack to avoid this being processed by 'transform-runtime'. - // See issue #9. Object.defineProperty(target, property, desc); desc = null; } diff --git a/packages/babel-node/package.json b/packages/babel-node/package.json index 15e38e353912..0c9ba39f2e4c 100644 --- a/packages/babel-node/package.json +++ b/packages/babel-node/package.json @@ -1,6 +1,6 @@ { "name": "@babel/node", - "version": "7.10.4", + "version": "7.10.5", "description": "Babel command line", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -23,21 +23,24 @@ "compiler" ], "dependencies": { - "@babel/register": "workspace:^7.10.4", + "@babel/register": "workspace:^7.10.5", "commander": "^4.0.1", "core-js": "^3.2.1", - "lodash": "^4.17.13", + "lodash": "^4.17.19", + "node-environment-flags": "^1.0.5", "regenerator-runtime": "^0.13.4", + "resolve": "^1.13.1", "v8flags": "^3.1.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "workspace:^7.10.4", - "@babel/helper-fixtures": "workspace:^7.10.4", - "@babel/runtime": "workspace:^7.10.4", + "@babel/core": "workspace:^7.10.5", + "@babel/helper-fixtures": "workspace:^7.10.5", + "@babel/runtime": "workspace:^7.10.5", "fs-readdir-recursive": "^1.0.0", + "make-dir": "^2.1.0", "rimraf": "^3.0.0" }, "bin": { diff --git a/packages/babel-parser/ast/spec.md b/packages/babel-parser/ast/spec.md index 6e1ba6126da4..0484bc9f1faa 100644 --- a/packages/babel-parser/ast/spec.md +++ b/packages/babel-parser/ast/spec.md @@ -11,6 +11,7 @@ These are the core @babel/parser (babylon) AST node types. - [BooleanLiteral](#booleanliteral) - [NumericLiteral](#numericliteral) - [BigIntLiteral](#bigintliteral) + - [DecimalLiteral](#decimalliteral) - [Programs](#programs) - [Functions](#functions) - [Statements](#statements) @@ -253,6 +254,17 @@ interface BigIntLiteral <: Literal { The `value` property is the string representation of the `BigInt` value. It doesn't include the suffix `n`. +## DecimalLiteral + +```js +interface DecimalLiteral <: Literal { + type: "DecimalLiteral"; + value: string; +} +``` + +The `value` property is the string representation of the `BigDecimal` value. It doesn't include the suffix `m`. + # Programs ```js diff --git a/packages/babel-parser/package.json b/packages/babel-parser/package.json index 8f5741ded666..2ab0666e2525 100644 --- a/packages/babel-parser/package.json +++ b/packages/babel-parser/package.json @@ -1,6 +1,6 @@ { "name": "@babel/parser", - "version": "7.10.4", + "version": "7.11.3", "description": "A JavaScript parser", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -29,11 +29,11 @@ "typings" ], "engines": { - "node": ">=10.13.0" + "node": ">=6.0.0" }, "devDependencies": { "@babel/code-frame": "workspace:^7.10.4", - "@babel/helper-fixtures": "workspace:^7.10.4", + "@babel/helper-fixtures": "workspace:^7.10.5", "@babel/helper-validator-identifier": "workspace:^7.10.4", "charcodes": "^0.2.0" }, diff --git a/packages/babel-parser/src/parser/error-message.js b/packages/babel-parser/src/parser/error-message.js index 5a7df725361c..05518147755a 100644 --- a/packages/babel-parser/src/parser/error-message.js +++ b/packages/babel-parser/src/parser/error-message.js @@ -3,6 +3,7 @@ // The Errors key follows https://cs.chromium.org/chromium/src/v8/src/common/message-template.h unless it does not exist export const ErrorMessages = Object.freeze({ + AccessorIsGenerator: "A %0ter cannot be a generator", ArgumentsDisallowedInInitializer: "'arguments' is not allowed in class field initializer", AsyncFunctionInSingleStatementContext: @@ -61,6 +62,7 @@ export const ErrorMessages = Object.freeze({ ImportOutsideModule: `'import' and 'export' may appear only with 'sourceType: "module"'`, InvalidBigIntLiteral: "Invalid BigIntLiteral", InvalidCodePoint: "Code point out of bounds", + InvalidDecimal: "Invalid decimal", InvalidDigit: "Expected number in radix %0", InvalidEscapeSequence: "Bad character escape sequence", InvalidEscapeSequenceTemplate: "Invalid escape sequence in template", @@ -79,6 +81,7 @@ export const ErrorMessages = Object.freeze({ LabelRedeclaration: "Label '%0' is already declared", LetInLexicalBinding: "'let' is not allowed to be used as a name in 'let' or 'const' declarations.", + LineTerminatorBeforeArrow: "No line break is allowed before '=>'", MalformedRegExpFlags: "Invalid regular expression flag", MissingClassName: "A class name is required", MissingEqInAssignment: @@ -139,6 +142,7 @@ export const ErrorMessages = Object.freeze({ StrictEvalArgumentsBinding: "Binding '%0' in strict mode", StrictFunction: "In strict mode code, functions can only be declared at top level or inside a block", + StrictNumericEscape: "The only valid numeric escape in strict mode is '\\0'", StrictOctalLiteral: "Legacy octal literals are not allowed in strict mode", StrictWith: "'with' in strict mode", SuperNotAllowed: diff --git a/packages/babel-parser/src/parser/expression.js b/packages/babel-parser/src/parser/expression.js index 4eb181eea25e..9df262f9cf13 100644 --- a/packages/babel-parser/src/parser/expression.js +++ b/packages/babel-parser/src/parser/expression.js @@ -44,6 +44,7 @@ import { import { ExpressionErrors } from "./util"; import { PARAM_AWAIT, + PARAM_IN, PARAM_RETURN, PARAM, functionFlags, @@ -90,7 +91,6 @@ export default class ExpressionParser extends LValParser { prop.type === "SpreadElement" || prop.type === "ObjectMethod" || prop.computed || - // $FlowIgnore prop.shorthand ) { return; @@ -121,6 +121,12 @@ export default class ExpressionParser extends LValParser { } } + shouldExitDescending(expr: N.Expression, potentialArrowAt: number): boolean { + return ( + expr.type === "ArrowFunctionExpression" && expr.start === potentialArrowAt + ); + } + // Convenience method to parse an Expression only getExpression(): N.Expression { let paramFlags = PARAM; @@ -148,11 +154,9 @@ export default class ExpressionParser extends LValParser { // the AST node that the inner parser gave them in another node. // Parse a full expression. - // - `noIn` + // - `disallowIn` // is used to forbid the `in` operator (in for loops initialization expressions) - // When `noIn` is true, the production parameter [In] is not present. - // Whenever [?In] appears in the right-hand sides of a production, we pass - // `noIn` to the subroutine calls. + // When `disallowIn` is true, the production parameter [In] is not present. // - `refExpressionErrors ` // provides reference for storing '=' operator inside shorthand @@ -161,17 +165,27 @@ export default class ExpressionParser extends LValParser { // delayed syntax error at correct position). parseExpression( - noIn?: boolean, + disallowIn?: boolean, refExpressionErrors?: ExpressionErrors, ): N.Expression { + if (disallowIn) { + return this.disallowInAnd(() => + this.parseExpressionBase(refExpressionErrors), + ); + } + return this.allowInAnd(() => this.parseExpressionBase(refExpressionErrors)); + } + + // https://tc39.es/ecma262/#prod-Expression + parseExpressionBase(refExpressionErrors?: ExpressionErrors): N.Expression { const startPos = this.state.start; const startLoc = this.state.startLoc; - const expr = this.parseMaybeAssign(noIn, refExpressionErrors); + const expr = this.parseMaybeAssign(refExpressionErrors); if (this.match(tt.comma)) { const node = this.startNodeAt(startPos, startLoc); node.expressions = [expr]; while (this.eat(tt.comma)) { - node.expressions.push(this.parseMaybeAssign(noIn, refExpressionErrors)); + node.expressions.push(this.parseMaybeAssign(refExpressionErrors)); } this.toReferencedList(node.expressions); return this.finishNode(node, "SequenceExpression"); @@ -179,11 +193,41 @@ export default class ExpressionParser extends LValParser { return expr; } + // Set [~In] parameter for assignment expression + parseMaybeAssignDisallowIn( + refExpressionErrors?: ?ExpressionErrors, + afterLeftParse?: Function, + refNeedsArrowPos?: ?Pos, + ) { + return this.disallowInAnd(() => + this.parseMaybeAssign( + refExpressionErrors, + afterLeftParse, + refNeedsArrowPos, + ), + ); + } + + // Set [+In] parameter for assignment expression + parseMaybeAssignAllowIn( + refExpressionErrors?: ?ExpressionErrors, + afterLeftParse?: Function, + refNeedsArrowPos?: ?Pos, + ) { + return this.allowInAnd(() => + this.parseMaybeAssign( + refExpressionErrors, + afterLeftParse, + refNeedsArrowPos, + ), + ); + } + // Parse an assignment expression. This includes applications of // operators like `+=`. + // https://tc39.es/ecma262/#prod-AssignmentExpression parseMaybeAssign( - noIn?: ?boolean, refExpressionErrors?: ?ExpressionErrors, afterLeftParse?: Function, refNeedsArrowPos?: ?Pos, @@ -192,7 +236,7 @@ export default class ExpressionParser extends LValParser { const startLoc = this.state.startLoc; if (this.isContextual("yield")) { if (this.prodParam.hasYield) { - let left = this.parseYield(noIn); + let left = this.parseYield(); if (afterLeftParse) { left = afterLeftParse.call(this, left, startPos, startLoc); } @@ -217,7 +261,6 @@ export default class ExpressionParser extends LValParser { } let left = this.parseMaybeConditional( - noIn, refExpressionErrors, refNeedsArrowPos, ); @@ -229,12 +272,6 @@ export default class ExpressionParser extends LValParser { const operator = this.state.value; node.operator = operator; - if (operator === "??=") { - this.expectPlugin("logicalAssignment"); - } - if (operator === "||=" || operator === "&&=") { - this.expectPlugin("logicalAssignment"); - } if (this.match(tt.eq)) { node.left = this.toAssignable(left); refExpressionErrors.doubleProto = -1; // reset because double __proto__ is valid in assignment expression @@ -249,7 +286,7 @@ export default class ExpressionParser extends LValParser { this.checkLVal(left, undefined, undefined, "assignment expression"); this.next(); - node.right = this.parseMaybeAssign(noIn); + node.right = this.parseMaybeAssign(); return this.finishNode(node, "AssignmentExpression"); } else if (ownExpressionErrors) { this.checkExpressionErrors(refExpressionErrors, true); @@ -259,37 +296,26 @@ export default class ExpressionParser extends LValParser { } // Parse a ternary conditional (`?:`) operator. + // https://tc39.es/ecma262/#prod-ConditionalExpression parseMaybeConditional( - noIn: ?boolean, refExpressionErrors: ExpressionErrors, refNeedsArrowPos?: ?Pos, ): N.Expression { const startPos = this.state.start; const startLoc = this.state.startLoc; const potentialArrowAt = this.state.potentialArrowAt; - const expr = this.parseExprOps(noIn, refExpressionErrors); + const expr = this.parseExprOps(refExpressionErrors); - if ( - expr.type === "ArrowFunctionExpression" && - expr.start === potentialArrowAt - ) { + if (this.shouldExitDescending(expr, potentialArrowAt)) { return expr; } - if (this.checkExpressionErrors(refExpressionErrors, false)) return expr; - return this.parseConditional( - expr, - noIn, - startPos, - startLoc, - refNeedsArrowPos, - ); + return this.parseConditional(expr, startPos, startLoc, refNeedsArrowPos); } parseConditional( expr: N.Expression, - noIn: ?boolean, startPos: number, startLoc: Position, // FIXME: Disabling this for now since can't seem to get it to play nicely @@ -299,36 +325,28 @@ export default class ExpressionParser extends LValParser { if (this.eat(tt.question)) { const node = this.startNodeAt(startPos, startLoc); node.test = expr; - node.consequent = this.parseMaybeAssign(); + node.consequent = this.parseMaybeAssignAllowIn(); this.expect(tt.colon); - node.alternate = this.parseMaybeAssign(noIn); + node.alternate = this.parseMaybeAssign(); return this.finishNode(node, "ConditionalExpression"); } return expr; } // Start the precedence parser. + // https://tc39.es/ecma262/#prod-ShortCircuitExpression - parseExprOps( - noIn: ?boolean, - refExpressionErrors: ExpressionErrors, - ): N.Expression { + parseExprOps(refExpressionErrors: ExpressionErrors): N.Expression { const startPos = this.state.start; const startLoc = this.state.startLoc; const potentialArrowAt = this.state.potentialArrowAt; const expr = this.parseMaybeUnary(refExpressionErrors); - if ( - expr.type === "ArrowFunctionExpression" && - expr.start === potentialArrowAt - ) { - return expr; - } - if (this.checkExpressionErrors(refExpressionErrors, false)) { + if (this.shouldExitDescending(expr, potentialArrowAt)) { return expr; } - return this.parseExprOp(expr, startPos, startLoc, -1, noIn); + return this.parseExprOp(expr, startPos, startLoc, -1); } // Parse binary operators with the operator precedence parsing @@ -342,20 +360,24 @@ export default class ExpressionParser extends LValParser { leftStartPos: number, leftStartLoc: Position, minPrec: number, - noIn: ?boolean, ): N.Expression { let prec = this.state.type.binop; - if (prec != null && (!noIn || !this.match(tt._in))) { + if (prec != null && (this.prodParam.hasIn || !this.match(tt._in))) { if (prec > minPrec) { - const operator = this.state.value; - if (operator === "|>" && this.state.inFSharpPipelineDirectBody) { - return left; + const op = this.state.type; + if (op === tt.pipeline) { + this.expectPlugin("pipelineOperator"); + if (this.state.inFSharpPipelineDirectBody) { + return left; + } + this.state.inPipeline = true; + this.checkPipelineAtInfixOperator(left, leftStartPos); } const node = this.startNodeAt(leftStartPos, leftStartLoc); node.left = left; - node.operator = operator; + node.operator = this.state.value; if ( - operator === "**" && + op === tt.exponent && left.type === "UnaryExpression" && (this.options.createParenthesizedExpressions || !(left.extra && left.extra.parenthesized)) @@ -366,15 +388,10 @@ export default class ExpressionParser extends LValParser { ); } - const op = this.state.type; const logical = op === tt.logicalOR || op === tt.logicalAND; const coalesce = op === tt.nullishCoalescing; - if (op === tt.pipeline) { - this.expectPlugin("pipelineOperator"); - this.state.inPipeline = true; - this.checkPipelineAtInfixOperator(left, leftStartPos); - } else if (coalesce) { + if (coalesce) { // Handle the precedence of `tt.coalesce` as equal to the range of logical expressions. // In other words, `node.right` shouldn't contain logical expressions in order to check the mixed error. prec = ((tt.logicalAND: any): { binop: number }).binop; @@ -398,7 +415,7 @@ export default class ExpressionParser extends LValParser { } } - node.right = this.parseExprOpRightExpr(op, prec, noIn); + node.right = this.parseExprOpRightExpr(op, prec); this.finishNode( node, logical || coalesce ? "LogicalExpression" : "BinaryExpression", @@ -416,13 +433,7 @@ export default class ExpressionParser extends LValParser { throw this.raise(this.state.start, Errors.MixingCoalesceWithLogical); } - return this.parseExprOp( - node, - leftStartPos, - leftStartLoc, - minPrec, - noIn, - ); + return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec); } } return left; @@ -431,11 +442,7 @@ export default class ExpressionParser extends LValParser { // Helper function for `parseExprOp`. Parse the right-hand side of binary- // operator expressions, then apply any operator-specific functions. - parseExprOpRightExpr( - op: TokenType, - prec: number, - noIn: ?boolean, - ): N.Expression { + parseExprOpRightExpr(op: TokenType, prec: number): N.Expression { const startPos = this.state.start; const startLoc = this.state.startLoc; switch (op) { @@ -444,31 +451,27 @@ export default class ExpressionParser extends LValParser { case "smart": return this.withTopicPermittingContext(() => { return this.parseSmartPipelineBody( - this.parseExprOpBaseRightExpr(op, prec, noIn), + this.parseExprOpBaseRightExpr(op, prec), startPos, startLoc, ); }); case "fsharp": return this.withSoloAwaitPermittingContext(() => { - return this.parseFSharpPipelineBody(prec, noIn); + return this.parseFSharpPipelineBody(prec); }); } // falls through default: - return this.parseExprOpBaseRightExpr(op, prec, noIn); + return this.parseExprOpBaseRightExpr(op, prec); } } // Helper function for `parseExprOpRightExpr`. Parse the right-hand side of // binary-operator expressions without applying any operator-specific functions. - parseExprOpBaseRightExpr( - op: TokenType, - prec: number, - noIn: ?boolean, - ): N.Expression { + parseExprOpBaseRightExpr(op: TokenType, prec: number): N.Expression { const startPos = this.state.start; const startLoc = this.state.startLoc; @@ -477,33 +480,32 @@ export default class ExpressionParser extends LValParser { startPos, startLoc, op.rightAssociative ? prec - 1 : prec, - noIn, ); } // Parse unary operators, both prefix and postfix. - + // https://tc39.es/ecma262/#prod-UnaryExpression parseMaybeUnary(refExpressionErrors: ?ExpressionErrors): N.Expression { if (this.isContextual("await") && this.isAwaitAllowed()) { return this.parseAwait(); - } else if (this.state.type.prefix) { - const node = this.startNode(); - const update = this.match(tt.incDec); + } + const update = this.match(tt.incDec); + const node = this.startNode(); + if (this.state.type.prefix) { node.operator = this.state.value; node.prefix = true; - if (node.operator === "throw") { + if (this.match(tt._throw)) { this.expectPlugin("throwExpressions"); } + const isDelete = this.match(tt._delete); this.next(); node.argument = this.parseMaybeUnary(); this.checkExpressionErrors(refExpressionErrors, true); - if (update) { - this.checkLVal(node.argument, undefined, undefined, "prefix operation"); - } else if (this.state.strict && node.operator === "delete") { + if (this.state.strict && isDelete) { const arg = node.argument; if (arg.type === "Identifier") { @@ -517,10 +519,23 @@ export default class ExpressionParser extends LValParser { } } - return this.finishNode( - node, - update ? "UpdateExpression" : "UnaryExpression", - ); + if (!update) { + return this.finishNode(node, "UnaryExpression"); + } + } + + return this.parseUpdate(node, update, refExpressionErrors); + } + + // https://tc39.es/ecma262/#prod-UpdateExpression + parseUpdate( + node: N.Expression, + update: boolean, + refExpressionErrors: ?ExpressionErrors, + ): N.Expression { + if (update) { + this.checkLVal(node.argument, undefined, undefined, "prefix operation"); + return this.finishNode(node, "UpdateExpression"); } const startPos = this.state.start; @@ -540,17 +555,14 @@ export default class ExpressionParser extends LValParser { } // Parse call, dot, and `[]`-subscript expressions. - + // https://tc39.es/ecma262/#prod-LeftHandSideExpression parseExprSubscripts(refExpressionErrors: ?ExpressionErrors): N.Expression { const startPos = this.state.start; const startLoc = this.state.startLoc; const potentialArrowAt = this.state.potentialArrowAt; const expr = this.parseExprAtom(refExpressionErrors); - if ( - expr.type === "ArrowFunctionExpression" && - expr.start === potentialArrowAt - ) { + if (this.shouldExitDescending(expr, potentialArrowAt)) { return expr; } @@ -594,153 +606,198 @@ export default class ExpressionParser extends LValParser { state: N.ParseSubscriptState, ): N.Expression { if (!noCalls && this.eat(tt.doubleColon)) { - const node = this.startNodeAt(startPos, startLoc); - node.object = base; - node.callee = this.parseNoCallExpr(); - state.stop = true; - return this.parseSubscripts( - this.finishNode(node, "BindExpression"), + return this.parseBind(base, startPos, startLoc, noCalls, state); + } else if (this.match(tt.backQuote)) { + return this.parseTaggedTemplateExpression( + base, startPos, startLoc, - noCalls, + state, ); } + let optional = false; if (this.match(tt.questionDot)) { state.optionalChainMember = optional = true; if (noCalls && this.lookaheadCharCode() === charCodes.leftParenthesis) { + // stop at `?.` when parsing `new a?.()` state.stop = true; return base; } this.next(); } + + if (!noCalls && this.match(tt.parenL)) { + return this.parseCoverCallAndAsyncArrowHead( + base, + startPos, + startLoc, + state, + optional, + ); + } else if (optional || this.match(tt.bracketL) || this.eat(tt.dot)) { + return this.parseMember(base, startPos, startLoc, state, optional); + } else { + state.stop = true; + return base; + } + } + + // base[?Yield, ?Await] [ Expression[+In, ?Yield, ?Await] ] + // base[?Yield, ?Await] . IdentifierName + // base[?Yield, ?Await] . PrivateIdentifier + // where `base` is one of CallExpression, MemberExpression and OptionalChain + parseMember( + base: N.Expression, + startPos: number, + startLoc: Position, + state: N.ParseSubscriptState, + optional: boolean, + ): N.OptionalMemberExpression | N.MemberExpression { + const node = this.startNodeAt(startPos, startLoc); const computed = this.eat(tt.bracketL); - if ( - (optional && !this.match(tt.parenL) && !this.match(tt.backQuote)) || - computed || - this.eat(tt.dot) - ) { - const node = this.startNodeAt(startPos, startLoc); - node.object = base; - node.property = computed - ? this.parseExpression() - : this.parseMaybePrivateName(true); - node.computed = computed; - - if (node.property.type === "PrivateName") { - if (node.object.type === "Super") { - this.raise(startPos, Errors.SuperPrivateField); - } - this.classScope.usePrivateName( - node.property.id.name, - node.property.start, - ); + node.object = base; + node.computed = computed; + const property = computed + ? this.parseExpression() + : this.parseMaybePrivateName(true); + + if (property.type === "PrivateName") { + if (node.object.type === "Super") { + this.raise(startPos, Errors.SuperPrivateField); } + this.classScope.usePrivateName(property.id.name, property.start); + } + node.property = property; - if (computed) { - this.expect(tt.bracketR); - } + if (computed) { + this.expect(tt.bracketR); + } - if (state.optionalChainMember) { - node.optional = optional; - return this.finishNode(node, "OptionalMemberExpression"); - } else { - return this.finishNode(node, "MemberExpression"); - } - } else if (!noCalls && this.match(tt.parenL)) { - const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; - const oldYieldPos = this.state.yieldPos; - const oldAwaitPos = this.state.awaitPos; - this.state.maybeInArrowParameters = true; - this.state.yieldPos = -1; - this.state.awaitPos = -1; + if (state.optionalChainMember) { + node.optional = optional; + return this.finishNode(node, "OptionalMemberExpression"); + } else { + return this.finishNode(node, "MemberExpression"); + } + } - this.next(); + // https://github.com/tc39/proposal-bind-operator#syntax + parseBind( + base: N.Expression, + startPos: number, + startLoc: Position, + noCalls: ?boolean, + state: N.ParseSubscriptState, + ): N.Expression { + const node = this.startNodeAt(startPos, startLoc); + node.object = base; + node.callee = this.parseNoCallExpr(); + state.stop = true; + return this.parseSubscripts( + this.finishNode(node, "BindExpression"), + startPos, + startLoc, + noCalls, + ); + } - let node = this.startNodeAt(startPos, startLoc); - node.callee = base; + // https://tc39.es/ecma262/#prod-CoverCallExpressionAndAsyncArrowHead + // CoverCallExpressionAndAsyncArrowHead + // CallExpression[?Yield, ?Await] Arguments[?Yield, ?Await] + // OptionalChain[?Yield, ?Await] Arguments[?Yield, ?Await] + parseCoverCallAndAsyncArrowHead( + base: N.Expression, + startPos: number, + startLoc: Position, + state: N.ParseSubscriptState, + optional: boolean, + ): N.Expression { + const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; + const oldYieldPos = this.state.yieldPos; + const oldAwaitPos = this.state.awaitPos; + this.state.maybeInArrowParameters = true; + this.state.yieldPos = -1; + this.state.awaitPos = -1; - if (optional) { - node.optional = true; - node.arguments = this.parseCallExpressionArguments(tt.parenR, false); - } else { - node.arguments = this.parseCallExpressionArguments( - tt.parenR, - state.maybeAsyncArrow, - base.type === "Import", - base.type !== "Super", - node, - ); - } - this.finishCallExpression(node, state.optionalChainMember); + this.next(); // eat `(` - if (state.maybeAsyncArrow && this.shouldParseAsyncArrow() && !optional) { - state.stop = true; + let node = this.startNodeAt(startPos, startLoc); + node.callee = base; - node = this.parseAsyncArrowFromCallExpression( - this.startNodeAt(startPos, startLoc), - node, - ); - this.checkYieldAwaitInDefaultParams(); - this.state.yieldPos = oldYieldPos; - this.state.awaitPos = oldAwaitPos; - } else { - this.toReferencedListDeep(node.arguments); - - // We keep the old value if it isn't null, for cases like - // (x = async(yield)) => {} - // - // Hi developer of the future :) If you are implementing generator - // arrow functions, please read the note below about "await" and - // verify if the same logic is needed for yield. - if (oldYieldPos !== -1) this.state.yieldPos = oldYieldPos; - - // Await is trickier than yield. When parsing a possible arrow function - // (e.g. something starting with `async(`) we don't know if its possible - // parameters will actually be inside an async arrow function or if it is - // a normal call expression. - // If it ended up being a call expression, if we are in a context where - // await expression are disallowed (and thus "await" is an identifier) - // we must be careful not to leak this.state.awaitPos to an even outer - // context, where "await" could not be an identifier. - // For example, this code is valid because "await" isn't directly inside - // an async function: - // - // async function a() { - // function b(param = async (await)) { - // } - // } - // - if ( - (!this.isAwaitAllowed() && !oldMaybeInArrowParameters) || - oldAwaitPos !== -1 - ) { - this.state.awaitPos = oldAwaitPos; - } - } + if (state.optionalChainMember) { + node.optional = optional; + } + if (optional) { + node.arguments = this.parseCallExpressionArguments(tt.parenR, false); + } else { + node.arguments = this.parseCallExpressionArguments( + tt.parenR, + state.maybeAsyncArrow, + base.type === "Import", + base.type !== "Super", + node, + ); + } + this.finishCallExpression(node, state.optionalChainMember); - this.state.maybeInArrowParameters = oldMaybeInArrowParameters; + if (state.maybeAsyncArrow && this.shouldParseAsyncArrow() && !optional) { + state.stop = true; - return node; - } else if (this.match(tt.backQuote)) { - return this.parseTaggedTemplateExpression( - startPos, - startLoc, - base, - state, + node = this.parseAsyncArrowFromCallExpression( + this.startNodeAt(startPos, startLoc), + node, ); + this.checkYieldAwaitInDefaultParams(); + this.state.yieldPos = oldYieldPos; + this.state.awaitPos = oldAwaitPos; } else { - state.stop = true; - return base; + this.toReferencedListDeep(node.arguments); + + // We keep the old value if it isn't null, for cases like + // (x = async(yield)) => {} + // + // Hi developer of the future :) If you are implementing generator + // arrow functions, please read the note below about "await" and + // verify if the same logic is needed for yield. + if (oldYieldPos !== -1) this.state.yieldPos = oldYieldPos; + + // Await is trickier than yield. When parsing a possible arrow function + // (e.g. something starting with `async(`) we don't know if its possible + // parameters will actually be inside an async arrow function or if it is + // a normal call expression. + // If it ended up being a call expression, if we are in a context where + // await expression are disallowed (and thus "await" is an identifier) + // we must be careful not to leak this.state.awaitPos to an even outer + // context, where "await" could not be an identifier. + // For example, this code is valid because "await" isn't directly inside + // an async function: + // + // async function a() { + // function b(param = async (await)) { + // } + // } + // + if ( + (!this.isAwaitAllowed() && !oldMaybeInArrowParameters) || + oldAwaitPos !== -1 + ) { + this.state.awaitPos = oldAwaitPos; + } } + + this.state.maybeInArrowParameters = oldMaybeInArrowParameters; + + return node; } + // MemberExpression [?Yield, ?Await] TemplateLiteral[?Yield, ?Await, +Tagged] + // CallExpression [?Yield, ?Await] TemplateLiteral[?Yield, ?Await, +Tagged] parseTaggedTemplateExpression( + base: N.Expression, startPos: number, startLoc: Position, - base: N.Expression, state: N.ParseSubscriptState, - typeArguments?: ?N.TsTypeParameterInstantiation, ): N.TaggedTemplateExpression { const node: N.TaggedTemplateExpression = this.startNodeAt( startPos, @@ -748,7 +805,6 @@ export default class ExpressionParser extends LValParser { ); node.tag = base; node.quasi = this.parseTemplate(true); - if (typeArguments) node.typeParameters = typeArguments; if (state.optionalChainMember) { this.raise(startPos, Errors.OptionalChainingNoTemplate); } @@ -879,7 +935,7 @@ export default class ExpressionParser extends LValParser { } // Parse a no-call expression (like argument of `new` or `::` operators). - + // https://tc39.es/ecma262/#prod-MemberExpression parseNoCallExpr(): N.Expression { const startPos = this.state.start; const startLoc = this.state.startLoc; @@ -891,6 +947,13 @@ export default class ExpressionParser extends LValParser { // `new`, or an expression wrapped in punctuation like `()`, `[]`, // or `{}`. + // https://tc39.es/ecma262/#prod-PrimaryExpression + // https://tc39.es/ecma262/#prod-AsyncArrowFunction + // PrimaryExpression + // Super + // Import + // AsyncArrowFunction + parseExprAtom(refExpressionErrors?: ?ExpressionErrors): N.Expression { // If a division operator appears in an expression position, the // tokenizer got confused, and we force it to read a regexp instead. @@ -901,30 +964,7 @@ export default class ExpressionParser extends LValParser { switch (this.state.type) { case tt._super: - node = this.startNode(); - this.next(); - if ( - this.match(tt.parenL) && - !this.scope.allowDirectSuper && - !this.options.allowSuperOutsideMethod - ) { - this.raise(node.start, Errors.SuperNotAllowed); - } else if ( - !this.scope.allowSuper && - !this.options.allowSuperOutsideMethod - ) { - this.raise(node.start, Errors.UnexpectedSuper); - } - - if ( - !this.match(tt.parenL) && - !this.match(tt.bracketL) && - !this.match(tt.dot) - ) { - this.raise(node.start, Errors.UnsupportedSuper); - } - - return this.finishNode(node, "Super"); + return this.parseSuper(); case tt._import: node = this.startNode(); @@ -944,76 +984,49 @@ export default class ExpressionParser extends LValParser { return this.finishNode(node, "ThisExpression"); case tt.name: { - node = this.startNode(); const containsEsc = this.state.containsEsc; const id = this.parseIdentifier(); - if ( - !containsEsc && - id.name === "async" && - this.match(tt._function) && - !this.canInsertSemicolon() - ) { - const last = this.state.context.length - 1; - if (this.state.context[last] !== ct.functionStatement) { - // Since "async" is an identifier and normally identifiers - // can't be followed by expression, the tokenizer assumes - // that "function" starts a statement. - // Fixing it in the tokenizer would mean tracking not only the - // previous token ("async"), but also the one before to know - // its beforeExpr value. - // It's easier and more efficient to adjust the context here. - throw new Error("Internal error"); + if (!containsEsc && id.name === "async" && !this.canInsertSemicolon()) { + if (this.match(tt._function)) { + const last = this.state.context.length - 1; + if (this.state.context[last] !== ct.functionStatement) { + // Since "async" is an identifier and normally identifiers + // can't be followed by expression, the tokenizer assumes + // that "function" starts a statement. + // Fixing it in the tokenizer would mean tracking not only the + // previous token ("async"), but also the one before to know + // its beforeExpr value. + // It's easier and more efficient to adjust the context here. + throw new Error("Internal error"); + } + this.state.context[last] = ct.functionExpression; + + this.next(); + return this.parseFunction( + this.startNodeAtNode(id), + undefined, + true, + ); + } else if (this.match(tt.name)) { + return this.parseAsyncArrowUnaryFunction(id); } - this.state.context[last] = ct.functionExpression; - - this.next(); - return this.parseFunction(node, undefined, true); - } else if ( - canBeArrow && - !containsEsc && - id.name === "async" && - this.match(tt.name) && - !this.canInsertSemicolon() - ) { - const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; - const oldMaybeInAsyncArrowHead = this.state.maybeInAsyncArrowHead; - const oldYieldPos = this.state.yieldPos; - const oldAwaitPos = this.state.awaitPos; - this.state.maybeInArrowParameters = true; - this.state.maybeInAsyncArrowHead = true; - this.state.yieldPos = -1; - this.state.awaitPos = -1; - const params = [this.parseIdentifier()]; - this.expect(tt.arrow); - this.checkYieldAwaitInDefaultParams(); - this.state.maybeInArrowParameters = oldMaybeInArrowParameters; - this.state.maybeInAsyncArrowHead = oldMaybeInAsyncArrowHead; - this.state.yieldPos = oldYieldPos; - this.state.awaitPos = oldAwaitPos; - // let foo = async bar => {}; - this.parseArrowExpression(node, params, true); - return node; } if (canBeArrow && this.match(tt.arrow) && !this.canInsertSemicolon()) { this.next(); - this.parseArrowExpression(node, [id], false); - return node; + return this.parseArrowExpression( + this.startNodeAtNode(id), + [id], + false, + ); } return id; } case tt._do: { - this.expectPlugin("doExpressions"); - const node = this.startNode(); - this.next(); - const oldLabels = this.state.labels; - this.state.labels = []; - node.body = this.parseBlock(); - this.state.labels = oldLabels; - return this.finishNode(node, "DoExpression"); + return this.parseDo(); } case tt.regexp: { @@ -1030,6 +1043,9 @@ export default class ExpressionParser extends LValParser { case tt.bigint: return this.parseLiteral(this.state.value, "BigIntLiteral"); + case tt.decimal: + return this.parseLiteral(this.state.value, "DecimalLiteral"); + case tt.string: return this.parseLiteral(this.state.value, "StringLiteral"); @@ -1047,68 +1063,40 @@ export default class ExpressionParser extends LValParser { case tt.bracketBarL: case tt.bracketHashL: { - this.expectPlugin("recordAndTuple"); - const oldInFSharpPipelineDirectBody = this.state - .inFSharpPipelineDirectBody; - const close = - this.state.type === tt.bracketBarL ? tt.bracketBarR : tt.bracketR; - this.state.inFSharpPipelineDirectBody = false; - node = this.startNode(); - this.next(); - node.elements = this.parseExprList( - close, - false, + return this.parseArrayLike( + this.state.type === tt.bracketBarL ? tt.bracketBarR : tt.bracketR, + /* canBePattern */ false, + /* isTuple */ true, refExpressionErrors, - node, ); - this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; - return this.finishNode(node, "TupleExpression"); } case tt.bracketL: { - const oldInFSharpPipelineDirectBody = this.state - .inFSharpPipelineDirectBody; - this.state.inFSharpPipelineDirectBody = false; - node = this.startNode(); - this.next(); - node.elements = this.parseExprList( + return this.parseArrayLike( tt.bracketR, - true, + /* canBePattern */ true, + /* isTuple */ false, refExpressionErrors, - node, ); - if (!this.state.maybeInArrowParameters) { - // This could be an array pattern: - // ([a: string, b: string]) => {} - // In this case, we don't have to call toReferencedList. We will - // call it, if needed, when we are sure that it is a parenthesized - // expression by calling toReferencedListDeep. - this.toReferencedList(node.elements); - } - this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; - return this.finishNode(node, "ArrayExpression"); } case tt.braceBarL: case tt.braceHashL: { - this.expectPlugin("recordAndTuple"); - const oldInFSharpPipelineDirectBody = this.state - .inFSharpPipelineDirectBody; - const close = - this.state.type === tt.braceBarL ? tt.braceBarR : tt.braceR; - this.state.inFSharpPipelineDirectBody = false; - const ret = this.parseObj(close, false, true, refExpressionErrors); - this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; - return ret; + return this.parseObjectLike( + this.state.type === tt.braceBarL ? tt.braceBarR : tt.braceR, + /* isPattern */ false, + /* isRecord */ true, + refExpressionErrors, + ); } case tt.braceL: { - const oldInFSharpPipelineDirectBody = this.state - .inFSharpPipelineDirectBody; - this.state.inFSharpPipelineDirectBody = false; - const ret = this.parseObj(tt.braceR, false, false, refExpressionErrors); - this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; - return ret; + return this.parseObjectLike( + tt.braceR, + /* isPattern */ false, + /* isRecord */ false, + refExpressionErrors, + ); } case tt._function: - return this.parseFunctionExpression(); + return this.parseFunctionOrFunctionSent(); case tt.at: this.parseDecorators(); @@ -1119,11 +1107,13 @@ export default class ExpressionParser extends LValParser { return this.parseClass(node, false); case tt._new: - return this.parseNew(); + return this.parseNewOrNewTarget(); case tt.backQuote: return this.parseTemplate(false); + // BindExpression[Yield] + // :: MemberExpression[?Yield] case tt.doubleColon: { node = this.startNode(); this.next(); @@ -1156,6 +1146,9 @@ export default class ExpressionParser extends LValParser { return this.finishNode(node, "PipelinePrimaryTopicReference"); } + // https://tc39.es/proposal-private-fields-in-in + // RelationalExpression [In, Yield, Await] + // [+In] PrivateIdentifier in ShiftExpression[?Yield, ?Await] const nextCh = this.input.codePointAt(this.state.end); if (isIdentifierStart(nextCh) || nextCh === charCodes.backslash) { const start = this.state.start; @@ -1194,6 +1187,72 @@ export default class ExpressionParser extends LValParser { } } + // async [no LineTerminator here] AsyncArrowBindingIdentifier[?Yield] [no LineTerminator here] => AsyncConciseBody[?In] + parseAsyncArrowUnaryFunction(id: N.Expression): N.ArrowFunctionExpression { + const node = this.startNodeAtNode(id); + const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; + const oldMaybeInAsyncArrowHead = this.state.maybeInAsyncArrowHead; + const oldYieldPos = this.state.yieldPos; + const oldAwaitPos = this.state.awaitPos; + this.state.maybeInArrowParameters = true; + this.state.maybeInAsyncArrowHead = true; + this.state.yieldPos = -1; + this.state.awaitPos = -1; + const params = [this.parseIdentifier()]; + if (this.hasPrecedingLineBreak()) { + this.raise(this.state.pos, Errors.LineTerminatorBeforeArrow); + } + this.expect(tt.arrow); + this.checkYieldAwaitInDefaultParams(); + this.state.maybeInArrowParameters = oldMaybeInArrowParameters; + this.state.maybeInAsyncArrowHead = oldMaybeInAsyncArrowHead; + this.state.yieldPos = oldYieldPos; + this.state.awaitPos = oldAwaitPos; + // let foo = async bar => {}; + this.parseArrowExpression(node, params, true); + return node; + } + + // https://github.com/tc39/proposal-do-expressions + parseDo(): N.DoExpression { + this.expectPlugin("doExpressions"); + const node = this.startNode(); + this.next(); // eat `do` + const oldLabels = this.state.labels; + this.state.labels = []; + node.body = this.parseBlock(); + this.state.labels = oldLabels; + return this.finishNode(node, "DoExpression"); + } + + // Parse the `super` keyword + parseSuper(): N.Super { + const node = this.startNode(); + this.next(); // eat `super` + if ( + this.match(tt.parenL) && + !this.scope.allowDirectSuper && + !this.options.allowSuperOutsideMethod + ) { + this.raise(node.start, Errors.SuperNotAllowed); + } else if ( + !this.scope.allowSuper && + !this.options.allowSuperOutsideMethod + ) { + this.raise(node.start, Errors.UnexpectedSuper); + } + + if ( + !this.match(tt.parenL) && + !this.match(tt.bracketL) && + !this.match(tt.dot) + ) { + this.raise(node.start, Errors.UnsupportedSuper); + } + + return this.finishNode(node, "Super"); + } + parseBooleanLiteral(): N.BooleanLiteral { const node = this.startNode(); node.value = this.match(tt._true); @@ -1221,19 +1280,22 @@ export default class ExpressionParser extends LValParser { } } - parseFunctionExpression(): N.FunctionExpression | N.MetaProperty { + parseFunctionOrFunctionSent(): N.FunctionExpression | N.MetaProperty { const node = this.startNode(); - // We do not do parseIdentifier here because when parseFunctionExpression + // We do not do parseIdentifier here because when parseFunctionOrFunctionSent // is called we already know that the current token is a "name" with the value "function" // This will improve perf a tiny little bit as we do not do validation but more importantly // here is that parseIdentifier will remove an item from the expression stack // if "function" or "class" is parsed as identifier (in objects e.g.), which should not happen here. - let meta = this.startNode(); - this.next(); - meta = this.createIdentifier(meta, "function"); + this.next(); // eat `function` - if (this.prodParam.hasYield && this.eat(tt.dot)) { + if (this.prodParam.hasYield && this.match(tt.dot)) { + const meta = this.createIdentifier( + this.startNodeAtNode(node), + "function", + ); + this.next(); // eat `.` return this.parseMetaProperty(node, meta, "sent"); } return this.parseFunction(node); @@ -1247,6 +1309,7 @@ export default class ExpressionParser extends LValParser { node.meta = meta; if (meta.name === "function" && propertyName === "sent") { + // https://github.com/tc39/proposal-function.sent#syntax-1 if (this.isContextual(propertyName)) { this.expectPlugin("functionSent"); } else if (!this.hasPlugin("functionSent")) { @@ -1271,9 +1334,10 @@ export default class ExpressionParser extends LValParser { return this.finishNode(node, "MetaProperty"); } + // https://tc39.es/ecma262/#prod-ImportMeta parseImportMetaProperty(node: N.MetaProperty): N.MetaProperty { const id = this.createIdentifier(this.startNodeAtNode(node), "import"); - this.expect(tt.dot); + this.next(); // eat `.` if (this.isContextual("meta")) { if (!this.inModule) { @@ -1306,12 +1370,13 @@ export default class ExpressionParser extends LValParser { return this.finishNode(node, type); } + // https://tc39.es/ecma262/#prod-CoverParenthesizedExpressionAndArrowParameterList parseParenAndDistinguishExpression(canBeArrow: boolean): N.Expression { const startPos = this.state.start; const startLoc = this.state.startLoc; let val; - this.expect(tt.parenL); + this.next(); // eat `(` const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; const oldYieldPos = this.state.yieldPos; @@ -1359,8 +1424,7 @@ export default class ExpressionParser extends LValParser { break; } else { exprList.push( - this.parseMaybeAssign( - false, + this.parseMaybeAssignAllowIn( refExpressionErrors, this.parseParenItem, refNeedsArrowPos, @@ -1369,8 +1433,8 @@ export default class ExpressionParser extends LValParser { } } - const innerEndPos = this.state.start; - const innerEndLoc = this.state.startLoc; + const innerEndPos = this.state.lastTokEnd; + const innerEndLoc = this.state.lastTokEndLoc; this.expect(tt.parenR); this.state.maybeInArrowParameters = oldMaybeInArrowParameters; @@ -1450,20 +1514,13 @@ export default class ExpressionParser extends LValParser { return node; } - // New's precedence is slightly tricky. It must allow its argument to - // be a `[]` or dot subscript expression, but not a call — at least, - // not without wrapping it in parentheses. Thus, it uses the noCalls - // argument to parseSubscripts to prevent it from consuming the - // argument list. - - parseNew(): N.NewExpression | N.MetaProperty { + parseNewOrNewTarget(): N.NewExpression | N.MetaProperty { const node = this.startNode(); - - let meta = this.startNode(); this.next(); - meta = this.createIdentifier(meta, "new"); - - if (this.eat(tt.dot)) { + if (this.match(tt.dot)) { + // https://tc39.es/ecma262/#prod-NewTarget + const meta = this.createIdentifier(this.startNodeAtNode(node), "new"); + this.next(); const metaProp = this.parseMetaProperty(node, meta, "target"); if (!this.scope.inNonArrowFunction && !this.scope.inClass) { @@ -1481,6 +1538,16 @@ export default class ExpressionParser extends LValParser { return metaProp; } + return this.parseNew(node); + } + + // New's precedence is slightly tricky. It must allow its argument to + // be a `[]` or dot subscript expression, but not a call — at least, + // not without wrapping it in parentheses. Thus, it uses the noCalls + // argument to parseSubscripts to prevent it from consuming the + // argument list. + // https://tc39.es/ecma262/#prod-NewExpression + parseNew(node: N.Expression): N.NewExpression { node.callee = this.parseNoCallExpr(); if (node.callee.type === "Import") { @@ -1529,6 +1596,7 @@ export default class ExpressionParser extends LValParser { return this.finishNode(elem, "TemplateElement"); } + // https://tc39.es/ecma262/#prod-TemplateLiteral parseTemplate(isTagged: boolean): N.TemplateLiteral { const node = this.startNode(); this.next(); @@ -1547,12 +1615,17 @@ export default class ExpressionParser extends LValParser { // Parse an object literal, binding pattern, or record. - parseObj( + parseObjectLike( close: TokenType, isPattern: boolean, isRecord?: ?boolean, refExpressionErrors?: ?ExpressionErrors, ): T { + if (isRecord) { + this.expectPlugin("recordAndTuple"); + } + const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; + this.state.inFSharpPipelineDirectBody = false; const propHash: any = Object.create(null); let first = true; const node = this.startNode(); @@ -1572,7 +1645,7 @@ export default class ExpressionParser extends LValParser { } } - const prop = this.parseObjectMember(isPattern, refExpressionErrors); + const prop = this.parsePropertyDefinition(isPattern, refExpressionErrors); if (!isPattern) { // $FlowIgnore RestElement will never be returned if !isPattern this.checkProto(prop, isRecord, propHash, refExpressionErrors); @@ -1594,6 +1667,7 @@ export default class ExpressionParser extends LValParser { node.properties.push(prop); } + this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; let type = "ObjectExpression"; if (isPattern) { type = "ObjectPattern"; @@ -1603,19 +1677,21 @@ export default class ExpressionParser extends LValParser { return this.finishNode(node, type); } - isAsyncProp(prop: N.ObjectProperty): boolean { + // Check grammar production: + // IdentifierName *_opt PropertyName + // It is used in `parsePropertyDefinition` to detect AsyncMethod and Accessors + maybeAsyncOrAccessorProp(prop: N.ObjectProperty): boolean { return ( !prop.computed && prop.key.type === "Identifier" && - prop.key.name === "async" && (this.isLiteralPropertyName() || this.match(tt.bracketL) || - this.match(tt.star)) && - !this.hasPrecedingLineBreak() + this.match(tt.star)) ); } - parseObjectMember( + // https://tc39.es/ecma262/#prod-PropertyDefinition + parsePropertyDefinition( isPattern: boolean, refExpressionErrors?: ?ExpressionErrors, ): N.ObjectMember | N.SpreadElement | N.RestElement { @@ -1635,6 +1711,7 @@ export default class ExpressionParser extends LValParser { const prop = this.startNode(); let isGenerator = false; let isAsync = false; + let isAccessor = false; let startPos; let startLoc; @@ -1668,14 +1745,33 @@ export default class ExpressionParser extends LValParser { } const containsEsc = this.state.containsEsc; - this.parsePropertyName(prop, /* isPrivateNameAllowed */ false); + const key = this.parsePropertyName(prop, /* isPrivateNameAllowed */ false); - if (!isPattern && !containsEsc && !isGenerator && this.isAsyncProp(prop)) { - isAsync = true; - isGenerator = this.eat(tt.star); - this.parsePropertyName(prop, /* isPrivateNameAllowed */ false); - } else { - isAsync = false; + if ( + !isPattern && + !isGenerator && + !containsEsc && + this.maybeAsyncOrAccessorProp(prop) + ) { + const keyName = key.name; + // https://tc39.es/ecma262/#prod-AsyncMethod + // https://tc39.es/ecma262/#prod-AsyncGeneratorMethod + if (keyName === "async" && !this.hasPrecedingLineBreak()) { + isAsync = true; + isGenerator = this.eat(tt.star); + this.parsePropertyName(prop, /* isPrivateNameAllowed */ false); + } + // get PropertyName[?Yield, ?Await] () { FunctionBody[~Yield, ~Await] } + // set PropertyName[?Yield, ?Await] ( PropertySetParameterList ) { FunctionBody[~Yield, ~Await] } + if (keyName === "get" || keyName === "set") { + isAccessor = true; + prop.kind = keyName; + if (this.match(tt.star)) { + this.raise(this.state.pos, Errors.AccessorIsGenerator, keyName); + this.next(); + } + this.parsePropertyName(prop, /* isPrivateNameAllowed */ false); + } } this.parseObjPropValue( @@ -1685,24 +1781,13 @@ export default class ExpressionParser extends LValParser { isGenerator, isAsync, isPattern, + isAccessor, refExpressionErrors, - containsEsc, ); return prop; } - isGetterOrSetterMethod(prop: N.ObjectMethod, isPattern: boolean): boolean { - return ( - !isPattern && - !prop.computed && - prop.key.type === "Identifier" && - (prop.key.name === "get" || prop.key.name === "set") && - (this.isLiteralPropertyName() || // get foo() {} - this.match(tt.bracketL)) // get ["string"]() {} - ); - } - getGetterSetterExpectedParamCount( method: N.ObjectMethod | N.ClassMethod, ): number { @@ -1730,44 +1815,45 @@ export default class ExpressionParser extends LValParser { } } + // https://tc39.es/ecma262/#prod-MethodDefinition parseObjectMethod( prop: N.ObjectMethod, isGenerator: boolean, isAsync: boolean, isPattern: boolean, - containsEsc: boolean, + isAccessor: boolean, ): ?N.ObjectMethod { - if (isAsync || isGenerator || this.match(tt.parenL)) { - if (isPattern) this.unexpected(); - prop.kind = "method"; - prop.method = true; - return this.parseMethod( + if (isAccessor) { + // isAccessor implies isAsync: false, isPattern: false, isGenerator: false + this.parseMethod( prop, - isGenerator, - isAsync, + /* isGenerator */ false, + /* isAsync */ false, /* isConstructor */ false, false, "ObjectMethod", ); + this.checkGetterSetterParams(prop); + return prop; } - if (!containsEsc && this.isGetterOrSetterMethod(prop, isPattern)) { - if (isGenerator || isAsync) this.unexpected(); - prop.kind = prop.key.name; - this.parsePropertyName(prop, /* isPrivateNameAllowed */ false); - this.parseMethod( + if (isAsync || isGenerator || this.match(tt.parenL)) { + if (isPattern) this.unexpected(); + prop.kind = "method"; + prop.method = true; + return this.parseMethod( prop, - /* isGenerator */ false, - /* isAsync */ false, + isGenerator, + isAsync, /* isConstructor */ false, false, "ObjectMethod", ); - this.checkGetterSetterParams(prop); - return prop; } } + // if `isPattern` is true, parse https://tc39.es/ecma262/#prod-BindingProperty + // else https://tc39.es/ecma262/#prod-PropertyDefinition parseObjectProperty( prop: N.ObjectProperty, startPos: ?number, @@ -1780,13 +1866,17 @@ export default class ExpressionParser extends LValParser { if (this.eat(tt.colon)) { prop.value = isPattern ? this.parseMaybeDefault(this.state.start, this.state.startLoc) - : this.parseMaybeAssign(false, refExpressionErrors); + : this.parseMaybeAssignAllowIn(refExpressionErrors); return this.finishNode(prop, "ObjectProperty"); } if (!prop.computed && prop.key.type === "Identifier") { - this.checkReservedWord(prop.key.name, prop.key.start, true, true); + // PropertyDefinition: + // IdentifierReference + // CoveredInitializedName + // Note: `{ eval } = {}` will be checked in `checkLVal` later. + this.checkReservedWord(prop.key.name, prop.key.start, true, false); if (isPattern) { prop.value = this.parseMaybeDefault( @@ -1819,8 +1909,8 @@ export default class ExpressionParser extends LValParser { isGenerator: boolean, isAsync: boolean, isPattern: boolean, + isAccessor: boolean, refExpressionErrors?: ?ExpressionErrors, - containsEsc: boolean, ): void { const node = this.parseObjectMethod( @@ -1828,7 +1918,7 @@ export default class ExpressionParser extends LValParser { isGenerator, isAsync, isPattern, - containsEsc, + isAccessor, ) || this.parseObjectProperty( prop, @@ -1850,14 +1940,17 @@ export default class ExpressionParser extends LValParser { ): N.Expression | N.Identifier { if (this.eat(tt.bracketL)) { (prop: $FlowSubtype).computed = true; - prop.key = this.parseMaybeAssign(); + prop.key = this.parseMaybeAssignAllowIn(); this.expect(tt.bracketR); } else { const oldInPropertyName = this.state.inPropertyName; this.state.inPropertyName = true; // We check if it's valid for it to be a private name when we push it. (prop: $FlowFixMe).key = - this.match(tt.num) || this.match(tt.string) || this.match(tt.bigint) + this.match(tt.num) || + this.match(tt.string) || + this.match(tt.bigint) || + this.match(tt.decimal) ? this.parseExprAtom() : this.parseMaybePrivateName(isPrivateNameAllowed); @@ -1917,6 +2010,43 @@ export default class ExpressionParser extends LValParser { return node; } + // parse an array literal or tuple literal + // https://tc39.es/ecma262/#prod-ArrayLiteral + // https://tc39.es/proposal-record-tuple/#prod-TupleLiteral + parseArrayLike( + close: TokenType, + canBePattern: boolean, + isTuple: boolean, + refExpressionErrors: ?ExpressionErrors, + ): N.ArrayExpression | N.TupleExpression { + if (isTuple) { + this.expectPlugin("recordAndTuple"); + } + const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; + this.state.inFSharpPipelineDirectBody = false; + const node = this.startNode(); + this.next(); + node.elements = this.parseExprList( + close, + /* allowEmpty */ !isTuple, + refExpressionErrors, + node, + ); + if (canBePattern && !this.state.maybeInArrowParameters) { + // This could be an array pattern: + // ([a: string, b: string]) => {} + // In this case, we don't have to call toReferencedList. We will + // call it, if needed, when we are sure that it is a parenthesized + // expression by calling toReferencedListDeep. + this.toReferencedList(node.elements); + } + this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; + return this.finishNode( + node, + isTuple ? "TupleExpression" : "ArrayExpression", + ); + } + // Parse arrow function expression. // If the parameters are provided, they will be converted to an // assignable list. @@ -1927,7 +2057,12 @@ export default class ExpressionParser extends LValParser { trailingCommaPos: ?number, ): N.ArrowFunctionExpression { this.scope.enter(SCOPE_FUNCTION | SCOPE_ARROW); - this.prodParam.enter(functionFlags(isAsync, false)); + let flags = functionFlags(isAsync, false); + // ConciseBody and AsyncConciseBody inherit [In] + if (!this.match(tt.bracketL) && this.prodParam.hasIn) { + flags |= PARAM_IN; + } + this.prodParam.enter(flags); this.initFunction(node, isAsync); const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; const oldYieldPos = this.state.yieldPos; @@ -1980,7 +2115,7 @@ export default class ExpressionParser extends LValParser { this.state.inParameters = false; if (isExpression) { - node.body = this.parseMaybeAssign(); + node.body = this.parseMaybeAssignAllowIn(); this.checkParams(node, false, allowExpression, false); } else { const oldStrict = this.state.strict; @@ -2139,8 +2274,7 @@ export default class ExpressionParser extends LValParser { this.next(); elt = this.finishNode(node, "ArgumentPlaceholder"); } else { - elt = this.parseMaybeAssign( - false, + elt = this.parseMaybeAssignAllowIn( refExpressionErrors, this.parseParenItem, refNeedsArrowPos, @@ -2172,20 +2306,23 @@ export default class ExpressionParser extends LValParser { parseIdentifierName(pos: number, liberal?: boolean): string { let name: string; - if (this.match(tt.name)) { + const { start, type } = this.state; + + if (type === tt.name) { name = this.state.value; - } else if (this.state.type.keyword) { - name = this.state.type.keyword; + } else if (type.keyword) { + name = type.keyword; // `class` and `function` keywords push function-type token context into this.context. // But there is no chance to pop the context if the keyword is consumed // as an identifier such as a property name. - const context = this.state.context; + const curContext = this.curContext(); if ( - (name === "class" || name === "function") && - context[context.length - 1].token === "function" + (type === tt._class || type === tt._function) && + (curContext === ct.functionStatement || + curContext === ct.functionExpression) ) { - context.pop(); + this.state.context.pop(); } } else { throw this.unexpected(); @@ -2196,12 +2333,7 @@ export default class ExpressionParser extends LValParser { // This will prevent this.next() from throwing about unexpected escapes. this.state.type = tt.name; } else { - this.checkReservedWord( - name, - this.state.start, - !!this.state.type.keyword, - false, - ); + this.checkReservedWord(name, start, !!type.keyword, false); } this.next(); @@ -2318,7 +2450,7 @@ export default class ExpressionParser extends LValParser { // Parses yield expression inside generator. - parseYield(noIn?: ?boolean): N.YieldExpression { + parseYield(): N.YieldExpression { const node = this.startNode(); if (this.state.inParameters) { @@ -2337,7 +2469,7 @@ export default class ExpressionParser extends LValParser { node.argument = null; } else { node.delegate = this.eat(tt.star); - node.argument = this.parseMaybeAssign(noIn); + node.argument = this.parseMaybeAssign(); } return this.finishNode(node, "YieldExpression"); } @@ -2360,17 +2492,10 @@ export default class ExpressionParser extends LValParser { startPos: number, startLoc: Position, ): N.PipelineBody { - const pipelineStyle = this.checkSmartPipelineBodyStyle(childExpression); - - this.checkSmartPipelineBodyEarlyErrors( - childExpression, - pipelineStyle, - startPos, - ); + this.checkSmartPipelineBodyEarlyErrors(childExpression, startPos); return this.parseSmartPipelineBodyInStyle( childExpression, - pipelineStyle, startPos, startLoc, ); @@ -2378,59 +2503,36 @@ export default class ExpressionParser extends LValParser { checkSmartPipelineBodyEarlyErrors( childExpression: N.Expression, - pipelineStyle: N.PipelineStyle, startPos: number, ): void { if (this.match(tt.arrow)) { // If the following token is invalidly `=>`, then throw a human-friendly error // instead of something like 'Unexpected token, expected ";"'. throw this.raise(this.state.start, Errors.PipelineBodyNoArrow); - } else if ( - pipelineStyle === "PipelineTopicExpression" && - childExpression.type === "SequenceExpression" - ) { + } else if (childExpression.type === "SequenceExpression") { this.raise(startPos, Errors.PipelineBodySequenceExpression); } } parseSmartPipelineBodyInStyle( childExpression: N.Expression, - pipelineStyle: N.PipelineStyle, startPos: number, startLoc: Position, ): N.PipelineBody { const bodyNode = this.startNodeAt(startPos, startLoc); - switch (pipelineStyle) { - case "PipelineBareFunction": - bodyNode.callee = childExpression; - break; - case "PipelineBareConstructor": - bodyNode.callee = childExpression.callee; - break; - case "PipelineBareAwaitedFunction": - bodyNode.callee = childExpression.argument; - break; - case "PipelineTopicExpression": - if (!this.topicReferenceWasUsedInCurrentTopicContext()) { - this.raise(startPos, Errors.PipelineTopicUnused); - } - bodyNode.expression = childExpression; - break; - default: - throw new Error( - `Internal @babel/parser error: Unknown pipeline style (${pipelineStyle})`, - ); - } - return this.finishNode(bodyNode, pipelineStyle); - } - - checkSmartPipelineBodyStyle(expression: N.Expression): N.PipelineStyle { - switch (expression.type) { - default: - return this.isSimpleReference(expression) - ? "PipelineBareFunction" - : "PipelineTopicExpression"; + const isSimpleReference = this.isSimpleReference(childExpression); + if (isSimpleReference) { + bodyNode.callee = childExpression; + } else { + if (!this.topicReferenceWasUsedInCurrentTopicContext()) { + this.raise(startPos, Errors.PipelineTopicUnused); + } + bodyNode.expression = childExpression; } + return this.finishNode( + bodyNode, + isSimpleReference ? "PipelineBareFunction" : "PipelineTopicExpression", + ); } isSimpleReference(expression: N.Expression): boolean { @@ -2502,6 +2604,34 @@ export default class ExpressionParser extends LValParser { } } + allowInAnd(callback: () => T): T { + const flags = this.prodParam.currentFlags(); + const prodParamToSet = PARAM_IN & ~flags; + if (prodParamToSet) { + this.prodParam.enter(flags | PARAM_IN); + try { + return callback(); + } finally { + this.prodParam.exit(); + } + } + return callback(); + } + + disallowInAnd(callback: () => T): T { + const flags = this.prodParam.currentFlags(); + const prodParamToClear = PARAM_IN & flags; + if (prodParamToClear) { + this.prodParam.enter(flags & ~PARAM_IN); + try { + return callback(); + } finally { + this.prodParam.exit(); + } + } + return callback(); + } + // Register the use of a primary topic reference (`#`) within the current // topic context. registerTopicReference(): void { @@ -2519,7 +2649,7 @@ export default class ExpressionParser extends LValParser { ); } - parseFSharpPipelineBody(prec: number, noIn: ?boolean): N.Expression { + parseFSharpPipelineBody(prec: number): N.Expression { const startPos = this.state.start; const startLoc = this.state.startLoc; @@ -2532,7 +2662,6 @@ export default class ExpressionParser extends LValParser { startPos, startLoc, prec, - noIn, ); this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; diff --git a/packages/babel-parser/src/parser/lval.js b/packages/babel-parser/src/parser/lval.js index a952219dd482..42c094b76203 100644 --- a/packages/babel-parser/src/parser/lval.js +++ b/packages/babel-parser/src/parser/lval.js @@ -34,13 +34,12 @@ export default class LValParser extends NodeUtils { // Forward-declaration: defined in expression.js /*:: +parseIdentifier: (liberal?: boolean) => Identifier; - +parseMaybeAssign: ( - noIn?: ?boolean, + +parseMaybeAssignAllowIn: ( refExpressionErrors?: ?ExpressionErrors, afterLeftParse?: Function, refNeedsArrowPos?: ?Pos, ) => Expression; - +parseObj: ( + +parseObjectLike: ( close: TokenType, isPattern: boolean, isRecord?: ?boolean, @@ -226,8 +225,7 @@ export default class LValParser extends NodeUtils { ): SpreadElement { const node = this.startNode(); this.next(); - node.argument = this.parseMaybeAssign( - false, + node.argument = this.parseMaybeAssignAllowIn( refExpressionErrors, undefined, refNeedsArrowPos, @@ -235,15 +233,18 @@ export default class LValParser extends NodeUtils { return this.finishNode(node, "SpreadElement"); } + // https://tc39.es/ecma262/#prod-BindingRestProperty + // https://tc39.es/ecma262/#prod-BindingRestElement parseRestBinding(): RestElement { const node = this.startNode(); - this.next(); + this.next(); // eat `...` node.argument = this.parseBindingAtom(); return this.finishNode(node, "RestElement"); } // Parses lvalue (assignable) atom. parseBindingAtom(): Pattern { + // https://tc39.es/ecma262/#prod-BindingPattern switch (this.state.type) { case tt.bracketL: { const node = this.startNode(); @@ -257,12 +258,14 @@ export default class LValParser extends NodeUtils { } case tt.braceL: - return this.parseObj(tt.braceR, true); + return this.parseObjectLike(tt.braceR, true); } + // https://tc39.es/ecma262/#prod-BindingIdentifier return this.parseIdentifier(); } + // https://tc39.es/ecma262/#prod-BindingElementList parseBindingList( close: TokenType, closeCharCode: $Values, @@ -292,6 +295,7 @@ export default class LValParser extends NodeUtils { if (this.match(tt.at) && this.hasPlugin("decorators")) { this.raise(this.state.start, Errors.UnsupportedParameterDecorator); } + // invariant: hasPlugin("decorators-legacy") while (this.match(tt.at)) { decorators.push(this.parseDecorator()); } @@ -314,25 +318,27 @@ export default class LValParser extends NodeUtils { return elt; } + // Used by flow/typescript plugin to add type annotations to binding elements parseAssignableListItemTypes(param: Pattern): Pattern { return param; } // Parses assignment pattern around given atom if possible. - + // https://tc39.es/ecma262/#prod-BindingElement parseMaybeDefault( startPos?: ?number, startLoc?: ?Position, left?: ?Pattern, ): Pattern { - startLoc = startLoc || this.state.startLoc; - startPos = startPos || this.state.start; - left = left || this.parseBindingAtom(); + startLoc = startLoc ?? this.state.startLoc; + startPos = startPos ?? this.state.start; + // $FlowIgnore + left = left ?? this.parseBindingAtom(); if (!this.eat(tt.eq)) return left; const node = this.startNodeAt(startPos, startLoc); node.left = left; - node.right = this.parseMaybeAssign(); + node.right = this.parseMaybeAssignAllowIn(); return this.finishNode(node, "AssignmentPattern"); } @@ -358,7 +364,6 @@ export default class LValParser extends NodeUtils { ? isStrictBindReservedWord(expr.name, this.inModule) : isStrictBindOnlyReservedWord(expr.name)) ) { - /* eslint-disable @babel/development-internal/dry-error-messages */ this.raise( expr.start, bindingType === BIND_NONE @@ -366,7 +371,6 @@ export default class LValParser extends NodeUtils { : Errors.StrictEvalArgumentsBinding, expr.name, ); - /* eslint-enable @babel/development-internal/dry-error-messages */ } if (checkClashes) { @@ -463,7 +467,6 @@ export default class LValParser extends NodeUtils { break; default: { - /* eslint-disable @babel/development-internal/dry-error-messages */ this.raise( expr.start, bindingType === BIND_NONE @@ -471,7 +474,6 @@ export default class LValParser extends NodeUtils { : Errors.InvalidLhsBinding, contextDescription, ); - /* eslint-enable @babel/development-internal/dry-error-messages */ } } } diff --git a/packages/babel-parser/src/parser/statement.js b/packages/babel-parser/src/parser/statement.js index 9bbed6ca25f1..a9c903e525d1 100644 --- a/packages/babel-parser/src/parser/statement.js +++ b/packages/babel-parser/src/parser/statement.js @@ -141,7 +141,9 @@ export default class StatementParser extends ExpressionParser { // regular expression literal. This is to handle cases like // `if (foo) /blah/.exec(foo)`, where looking at the previous token // does not help. - + // https://tc39.es/ecma262/#prod-Statement + // ImportDeclaration and ExportDeclaration are also handled here so we can throw recoverable errors + // when they are not at the top level parseStatement(context: ?string, topLevel?: boolean): N.Statement { if (this.match(tt.at)) { this.parseDecorators(true); @@ -216,21 +218,22 @@ export default class StatementParser extends ExpressionParser { return this.parseBlock(); case tt.semi: return this.parseEmptyStatement(node); - case tt._export: case tt._import: { const nextTokenCharCode = this.lookaheadCharCode(); if ( - nextTokenCharCode === charCodes.leftParenthesis || - nextTokenCharCode === charCodes.dot + nextTokenCharCode === charCodes.leftParenthesis || // import() + nextTokenCharCode === charCodes.dot // import.meta ) { break; } - + } + // fall through + case tt._export: { if (!this.options.allowImportExportEverywhere && !topLevel) { this.raise(this.state.start, Errors.UnexpectedImportExport); } - this.next(); + this.next(); // eat `import`/`export` let result; if (starttype === tt._import) { @@ -626,9 +629,7 @@ export default class StatementParser extends ExpressionParser { parseThrowStatement(node: N.ThrowStatement): N.ThrowStatement { this.next(); - if ( - lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start)) - ) { + if (this.hasPrecedingLineBreak()) { this.raise(this.state.lastTokEnd, Errors.NewlineAfterThrow); } node.argument = this.parseExpression(); @@ -636,6 +637,16 @@ export default class StatementParser extends ExpressionParser { return this.finishNode(node, "ThrowStatement"); } + parseCatchClauseParam(): N.Pattern { + const param = this.parseBindingAtom(); + + const simple = param.type === "Identifier"; + this.scope.enter(simple ? SCOPE_SIMPLE_CATCH : 0); + this.checkLVal(param, BIND_LEXICAL, null, "catch clause"); + + return param; + } + parseTryStatement(node: N.TryStatement): N.TryStatement { this.next(); @@ -647,10 +658,7 @@ export default class StatementParser extends ExpressionParser { this.next(); if (this.match(tt.parenL)) { this.expect(tt.parenL); - clause.param = this.parseBindingAtom(); - const simple = clause.param.type === "Identifier"; - this.scope.enter(simple ? SCOPE_SIMPLE_CATCH : 0); - this.checkLVal(clause.param, BIND_LEXICAL, null, "catch clause"); + clause.param = this.parseCatchClauseParam(); this.expect(tt.parenR); } else { clause.param = null; @@ -840,6 +848,8 @@ export default class StatementParser extends ExpressionParser { } // Undefined directives means that directives are not allowed. + // https://tc39.es/ecma262/#prod-Block + // https://tc39.es/ecma262/#prod-ModuleBody parseBlockOrModuleBlockBody( body: N.Statement[], directives: ?(N.Directive[]), @@ -961,7 +971,9 @@ export default class StatementParser extends ExpressionParser { } node.left = init; - node.right = isForIn ? this.parseExpression() : this.parseMaybeAssign(); + node.right = isForIn + ? this.parseExpression() + : this.parseMaybeAssignAllowIn(); this.expect(tt.parenR); node.body = @@ -993,7 +1005,9 @@ export default class StatementParser extends ExpressionParser { const decl = this.startNode(); this.parseVarId(decl, kind); if (this.eat(tt.eq)) { - decl.init = this.parseMaybeAssign(isFor); + decl.init = isFor + ? this.parseMaybeAssignDisallowIn() + : this.parseMaybeAssignAllowIn(); } else { if ( kind === "const" && @@ -1154,10 +1168,9 @@ export default class StatementParser extends ExpressionParser { this.parseClassId(node, isStatement, optionalId); this.parseClassSuper(node); + // this.state.strict is restored in parseClassBody node.body = this.parseClassBody(!!node.superClass, oldStrict); - this.state.strict = oldStrict; - return this.finishNode( node, isStatement ? "ClassDeclaration" : "ClassExpression", @@ -1181,9 +1194,10 @@ export default class StatementParser extends ExpressionParser { ); } + // https://tc39.es/ecma262/#prod-ClassBody parseClassBody( constructorAllowsSuper: boolean, - oldStrict?: boolean, + oldStrict: boolean, ): N.ClassBody { this.classScope.enter(); @@ -1231,11 +1245,9 @@ export default class StatementParser extends ExpressionParser { } }); - if (!oldStrict) { - this.state.strict = false; - } + this.state.strict = oldStrict; - this.next(); + this.next(); // eat `}` if (decorators.length) { throw this.raise(this.state.start, Errors.TrailingDecorator); @@ -1252,7 +1264,6 @@ export default class StatementParser extends ExpressionParser { classBody: N.ClassBody, member: N.ClassMember, ): boolean { - const containsEsc = this.state.containsEsc; const key = this.parseIdentifier(true); // eats the modifier if (this.isClassMethod()) { @@ -1281,10 +1292,7 @@ export default class StatementParser extends ExpressionParser { prop.static = false; classBody.body.push(this.parseClassProperty(prop)); return true; - } else if (containsEsc) { - throw this.unexpected(); } - return false; } @@ -1330,7 +1338,7 @@ export default class StatementParser extends ExpressionParser { if (this.eat(tt.star)) { // a generator method.kind = "method"; - this.parseClassPropertyName(method); + this.parseClassElementName(method); if (method.key.type === "PrivateName") { // Private generator method @@ -1355,7 +1363,7 @@ export default class StatementParser extends ExpressionParser { } const containsEsc = this.state.containsEsc; - const key = this.parseClassPropertyName(member); + const key = this.parseClassElementName(member); const isPrivate = key.type === "PrivateName"; // Check the key is not a computed expression or string literal. const isSimple = key.type === "Identifier"; @@ -1414,7 +1422,7 @@ export default class StatementParser extends ExpressionParser { method.kind = "method"; // The so-called parsed name would have been "async": get the real name. - this.parseClassPropertyName(method); + this.parseClassElementName(method); this.parsePostMemberNameModifiers(publicMember); if (method.key.type === "PrivateName") { @@ -1449,7 +1457,7 @@ export default class StatementParser extends ExpressionParser { // a getter or setter method.kind = key.name; // The so-called parsed name would have been "get/set": get the real name. - this.parseClassPropertyName(publicMethod); + this.parseClassElementName(publicMethod); if (method.key.type === "PrivateName") { // private getter/setter @@ -1481,7 +1489,8 @@ export default class StatementParser extends ExpressionParser { } } - parseClassPropertyName(member: N.ClassMember): N.Expression | N.Identifier { + // https://tc39.es/proposal-class-fields/#prod-ClassElementName + parseClassElementName(member: N.ClassMember): N.Expression | N.Identifier { const key = this.parsePropertyName(member, /* isPrivateNameAllowed */ true); if ( @@ -1588,19 +1597,13 @@ export default class StatementParser extends ExpressionParser { methodOrProp: N.ClassMethod | N.ClassProperty, ): void {} - // Overridden in typescript.js - parseAccessModifier(): ?N.Accessibility { - return undefined; - } - parseClassPrivateProperty( node: N.ClassPrivateProperty, ): N.ClassPrivateProperty { this.scope.enter(SCOPE_CLASS | SCOPE_SUPER); - // [In] production parameter is tracked in parseMaybeAssign this.prodParam.enter(PARAM); - node.value = this.eat(tt.eq) ? this.parseMaybeAssign() : null; + node.value = this.eat(tt.eq) ? this.parseMaybeAssignAllowIn() : null; this.semicolon(); this.prodParam.exit(); @@ -1615,13 +1618,12 @@ export default class StatementParser extends ExpressionParser { } this.scope.enter(SCOPE_CLASS | SCOPE_SUPER); - // [In] production parameter is tracked in parseMaybeAssign this.prodParam.enter(PARAM); if (this.match(tt.eq)) { this.expectPlugin("classProperties"); this.next(); - node.value = this.parseMaybeAssign(); + node.value = this.parseMaybeAssignAllowIn(); } else { node.value = null; } @@ -1653,11 +1655,13 @@ export default class StatementParser extends ExpressionParser { } } + // https://tc39.es/ecma262/#prod-ClassHeritage parseClassSuper(node: N.Class): void { node.superClass = this.eat(tt._extends) ? this.parseExprSubscripts() : null; } // Parses module export declaration. + // https://tc39.es/ecma262/#prod-ExportDeclaration parseExport(node: N.Node): N.AnyExport { const hasDefault = this.maybeParseExportDefaultSpecifier(node); @@ -1761,19 +1765,9 @@ export default class StatementParser extends ExpressionParser { maybeParseExportDeclaration(node: N.Node): boolean { if (this.shouldParseExportDeclaration()) { - if (this.isContextual("async")) { - const next = this.nextTokenStart(); - - // export async; - if (!this.isUnparsedContextual(next, "function")) { - this.unexpected(next, tt._function); - } - } - node.specifiers = []; node.source = null; node.declaration = this.parseExportDeclaration(node); - return true; } return false; @@ -1818,7 +1812,7 @@ export default class StatementParser extends ExpressionParser { } else if (this.match(tt._const) || this.match(tt._var) || this.isLet()) { throw this.raise(this.state.start, Errors.UnsupportedDefaultExport); } else { - const res = this.parseMaybeAssign(); + const res = this.parseMaybeAssignAllowIn(); this.semicolon(); return res; } @@ -1832,7 +1826,7 @@ export default class StatementParser extends ExpressionParser { isExportDefaultSpecifier(): boolean { if (this.match(tt.name)) { const value = this.state.value; - if (value === "async" || value === "let") { + if ((value === "async" && !this.state.containsEsc) || value === "let") { return false; } if ( @@ -1976,15 +1970,10 @@ export default class StatementParser extends ExpressionParser { const currentContextDecorators = this.state.decoratorStack[ this.state.decoratorStack.length - 1 ]; + // If node.declaration is a class, it will take all decorators in the current context. + // Thus we should throw if we see non-empty decorators here. if (currentContextDecorators.length) { - const isClass = - node.declaration && - (node.declaration.type === "ClassDeclaration" || - node.declaration.type === "ClassExpression"); - if (!node.declaration || !isClass) { - throw this.raise(node.start, Errors.UnsupportedDecoratorExport); - } - this.takeDecorators(node.declaration); + throw this.raise(node.start, Errors.UnsupportedDecoratorExport); } } @@ -2019,7 +2008,6 @@ export default class StatementParser extends ExpressionParser { name: string, ): void { if (this.state.exportedIdentifiers.indexOf(name) > -1) { - /* eslint-disable @babel/development-internal/dry-error-messages */ this.raise( node.start, name === "default" @@ -2027,7 +2015,6 @@ export default class StatementParser extends ExpressionParser { : Errors.DuplicateExport, name, ); - /* eslint-enable @babel/development-internal/dry-error-messages */ } this.state.exportedIdentifiers.push(name); } @@ -2061,6 +2048,7 @@ export default class StatementParser extends ExpressionParser { } // Parses import declaration. + // https://tc39.es/ecma262/#prod-ImportDeclaration parseImport(node: N.Node): N.AnyImport { // import '...' @@ -2225,6 +2213,7 @@ export default class StatementParser extends ExpressionParser { } } + // https://tc39.es/ecma262/#prod-ImportSpecifier parseImportSpecifier(node: N.ImportDeclaration): void { const specifier = this.startNode(); specifier.imported = this.parseIdentifier(true); diff --git a/packages/babel-parser/src/parser/util.js b/packages/babel-parser/src/parser/util.js index 8928698e6b70..8b47a85be631 100644 --- a/packages/babel-parser/src/parser/util.js +++ b/packages/babel-parser/src/parser/util.js @@ -6,7 +6,6 @@ import State from "../tokenizer/state"; import type { Node } from "../types"; import { lineBreak } from "../util/whitespace"; import { isIdentifierChar } from "../util/identifier"; -import * as charCodes from "charcodes"; import { Errors } from "./error"; type TryParse = { @@ -35,18 +34,6 @@ export default class UtilParser extends Tokenizer { return this.match(tt.relational) && this.state.value === op; } - isLookaheadRelational(op: "<" | ">"): boolean { - const next = this.nextTokenStart(); - if (this.input.charAt(next) === op) { - if (next + 1 === this.input.length) { - return true; - } - const afterNext = this.input.charCodeAt(next + 1); - return afterNext !== op.charCodeAt(0) && afterNext !== charCodes.equalsTo; - } - return false; - } - // TODO expectRelational(op: "<" | ">"): void { @@ -273,7 +260,8 @@ export default class UtilParser extends Tokenizer { !!this.state.type.keyword || this.match(tt.string) || this.match(tt.num) || - this.match(tt.bigint) + this.match(tt.bigint) || + this.match(tt.decimal) ); } } diff --git a/packages/babel-parser/src/plugins/estree.js b/packages/babel-parser/src/plugins/estree.js index 6c5f90780ea0..579f45e0b279 100644 --- a/packages/babel-parser/src/plugins/estree.js +++ b/packages/babel-parser/src/plugins/estree.js @@ -43,6 +43,16 @@ export default (superClass: Class): Class => return node; } + estreeParseDecimalLiteral(value: any): N.Node { + // https://github.com/estree/estree/blob/master/experimental/decimal.md + // todo: use BigDecimal when node supports it. + const decimal = null; + const node = this.estreeParseLiteral(decimal); + node.decimal = String(node.value || value); + + return node; + } + estreeParseLiteral(value: any): N.Node { return this.parseLiteral(value, "Literal"); } @@ -229,6 +239,9 @@ export default (superClass: Class): Class => case tt.bigint: return this.estreeParseBigIntLiteral(this.state.value); + case tt.decimal: + return this.estreeParseDecimalLiteral(this.state.value); + case tt._null: return this.estreeParseLiteral(null); @@ -299,14 +312,14 @@ export default (superClass: Class): Class => isGenerator: boolean, isAsync: boolean, isPattern: boolean, - containsEsc: boolean, + isAccessor: boolean, ): ?N.ObjectMethod { const node: N.EstreeProperty = (super.parseObjectMethod( prop, isGenerator, isAsync, isPattern, - containsEsc, + isAccessor, ): any); if (node) { @@ -374,8 +387,6 @@ export default (superClass: Class): Class => delete node.arguments; // $FlowIgnore - callee isn't optional in the type definition delete node.callee; - } else if (node.type === "CallExpression") { - (node: N.Node).optional = false; } return node; @@ -417,10 +428,38 @@ export default (superClass: Class): Class => return node; } - parseSubscript(...args) { - const node = super.parseSubscript(...args); + parseSubscript( + base: N.Expression, + startPos: number, + startLoc: Position, + noCalls: ?boolean, + state: N.ParseSubscriptState, + ) { + const node = super.parseSubscript( + base, + startPos, + startLoc, + noCalls, + state, + ); - if (node.type === "MemberExpression") { + if (state.optionalChainMember) { + // https://github.com/estree/estree/blob/master/es2020.md#chainexpression + if ( + node.type === "OptionalMemberExpression" || + node.type === "OptionalCallExpression" + ) { + node.type = node.type.substring(8); // strip Optional prefix + } + if (state.stop) { + const chain = this.startNodeAtNode(node); + chain.expression = node; + return this.finishNode(chain, "ChainExpression"); + } + } else if ( + node.type === "MemberExpression" || + node.type === "CallExpression" + ) { node.optional = false; } diff --git a/packages/babel-parser/src/plugins/flow.js b/packages/babel-parser/src/plugins/flow.js index 508845d1046c..20d09c4d22dc 100644 --- a/packages/babel-parser/src/plugins/flow.js +++ b/packages/babel-parser/src/plugins/flow.js @@ -1077,7 +1077,7 @@ export default (superClass: Class): Class => /* The inexact flag should only be added on ObjectTypeAnnotations that * are not the body of an interface, declare interface, or declare class. - * Since spreads are only allowed in objec types, checking that is + * Since spreads are only allowed in object types, checking that is * sufficient here. */ if (allowSpread) { @@ -1816,7 +1816,6 @@ export default (superClass: Class): Class => parseConditional( expr: N.Expression, - noIn: ?boolean, startPos: number, startLoc: Position, refNeedsArrowPos?: ?Pos, @@ -1827,7 +1826,7 @@ export default (superClass: Class): Class => // and if we come from inside parens if (refNeedsArrowPos) { const result = this.tryParse(() => - super.parseConditional(expr, noIn, startPos, startLoc), + super.parseConditional(expr, startPos, startLoc), ); if (!result.node) { @@ -1886,7 +1885,7 @@ export default (superClass: Class): Class => node.test = expr; node.consequent = consequent; node.alternate = this.forwardNoArrowParamsConversionAt(node, () => - this.parseMaybeAssign(noIn, undefined, undefined, undefined), + this.parseMaybeAssign(undefined, undefined, undefined), ); return this.finishNode(node, "ConditionalExpression"); @@ -1898,7 +1897,7 @@ export default (superClass: Class): Class => } { this.state.noArrowParamsConversionAt.push(this.state.start); - const consequent = this.parseMaybeAssign(); + const consequent = this.parseMaybeAssignAllowIn(); const failed = !this.match(tt.colon); this.state.noArrowParamsConversionAt.pop(); @@ -2135,6 +2134,9 @@ export default (superClass: Class): Class => (code === charCodes.greaterThan || code === charCodes.lessThan) ) { return this.finishOp(tt.relational, 1); + } else if (this.state.inType && code === charCodes.questionMark) { + // allow double nullable types in Flow: ??string + return this.finishOp(tt.question, 1); } else if (isIteratorStart(code, next)) { this.state.isIterator = true; return super.readWord(); @@ -2362,8 +2364,8 @@ export default (superClass: Class): Class => isGenerator: boolean, isAsync: boolean, isPattern: boolean, + isAccessor: boolean, refExpressionErrors: ?ExpressionErrors, - containsEsc: boolean, ): void { if ((prop: $FlowFixMe).variance) { this.unexpected((prop: $FlowFixMe).variance.start); @@ -2373,7 +2375,7 @@ export default (superClass: Class): Class => let typeParameters; // method shorthand - if (this.isRelational("<")) { + if (this.isRelational("<") && !isAccessor) { typeParameters = this.flowParseTypeParameterDeclaration(); if (!this.match(tt.parenL)) this.unexpected(); } @@ -2385,8 +2387,8 @@ export default (superClass: Class): Class => isGenerator, isAsync, isPattern, + isAccessor, refExpressionErrors, - containsEsc, ); // add typeParameters if we found them @@ -2629,7 +2631,6 @@ export default (superClass: Class): Class => // there // 3. This is neither. Just call the super method parseMaybeAssign( - noIn?: ?boolean, refExpressionErrors?: ?ExpressionErrors, afterLeftParse?: Function, refNeedsArrowPos?: ?Pos, @@ -2647,7 +2648,6 @@ export default (superClass: Class): Class => jsx = this.tryParse( () => super.parseMaybeAssign( - noIn, refExpressionErrors, afterLeftParse, refNeedsArrowPos, @@ -2681,7 +2681,6 @@ export default (superClass: Class): Class => typeParameters, () => super.parseMaybeAssign( - noIn, refExpressionErrors, afterLeftParse, refNeedsArrowPos, @@ -2698,7 +2697,7 @@ export default (superClass: Class): Class => if (!arrow.error && arrowExpression) return arrowExpression; - // If we are here, both JSX and Flow parsing attemps failed. + // If we are here, both JSX and Flow parsing attempts failed. // Give the precedence to the JSX error, except if JSX had an // unrecoverable error while Flow didn't. // If the error is recoverable, we can only re-report it if there is @@ -2727,7 +2726,6 @@ export default (superClass: Class): Class => } return super.parseMaybeAssign( - noIn, refExpressionErrors, afterLeftParse, refNeedsArrowPos, @@ -2870,7 +2868,7 @@ export default (superClass: Class): Class => noCalls: ?boolean, subscriptState: N.ParseSubscriptState, ): N.Expression { - if (this.match(tt.questionDot) && this.isLookaheadRelational("<")) { + if (this.match(tt.questionDot) && this.isLookaheadToken_lt()) { subscriptState.optionalChainMember = true; if (noCalls) { subscriptState.stop = true; @@ -3472,4 +3470,16 @@ export default (superClass: Class): Class => super.updateContext(prevType); } } + + // check if the next token is a tt.relation("<") + isLookaheadToken_lt(): boolean { + const next = this.nextTokenStart(); + if (this.input.charCodeAt(next) === charCodes.lessThan) { + const afterNext = this.input.charCodeAt(next + 1); + return ( + afterNext !== charCodes.lessThan && afterNext !== charCodes.equalsTo + ); + } + return false; + } }; diff --git a/packages/babel-parser/src/plugins/jsx/index.js b/packages/babel-parser/src/plugins/jsx/index.js index eca50309410b..722fe531f194 100644 --- a/packages/babel-parser/src/plugins/jsx/index.js +++ b/packages/babel-parser/src/plugins/jsx/index.js @@ -371,7 +371,7 @@ export default (superClass: Class): Class => const node = this.startNode(); if (this.eat(tt.braceL)) { this.expect(tt.ellipsis); - node.argument = this.parseMaybeAssign(); + node.argument = this.parseMaybeAssignAllowIn(); this.expect(tt.braceR); return this.finishNode(node, "JSXSpreadAttribute"); } diff --git a/packages/babel-parser/src/plugins/placeholders.js b/packages/babel-parser/src/plugins/placeholders.js index 69d961e3e6c9..63b99a9b0308 100644 --- a/packages/babel-parser/src/plugins/placeholders.js +++ b/packages/babel-parser/src/plugins/placeholders.js @@ -203,6 +203,7 @@ export default (superClass: Class): Class => this.next(); this.takeDecorators(node); + const oldStrict = this.state.strict; const placeholder = this.parsePlaceholder("Identifier"); if (placeholder) { @@ -226,7 +227,7 @@ export default (superClass: Class): Class => this.parseClassSuper(node); node.body = this.parsePlaceholder("ClassBody") || - this.parseClassBody(!!node.superClass); + this.parseClassBody(!!node.superClass, oldStrict); return this.finishNode(node, type); } diff --git a/packages/babel-parser/src/plugins/typescript/index.js b/packages/babel-parser/src/plugins/typescript/index.js index 6309c8ea8fcb..bd983377f14e 100644 --- a/packages/babel-parser/src/plugins/typescript/index.js +++ b/packages/babel-parser/src/plugins/typescript/index.js @@ -74,6 +74,10 @@ const TSErrors = Object.freeze({ IndexSignatureHasAccessibility: "Index signatures cannot have an accessibility modifier ('%0')", IndexSignatureHasStatic: "Index signatures cannot have the 'static' modifier", + InvalidTupleMemberLabel: + "Tuple members must be labeled with a simple identifier.", + MixedLabeledAndUnlabeledElements: + "Tuple members must all have names or all not have names.", OptionalTypeBeforeRequired: "A required element cannot follow an optional element.", PatternIsOptional: @@ -630,43 +634,90 @@ export default (superClass: Class): Class => /* skipFirstToken */ false, ); - // Validate the elementTypes to ensure: - // No mandatory elements may follow optional elements - // If there's a rest element, it must be at the end of the tuple + // Validate the elementTypes to ensure that no mandatory elements + // follow optional elements let seenOptionalElement = false; + let labeledElements = null; node.elementTypes.forEach(elementNode => { - if (elementNode.type === "TSOptionalType") { - seenOptionalElement = true; - } else if (seenOptionalElement && elementNode.type !== "TSRestType") { + let { type } = elementNode; + + if ( + seenOptionalElement && + type !== "TSRestType" && + type !== "TSOptionalType" && + !(type === "TSNamedTupleMember" && elementNode.optional) + ) { this.raise(elementNode.start, TSErrors.OptionalTypeBeforeRequired); } + + // Flow doesn't support ||= + seenOptionalElement = + seenOptionalElement || + (type === "TSNamedTupleMember" && elementNode.optional) || + type === "TSOptionalType"; + + // When checking labels, check the argument of the spread operator + if (type === "TSRestType") { + elementNode = elementNode.typeAnnotation; + type = elementNode.type; + } + + const isLabeled = type === "TSNamedTupleMember"; + // Flow doesn't support ??= + labeledElements = labeledElements ?? isLabeled; + if (labeledElements !== isLabeled) { + this.raise( + elementNode.start, + TSErrors.MixedLabeledAndUnlabeledElements, + ); + } }); return this.finishNode(node, "TSTupleType"); } - tsParseTupleElementType(): N.TsType { + tsParseTupleElementType(): N.TsType | N.TsNamedTupleMember { // parses `...TsType[]` - if (this.match(tt.ellipsis)) { - const restNode: N.TsRestType = this.startNode(); - this.next(); // skips ellipsis - restNode.typeAnnotation = this.tsParseType(); + + const { start: startPos, startLoc } = this.state; + + const rest = this.eat(tt.ellipsis); + let type = this.tsParseType(); + const optional = this.eat(tt.question); + const labeled = this.eat(tt.colon); + + if (labeled) { + const labeledNode: N.TsNamedTupleMember = this.startNodeAtNode(type); + labeledNode.optional = optional; + if ( - this.match(tt.comma) && - this.lookaheadCharCode() !== charCodes.rightSquareBracket + type.type === "TSTypeReference" && + !type.typeParameters && + type.typeName.type === "Identifier" ) { - this.raiseRestNotLast(this.state.start); + labeledNode.label = (type.typeName: N.Identifier); + } else { + this.raise(type.start, TSErrors.InvalidTupleMemberLabel); + // This produces an invalid AST, but at least we don't drop + // nodes representing the invalid source. + // $FlowIgnore + labeledNode.label = type; } - return this.finishNode(restNode, "TSRestType"); - } - const type = this.tsParseType(); - // parses `TsType?` - if (this.eat(tt.question)) { + labeledNode.elementType = this.tsParseType(); + type = this.finishNode(labeledNode, "TSNamedTupleMember"); + } else if (optional) { const optionalTypeNode: N.TsOptionalType = this.startNodeAtNode(type); optionalTypeNode.typeAnnotation = type; - return this.finishNode(optionalTypeNode, "TSOptionalType"); + type = this.finishNode(optionalTypeNode, "TSOptionalType"); + } + + if (rest) { + const restNode: N.TsRestType = this.startNodeAt(startPos, startLoc); + restNode.typeAnnotation = type; + type = this.finishNode(restNode, "TSRestType"); } + return type; } @@ -1234,7 +1285,7 @@ export default (superClass: Class): Class => ? this.parseExprAtom() : this.parseIdentifier(/* liberal */ true); if (this.eat(tt.eq)) { - node.initializer = this.parseMaybeAssign(); + node.initializer = this.parseMaybeAssignAllowIn(); } return this.finishNode(node, "TSEnumMember"); } @@ -1772,13 +1823,14 @@ export default (superClass: Class): Class => node.typeParameters = typeArguments; return this.finishCallExpression(node, state.optionalChainMember); } else if (this.match(tt.backQuote)) { - return this.parseTaggedTemplateExpression( + const result = this.parseTaggedTemplateExpression( + base, startPos, startLoc, - base, state, - typeArguments, ); + result.typeParameters = typeArguments; + return result; } } @@ -1813,7 +1865,6 @@ export default (superClass: Class): Class => leftStartPos: number, leftStartLoc: Position, minPrec: number, - noIn: ?boolean, ) { if ( nonNull(tt._in.binop) > minPrec && @@ -1832,16 +1883,12 @@ export default (superClass: Class): Class => node.typeAnnotation = this.tsNextThenParseType(); } this.finishNode(node, "TSAsExpression"); - return this.parseExprOp( - node, - leftStartPos, - leftStartLoc, - minPrec, - noIn, - ); + // rescan `<`, `>` because they were scanned when this.state.inType was true + this.reScan_lt_gt(); + return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec); } - return super.parseExprOp(left, leftStartPos, leftStartLoc, minPrec, noIn); + return super.parseExprOp(left, leftStartPos, leftStartLoc, minPrec); } checkReservedWord( @@ -2081,7 +2128,6 @@ export default (superClass: Class): Class => // An apparent conditional expression could actually be an optional parameter in an arrow function. parseConditional( expr: N.Expression, - noIn: ?boolean, startPos: number, startLoc: Position, refNeedsArrowPos?: ?Pos, @@ -2091,7 +2137,6 @@ export default (superClass: Class): Class => if (!refNeedsArrowPos || !this.match(tt.question)) { return super.parseConditional( expr, - noIn, startPos, startLoc, refNeedsArrowPos, @@ -2099,7 +2144,7 @@ export default (superClass: Class): Class => } const result = this.tryParse(() => - super.parseConditional(expr, noIn, startPos, startLoc), + super.parseConditional(expr, startPos, startLoc), ); if (!result.node) { @@ -2576,13 +2621,27 @@ export default (superClass: Class): Class => // ensure that inside types, we bypass the jsx parser plugin getTokenFromCode(code: number): void { - if (this.state.inType && (code === 62 || code === 60)) { + if ( + this.state.inType && + (code === charCodes.greaterThan || code === charCodes.lessThan) + ) { return this.finishOp(tt.relational, 1); } else { return super.getTokenFromCode(code); } } + // used after we have finished parsing types + reScan_lt_gt() { + if (this.match(tt.relational)) { + const code = this.input.charCodeAt(this.state.start); + if (code === charCodes.lessThan || code === charCodes.greaterThan) { + this.state.pos -= 1; + this.readToken_lt_gt(code); + } + } + } + toAssignableList(exprList: N.Expression[]): $ReadOnlyArray { for (let i = 0; i < exprList.length; i++) { const expr = exprList[i]; @@ -2667,4 +2726,16 @@ export default (superClass: Class): Class => return hasContextParam ? baseCount + 1 : baseCount; } + + parseCatchClauseParam(): N.Pattern { + const param = super.parseCatchClauseParam(); + const type = this.tsTryParseTypeAnnotation(); + + if (type) { + param.typeAnnotation = type; + this.resetEndLocation(param); + } + + return param; + } }; diff --git a/packages/babel-parser/src/tokenizer/context.js b/packages/babel-parser/src/tokenizer/context.js index 101ac725969a..f93c19971efb 100644 --- a/packages/babel-parser/src/tokenizer/context.js +++ b/packages/babel-parser/src/tokenizer/context.js @@ -5,7 +5,6 @@ // See https://github.com/mozilla/sweet.js/wiki/design import { types as tt } from "./types"; -import { lineBreak } from "../util/whitespace"; export class TokContext { constructor( @@ -31,6 +30,7 @@ export const types: { } = { braceStatement: new TokContext("{", false), braceExpression: new TokContext("{", true), + recordExpression: new TokContext("#{", true), templateQuasi: new TokContext("${", false), parenStatement: new TokContext("(", false), parenExpression: new TokContext("(", true), @@ -104,17 +104,11 @@ tt.incDec.updateContext = function () { }; tt._function.updateContext = tt._class.updateContext = function (prevType) { - if (prevType === tt.dot || prevType === tt.questionDot) { - // when function/class follows dot/questionDot, it is part of - // (optional)MemberExpression, then we don't need to push new token context - } else if ( + if ( prevType.beforeExpr && prevType !== tt.semi && prevType !== tt._else && - !( - prevType === tt._return && - lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start)) - ) && + !(prevType === tt._return && this.hasPrecedingLineBreak()) && !( (prevType === tt.colon || prevType === tt.braceL) && this.curContext() === types.b_stat @@ -137,6 +131,8 @@ tt.backQuote.updateContext = function () { this.state.exprAllowed = false; }; -tt.star.updateContext = function () { - this.state.exprAllowed = false; +// we don't need to update context for tt.braceBarL because we do not pop context for tt.braceBarR +tt.braceHashL.updateContext = function () { + this.state.context.push(types.recordExpression); + this.state.exprAllowed = true; /* tt.braceHashL.beforeExpr */ }; diff --git a/packages/babel-parser/src/tokenizer/index.js b/packages/babel-parser/src/tokenizer/index.js index 1a8af6cbbdd8..cbc0efab0fe8 100644 --- a/packages/babel-parser/src/tokenizer/index.js +++ b/packages/babel-parser/src/tokenizer/index.js @@ -114,6 +114,7 @@ export default class Tokenizer extends ParserErrors { // Forward-declarations // parser/util.js /*:: + +hasPrecedingLineBreak: () => boolean; +unexpected: (pos?: ?number, messageOrType?: string | TokenType) => empty; +expectPlugin: (name: string, pos?: ?number) => true; */ @@ -420,14 +421,12 @@ export default class Tokenizer extends ParserErrors { // misleading this.expectPlugin("recordAndTuple"); if (this.getPluginOption("recordAndTuple", "syntaxType") !== "hash") { - /* eslint-disable @babel/development-internal/dry-error-messages */ throw this.raise( this.state.pos, next === charCodes.leftCurlyBrace ? Errors.RecordExpressionHashIncorrectStartSyntaxType : Errors.TupleExpressionHashIncorrectStartSyntaxType, ); - /* eslint-enable @babel/development-internal/dry-error-messages */ } if (next === charCodes.leftCurlyBrace) { @@ -605,10 +604,7 @@ export default class Tokenizer extends ParserErrors { next === charCodes.dash && !this.inModule && this.input.charCodeAt(this.state.pos + 2) === charCodes.greaterThan && - (this.state.lastTokEnd === 0 || - lineBreak.test( - this.input.slice(this.state.lastTokEnd, this.state.pos), - )) + (this.state.lastTokEnd === 0 || this.hasPrecedingLineBreak()) ) { // A `-->` line comment this.skipLineComment(3); @@ -693,7 +689,7 @@ export default class Tokenizer extends ParserErrors { // '?' const next = this.input.charCodeAt(this.state.pos + 1); const next2 = this.input.charCodeAt(this.state.pos + 2); - if (next === charCodes.questionMark && !this.state.inType) { + if (next === charCodes.questionMark) { if (next2 === charCodes.equalsTo) { // '??=' this.finishOp(tt.assign, 3); @@ -1016,28 +1012,26 @@ export default class Tokenizer extends ParserErrors { const code = this.input.charCodeAt(this.state.pos); let val; - if (this.hasPlugin("numericSeparator")) { - if (code === charCodes.underscore) { - const prev = this.input.charCodeAt(this.state.pos - 1); - const next = this.input.charCodeAt(this.state.pos + 1); - if (allowedSiblings.indexOf(next) === -1) { - this.raise(this.state.pos, Errors.UnexpectedNumericSeparator); - } else if ( - forbiddenSiblings.indexOf(prev) > -1 || - forbiddenSiblings.indexOf(next) > -1 || - Number.isNaN(next) - ) { - this.raise(this.state.pos, Errors.UnexpectedNumericSeparator); - } - - if (!allowNumSeparator) { - this.raise(this.state.pos, Errors.NumericSeparatorInEscapeSequence); - } + if (code === charCodes.underscore) { + const prev = this.input.charCodeAt(this.state.pos - 1); + const next = this.input.charCodeAt(this.state.pos + 1); + if (allowedSiblings.indexOf(next) === -1) { + this.raise(this.state.pos, Errors.UnexpectedNumericSeparator); + } else if ( + forbiddenSiblings.indexOf(prev) > -1 || + forbiddenSiblings.indexOf(next) > -1 || + Number.isNaN(next) + ) { + this.raise(this.state.pos, Errors.UnexpectedNumericSeparator); + } - // Ignore this _ character - ++this.state.pos; - continue; + if (!allowNumSeparator) { + this.raise(this.state.pos, Errors.NumericSeparatorInEscapeSequence); } + + // Ignore this _ character + ++this.state.pos; + continue; } if (code >= charCodes.lowercaseA) { @@ -1088,13 +1082,11 @@ export default class Tokenizer extends ParserErrors { } const next = this.input.charCodeAt(this.state.pos); - if (next === charCodes.underscore) { - this.expectPlugin("numericSeparator", this.state.pos); - } - if (next === charCodes.lowercaseN) { ++this.state.pos; isBigInt = true; + } else if (next === charCodes.lowercaseM) { + throw this.raise(start, Errors.InvalidDecimal); } if (isIdentifierStart(this.input.codePointAt(this.state.pos))) { @@ -1116,26 +1108,33 @@ export default class Tokenizer extends ParserErrors { const start = this.state.pos; let isFloat = false; let isBigInt = false; - let isNonOctalDecimalInt = false; + let isDecimal = false; + let hasExponent = false; + let isOctal = false; if (!startsWithDot && this.readInt(10) === null) { this.raise(start, Errors.InvalidNumber); } - let octal = + const hasLeadingZero = this.state.pos - start >= 2 && this.input.charCodeAt(start) === charCodes.digit0; - if (octal) { + + if (hasLeadingZero) { + const integer = this.input.slice(start, this.state.pos); if (this.state.strict) { this.raise(start, Errors.StrictOctalLiteral); + } else { + // disallow numeric separators in non octal decimals and legacy octal likes + const underscorePos = integer.indexOf("_"); + if (underscorePos > 0) { + this.raise(underscorePos + start, Errors.ZeroDigitNumericSeparator); + } } - if (/[89]/.test(this.input.slice(start, this.state.pos))) { - octal = false; - isNonOctalDecimalInt = true; - } + isOctal = hasLeadingZero && !/[89]/.test(integer); } let next = this.input.charCodeAt(this.state.pos); - if (next === charCodes.dot && !octal) { + if (next === charCodes.dot && !isOctal) { ++this.state.pos; this.readInt(10); isFloat = true; @@ -1144,7 +1143,7 @@ export default class Tokenizer extends ParserErrors { if ( (next === charCodes.uppercaseE || next === charCodes.lowercaseE) && - !octal + !isOctal ) { next = this.input.charCodeAt(++this.state.pos); if (next === charCodes.plusSign || next === charCodes.dash) { @@ -1152,46 +1151,47 @@ export default class Tokenizer extends ParserErrors { } if (this.readInt(10) === null) this.raise(start, Errors.InvalidNumber); isFloat = true; + hasExponent = true; next = this.input.charCodeAt(this.state.pos); } - // disallow numeric separators in non octal decimals and legacy octal likes - if (this.hasPlugin("numericSeparator") && (octal || isNonOctalDecimalInt)) { - const underscorePos = this.input - .slice(start, this.state.pos) - .indexOf("_"); - if (underscorePos > 0) { - this.raise(underscorePos + start, Errors.ZeroDigitNumericSeparator); - } - } - - if (next === charCodes.underscore) { - this.expectPlugin("numericSeparator", this.state.pos); - } - if (next === charCodes.lowercaseN) { // disallow floats, legacy octal syntax and non octal decimals // new style octal ("0o") is handled in this.readRadixNumber - if (isFloat || octal || isNonOctalDecimalInt) { + if (isFloat || hasLeadingZero) { this.raise(start, Errors.InvalidBigIntLiteral); } ++this.state.pos; isBigInt = true; } + if (next === charCodes.lowercaseM) { + this.expectPlugin("decimal", this.state.pos); + if (hasExponent || hasLeadingZero) { + this.raise(start, Errors.InvalidDecimal); + } + ++this.state.pos; + isDecimal = true; + } + if (isIdentifierStart(this.input.codePointAt(this.state.pos))) { throw this.raise(this.state.pos, Errors.NumberIdentifier); } - // remove "_" for numeric literal separator, and "n" for BigInts - const str = this.input.slice(start, this.state.pos).replace(/[_n]/g, ""); + // remove "_" for numeric literal separator, and trailing `m` or `n` + const str = this.input.slice(start, this.state.pos).replace(/[_mn]/g, ""); if (isBigInt) { this.finishToken(tt.bigint, str); return; } - const val = octal ? parseInt(str, 8) : parseFloat(str); + if (isDecimal) { + this.finishToken(tt.decimal, str); + return; + } + + const val = isOctal ? parseInt(str, 8) : parseFloat(str); this.finishToken(tt.num, val); } @@ -1362,6 +1362,8 @@ export default class Tokenizer extends ParserErrors { case charCodes.digit9: if (inTemplate) { return null; + } else if (this.state.strict) { + this.raise(this.state.pos - 1, Errors.StrictNumericEscape); } // fall through default: @@ -1390,7 +1392,7 @@ export default class Tokenizer extends ParserErrors { if (inTemplate) { return null; } else if (this.state.strict) { - this.raise(codePos, Errors.StrictOctalLiteral); + this.raise(codePos, Errors.StrictNumericEscape); } else { // This property is used to throw an error for // an octal literal in a directive that occurs prior @@ -1521,9 +1523,7 @@ export default class Tokenizer extends ParserErrors { prevType === tt._return || (prevType === tt.name && this.state.exprAllowed) ) { - return lineBreak.test( - this.input.slice(this.state.lastTokEnd, this.state.start), - ); + return this.hasPrecedingLineBreak(); } if ( diff --git a/packages/babel-parser/src/tokenizer/types.js b/packages/babel-parser/src/tokenizer/types.js index acc456e9f952..ca67cb0732cf 100644 --- a/packages/babel-parser/src/tokenizer/types.js +++ b/packages/babel-parser/src/tokenizer/types.js @@ -86,6 +86,7 @@ function createBinop(name: string, binop: number) { export const types: { [name: string]: TokenType } = { num: new TokenType("num", { startsExpr }), bigint: new TokenType("bigint", { startsExpr }), + decimal: new TokenType("decimal", { startsExpr }), regexp: new TokenType("regexp", { startsExpr }), string: new TokenType("string", { startsExpr }), name: new TokenType("name", { startsExpr }), @@ -154,7 +155,8 @@ export const types: { [name: string]: TokenType } = { plusMin: new TokenType("+/-", { beforeExpr, binop: 9, prefix, startsExpr }), // startsExpr: required by v8intrinsic plugin modulo: new TokenType("%", { beforeExpr, binop: 10, startsExpr }), - star: createBinop("*", 10), + // unset `beforeExpr` as it can be `function *` + star: new TokenType("*", { binop: 10 }), slash: createBinop("/", 10), exponent: new TokenType("**", { beforeExpr, diff --git a/packages/babel-parser/src/types.js b/packages/babel-parser/src/types.js index 17f96dc4934c..6d77c5c0d00d 100644 --- a/packages/babel-parser/src/types.js +++ b/packages/babel-parser/src/types.js @@ -389,6 +389,11 @@ export type ArrayExpression = NodeBase & { elements: $ReadOnlyArray, }; +export type DoExpression = NodeBase & { + type: "DoExpression", + body: ?BlockStatement, +}; + export type TupleExpression = NodeBase & { type: "TupleExpression", elements: $ReadOnlyArray, @@ -1264,7 +1269,14 @@ export type TsArrayType = TsTypeBase & { export type TsTupleType = TsTypeBase & { type: "TSTupleType", - elementTypes: $ReadOnlyArray, + elementTypes: $ReadOnlyArray, +}; + +export type TsNamedTupleMember = NodeBase & { + type: "TSNamedTupleMember", + label: Identifier, + optional: boolean, + elementType: TsType, }; export type TsOptionalType = TsTypeBase & { @@ -1274,7 +1286,7 @@ export type TsOptionalType = TsTypeBase & { export type TsRestType = TsTypeBase & { type: "TSRestType", - typeAnnotation: TsType, + typeAnnotation: TsType | TsNamedTupleMember, }; export type TsUnionOrIntersectionType = TsUnionType | TsIntersectionType; diff --git a/packages/babel-parser/src/util/production-parameter.js b/packages/babel-parser/src/util/production-parameter.js index 43644f6131ce..feaf6a960d40 100644 --- a/packages/babel-parser/src/util/production-parameter.js +++ b/packages/babel-parser/src/util/production-parameter.js @@ -1,13 +1,13 @@ // @flow -export const PARAM = 0b000, // Initial Parameter flags - PARAM_YIELD = 0b001, // track [Yield] production parameter - PARAM_AWAIT = 0b010, // track [Await] production parameter - PARAM_RETURN = 0b100; // track [Return] production parameter +export const PARAM = 0b0000, // Initial Parameter flags + PARAM_YIELD = 0b0001, // track [Yield] production parameter + PARAM_AWAIT = 0b0010, // track [Await] production parameter + PARAM_RETURN = 0b0100, // track [Return] production parameter + PARAM_IN = 0b1000; // track [In] production parameter // ProductionParameterHandler is a stack fashioned production parameter tracker // https://tc39.es/ecma262/#sec-grammar-notation -// The tracked parameters are defined above. Note that the [In] parameter is -// tracked in `noIn` argument of `parseExpression`. +// The tracked parameters are defined above. // // Whenever [+Await]/[+Yield] appears in the right-hand sides of a production, // we must enter a new tracking stack. For example when parsing @@ -53,6 +53,10 @@ export default class ProductionParameterHandler { get hasReturn(): boolean { return (this.currentFlags() & PARAM_RETURN) > 0; } + + get hasIn(): boolean { + return (this.currentFlags() & PARAM_IN) > 0; + } } export function functionFlags( diff --git a/packages/babel-parser/test/expressions/experimental/top-level-await/module/input.js b/packages/babel-parser/test/expressions/experimental/top-level-await/module/input.js new file mode 100644 index 000000000000..3bd188069035 --- /dev/null +++ b/packages/babel-parser/test/expressions/experimental/top-level-await/module/input.js @@ -0,0 +1,2 @@ +// prettier-ignore +await +42 diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/548/options.json b/packages/babel-parser/test/expressions/experimental/top-level-await/module/options.json similarity index 100% rename from packages/babel-parser/test/fixtures/core/uncategorised/548/options.json rename to packages/babel-parser/test/expressions/experimental/top-level-await/module/options.json diff --git a/packages/babel-parser/test/expressions/experimental/top-level-await/module/output.json b/packages/babel-parser/test/expressions/experimental/top-level-await/module/output.json new file mode 100644 index 000000000000..f961d5d8b833 --- /dev/null +++ b/packages/babel-parser/test/expressions/experimental/top-level-await/module/output.json @@ -0,0 +1,33 @@ +{ + "type": "AwaitExpression", + "start":19,"end":28,"loc":{"start":{"line":2,"column":0},"end":{"line":2,"column":9}}, + "argument": { + "type": "UnaryExpression", + "start":25,"end":28,"loc":{"start":{"line":2,"column":6},"end":{"line":2,"column":9}}, + "operator": "+", + "prefix": true, + "argument": { + "type": "NumericLiteral", + "start":26,"end":28,"loc":{"start":{"line":2,"column":7},"end":{"line":2,"column":9}}, + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 + } + }, + "leadingComments": [ + { + "type": "CommentLine", + "value": " prettier-ignore", + "start":0,"end":18,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":18}} + } + ], + "comments": [ + { + "type": "CommentLine", + "value": " prettier-ignore", + "start":0,"end":18,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":18}} + } + ] +} \ No newline at end of file diff --git a/packages/babel-parser/test/expressions/experimental/top-level-await/options.json b/packages/babel-parser/test/expressions/experimental/top-level-await/options.json new file mode 100644 index 000000000000..016d522a6107 --- /dev/null +++ b/packages/babel-parser/test/expressions/experimental/top-level-await/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["topLevelAwait"] +} diff --git a/packages/babel-parser/test/expressions/experimental/top-level-await/script/input.js b/packages/babel-parser/test/expressions/experimental/top-level-await/script/input.js new file mode 100644 index 000000000000..3bd188069035 --- /dev/null +++ b/packages/babel-parser/test/expressions/experimental/top-level-await/script/input.js @@ -0,0 +1,2 @@ +// prettier-ignore +await +42 diff --git a/packages/babel-parser/test/fixtures/core/regression/invalid-octal-strict-directive-function/options.json b/packages/babel-parser/test/expressions/experimental/top-level-await/script/options.json similarity index 100% rename from packages/babel-parser/test/fixtures/core/regression/invalid-octal-strict-directive-function/options.json rename to packages/babel-parser/test/expressions/experimental/top-level-await/script/options.json diff --git a/packages/babel-parser/test/expressions/experimental/top-level-await/script/output.json b/packages/babel-parser/test/expressions/experimental/top-level-await/script/output.json new file mode 100644 index 000000000000..6763d89fd179 --- /dev/null +++ b/packages/babel-parser/test/expressions/experimental/top-level-await/script/output.json @@ -0,0 +1,33 @@ +{ + "type": "BinaryExpression", + "start":19,"end":28,"loc":{"start":{"line":2,"column":0},"end":{"line":2,"column":9}}, + "left": { + "type": "Identifier", + "start":19,"end":24,"loc":{"start":{"line":2,"column":0},"end":{"line":2,"column":5},"identifierName":"await"}, + "name": "await" + }, + "operator": "+", + "right": { + "type": "NumericLiteral", + "start":26,"end":28,"loc":{"start":{"line":2,"column":7},"end":{"line":2,"column":9}}, + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 + }, + "leadingComments": [ + { + "type": "CommentLine", + "value": " prettier-ignore", + "start":0,"end":18,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":18}} + } + ], + "comments": [ + { + "type": "CommentLine", + "value": " prettier-ignore", + "start":0,"end":18,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":18}} + } + ] +} \ No newline at end of file diff --git a/packages/babel-parser/test/expressions/experimental/top-level-await/unambiguous/input.js b/packages/babel-parser/test/expressions/experimental/top-level-await/unambiguous/input.js new file mode 100644 index 000000000000..3bd188069035 --- /dev/null +++ b/packages/babel-parser/test/expressions/experimental/top-level-await/unambiguous/input.js @@ -0,0 +1,2 @@ +// prettier-ignore +await +42 diff --git a/packages/babel-parser/test/expressions/experimental/top-level-await/unambiguous/options.json b/packages/babel-parser/test/expressions/experimental/top-level-await/unambiguous/options.json new file mode 100644 index 000000000000..e69c4497f509 --- /dev/null +++ b/packages/babel-parser/test/expressions/experimental/top-level-await/unambiguous/options.json @@ -0,0 +1,3 @@ +{ + "sourceType": "unambiguous" +} diff --git a/packages/babel-parser/test/expressions/experimental/top-level-await/unambiguous/output.json b/packages/babel-parser/test/expressions/experimental/top-level-await/unambiguous/output.json new file mode 100644 index 000000000000..6763d89fd179 --- /dev/null +++ b/packages/babel-parser/test/expressions/experimental/top-level-await/unambiguous/output.json @@ -0,0 +1,33 @@ +{ + "type": "BinaryExpression", + "start":19,"end":28,"loc":{"start":{"line":2,"column":0},"end":{"line":2,"column":9}}, + "left": { + "type": "Identifier", + "start":19,"end":24,"loc":{"start":{"line":2,"column":0},"end":{"line":2,"column":5},"identifierName":"await"}, + "name": "await" + }, + "operator": "+", + "right": { + "type": "NumericLiteral", + "start":26,"end":28,"loc":{"start":{"line":2,"column":7},"end":{"line":2,"column":9}}, + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 + }, + "leadingComments": [ + { + "type": "CommentLine", + "value": " prettier-ignore", + "start":0,"end":18,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":18}} + } + ], + "comments": [ + { + "type": "CommentLine", + "value": " prettier-ignore", + "start":0,"end":18,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":18}} + } + ] +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/core/categorized/sequence-expression-end/input.js b/packages/babel-parser/test/fixtures/core/categorized/sequence-expression-end/input.js new file mode 100644 index 000000000000..a5926ad42e9b --- /dev/null +++ b/packages/babel-parser/test/fixtures/core/categorized/sequence-expression-end/input.js @@ -0,0 +1,4 @@ +a = ( + b, + c +) diff --git a/packages/babel-parser/test/fixtures/core/categorized/sequence-expression-end/output.json b/packages/babel-parser/test/fixtures/core/categorized/sequence-expression-end/output.json new file mode 100644 index 000000000000..8db0508b75d9 --- /dev/null +++ b/packages/babel-parser/test/fixtures/core/categorized/sequence-expression-end/output.json @@ -0,0 +1,47 @@ +{ + "type": "File", + "start":0,"end":16,"loc":{"start":{"line":1,"column":0},"end":{"line":4,"column":1}}, + "program": { + "type": "Program", + "start":0,"end":16,"loc":{"start":{"line":1,"column":0},"end":{"line":4,"column":1}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":16,"loc":{"start":{"line":1,"column":0},"end":{"line":4,"column":1}}, + "expression": { + "type": "AssignmentExpression", + "start":0,"end":16,"loc":{"start":{"line":1,"column":0},"end":{"line":4,"column":1}}, + "operator": "=", + "left": { + "type": "Identifier", + "start":0,"end":1,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":1},"identifierName":"a"}, + "name": "a" + }, + "right": { + "type": "SequenceExpression", + "start":8,"end":14,"loc":{"start":{"line":2,"column":2},"end":{"line":3,"column":3}}, + "expressions": [ + { + "type": "Identifier", + "start":8,"end":9,"loc":{"start":{"line":2,"column":2},"end":{"line":2,"column":3},"identifierName":"b"}, + "name": "b" + }, + { + "type": "Identifier", + "start":13,"end":14,"loc":{"start":{"line":3,"column":2},"end":{"line":3,"column":3},"identifierName":"c"}, + "name": "c" + } + ], + "extra": { + "parenthesized": true, + "parenStart": 4 + } + } + } + } + ], + "directives": [] + } +} diff --git a/packages/babel-parser/test/fixtures/core/regression/invalid-octal-strict-directive-function/input.js b/packages/babel-parser/test/fixtures/core/escape-string/invalid-octal-strict-directive-function/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/core/regression/invalid-octal-strict-directive-function/input.js rename to packages/babel-parser/test/fixtures/core/escape-string/invalid-octal-strict-directive-function/input.js diff --git a/packages/babel-parser/test/fixtures/core/escape-string/invalid-octal-strict-directive-function/options.json b/packages/babel-parser/test/fixtures/core/escape-string/invalid-octal-strict-directive-function/options.json new file mode 100644 index 000000000000..b412ffe6712f --- /dev/null +++ b/packages/babel-parser/test/fixtures/core/escape-string/invalid-octal-strict-directive-function/options.json @@ -0,0 +1,3 @@ +{ + "sourceType": "script" +} diff --git a/packages/babel-parser/test/fixtures/core/regression/invalid-octal-strict-directive-function/output.json b/packages/babel-parser/test/fixtures/core/escape-string/invalid-octal-strict-directive-function/output.json similarity index 98% rename from packages/babel-parser/test/fixtures/core/regression/invalid-octal-strict-directive-function/output.json rename to packages/babel-parser/test/fixtures/core/escape-string/invalid-octal-strict-directive-function/output.json index 2eeced4be950..78d725b77c45 100644 --- a/packages/babel-parser/test/fixtures/core/regression/invalid-octal-strict-directive-function/output.json +++ b/packages/babel-parser/test/fixtures/core/escape-string/invalid-octal-strict-directive-function/output.json @@ -5,9 +5,9 @@ "SyntaxError: Legacy octal literals are not allowed in strict mode (2:4)", "SyntaxError: Legacy octal literals are not allowed in strict mode (7:4)", "SyntaxError: Legacy octal literals are not allowed in strict mode (8:4)", - "SyntaxError: Legacy octal literals are not allowed in strict mode (14:4)", - "SyntaxError: Legacy octal literals are not allowed in strict mode (19:4)", - "SyntaxError: Legacy octal literals are not allowed in strict mode (20:4)", + "SyntaxError: The only valid numeric escape in strict mode is '\\0' (14:4)", + "SyntaxError: The only valid numeric escape in strict mode is '\\0' (19:4)", + "SyntaxError: The only valid numeric escape in strict mode is '\\0' (20:4)", "SyntaxError: Legacy octal literals are not allowed in strict mode (25:2)", "SyntaxError: Legacy octal literals are not allowed in strict mode (30:2)", "SyntaxError: Legacy octal literals are not allowed in strict mode (31:2)" diff --git a/packages/babel-parser/test/fixtures/core/regression/invalid-octal-strict-directive/input.js b/packages/babel-parser/test/fixtures/core/escape-string/invalid-octal-strict-directive/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/core/regression/invalid-octal-strict-directive/input.js rename to packages/babel-parser/test/fixtures/core/escape-string/invalid-octal-strict-directive/input.js diff --git a/packages/babel-parser/test/fixtures/core/regression/invalid-octal-strict-directive/output.json b/packages/babel-parser/test/fixtures/core/escape-string/invalid-octal-strict-directive/output.json similarity index 92% rename from packages/babel-parser/test/fixtures/core/regression/invalid-octal-strict-directive/output.json rename to packages/babel-parser/test/fixtures/core/escape-string/invalid-octal-strict-directive/output.json index f4d5ed29410f..e57ef5ed03f3 100644 --- a/packages/babel-parser/test/fixtures/core/regression/invalid-octal-strict-directive/output.json +++ b/packages/babel-parser/test/fixtures/core/escape-string/invalid-octal-strict-directive/output.json @@ -2,13 +2,13 @@ "type": "File", "start":0,"end":96,"loc":{"start":{"line":1,"column":0},"end":{"line":14,"column":22}}, "errors": [ - "SyntaxError: Legacy octal literals are not allowed in strict mode (8:2)", - "SyntaxError: Legacy octal literals are not allowed in strict mode (9:2)", + "SyntaxError: The only valid numeric escape in strict mode is '\\0' (8:2)", + "SyntaxError: The only valid numeric escape in strict mode is '\\0' (9:2)", "SyntaxError: Legacy octal literals are not allowed in strict mode (11:0)", "SyntaxError: Legacy octal literals are not allowed in strict mode (12:0)", - "SyntaxError: Legacy octal literals are not allowed in strict mode (14:2)", - "SyntaxError: Legacy octal literals are not allowed in strict mode (14:10)", - "SyntaxError: Legacy octal literals are not allowed in strict mode (14:18)", + "SyntaxError: The only valid numeric escape in strict mode is '\\0' (14:2)", + "SyntaxError: The only valid numeric escape in strict mode is '\\0' (14:10)", + "SyntaxError: The only valid numeric escape in strict mode is '\\0' (14:18)", "SyntaxError: Legacy octal literals are not allowed in strict mode (1:2)", "SyntaxError: Legacy octal literals are not allowed in strict mode (1:10)", "SyntaxError: Legacy octal literals are not allowed in strict mode (1:18)", diff --git a/packages/babel-parser/test/fixtures/core/escape-string/non-octal-eight-and-nine/input.js b/packages/babel-parser/test/fixtures/core/escape-string/non-octal-eight-and-nine/input.js new file mode 100644 index 000000000000..191e53efd416 --- /dev/null +++ b/packages/babel-parser/test/fixtures/core/escape-string/non-octal-eight-and-nine/input.js @@ -0,0 +1,5 @@ +"\8","\9"; +() => { + "use strict"; + "\8", "\9"; +} diff --git a/packages/babel-parser/test/fixtures/core/escape-string/non-octal-eight-and-nine/output.json b/packages/babel-parser/test/fixtures/core/escape-string/non-octal-eight-and-nine/output.json new file mode 100644 index 000000000000..0c5b417df26e --- /dev/null +++ b/packages/babel-parser/test/fixtures/core/escape-string/non-octal-eight-and-nine/output.json @@ -0,0 +1,106 @@ +{ + "type": "File", + "start":0,"end":50,"loc":{"start":{"line":1,"column":0},"end":{"line":5,"column":1}}, + "errors": [ + "SyntaxError: The only valid numeric escape in strict mode is '\\0' (4:4)", + "SyntaxError: The only valid numeric escape in strict mode is '\\0' (4:10)" + ], + "program": { + "type": "Program", + "start":0,"end":50,"loc":{"start":{"line":1,"column":0},"end":{"line":5,"column":1}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":10,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":10}}, + "expression": { + "type": "SequenceExpression", + "start":0,"end":9,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":9}}, + "expressions": [ + { + "type": "StringLiteral", + "start":0,"end":4,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":4}}, + "extra": { + "rawValue": "8", + "raw": "\"\\8\"" + }, + "value": "8" + }, + { + "type": "StringLiteral", + "start":5,"end":9,"loc":{"start":{"line":1,"column":5},"end":{"line":1,"column":9}}, + "extra": { + "rawValue": "9", + "raw": "\"\\9\"" + }, + "value": "9" + } + ] + } + }, + { + "type": "ExpressionStatement", + "start":11,"end":50,"loc":{"start":{"line":2,"column":0},"end":{"line":5,"column":1}}, + "expression": { + "type": "ArrowFunctionExpression", + "start":11,"end":50,"loc":{"start":{"line":2,"column":0},"end":{"line":5,"column":1}}, + "id": null, + "generator": false, + "async": false, + "params": [], + "body": { + "type": "BlockStatement", + "start":17,"end":50,"loc":{"start":{"line":2,"column":6},"end":{"line":5,"column":1}}, + "body": [ + { + "type": "ExpressionStatement", + "start":37,"end":48,"loc":{"start":{"line":4,"column":2},"end":{"line":4,"column":13}}, + "expression": { + "type": "SequenceExpression", + "start":37,"end":47,"loc":{"start":{"line":4,"column":2},"end":{"line":4,"column":12}}, + "expressions": [ + { + "type": "StringLiteral", + "start":37,"end":41,"loc":{"start":{"line":4,"column":2},"end":{"line":4,"column":6}}, + "extra": { + "rawValue": "8", + "raw": "\"\\8\"" + }, + "value": "8" + }, + { + "type": "StringLiteral", + "start":43,"end":47,"loc":{"start":{"line":4,"column":8},"end":{"line":4,"column":12}}, + "extra": { + "rawValue": "9", + "raw": "\"\\9\"" + }, + "value": "9" + } + ] + } + } + ], + "directives": [ + { + "type": "Directive", + "start":21,"end":34,"loc":{"start":{"line":3,"column":2},"end":{"line":3,"column":15}}, + "value": { + "type": "DirectiveLiteral", + "start":21,"end":33,"loc":{"start":{"line":3,"column":2},"end":{"line":3,"column":14}}, + "value": "use strict", + "extra": { + "raw": "\"use strict\"", + "rawValue": "use strict" + } + } + } + ] + } + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/503/input.js b/packages/babel-parser/test/fixtures/core/escape-string/numeric-escape-in-directive/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/core/uncategorised/503/input.js rename to packages/babel-parser/test/fixtures/core/escape-string/numeric-escape-in-directive/input.js diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/503/output.json b/packages/babel-parser/test/fixtures/core/escape-string/numeric-escape-in-directive/output.json similarity index 97% rename from packages/babel-parser/test/fixtures/core/uncategorised/503/output.json rename to packages/babel-parser/test/fixtures/core/escape-string/numeric-escape-in-directive/output.json index d559db4b5683..2c6c0e03d277 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/503/output.json +++ b/packages/babel-parser/test/fixtures/core/escape-string/numeric-escape-in-directive/output.json @@ -2,7 +2,7 @@ "type": "File", "start":0,"end":76,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":76}}, "errors": [ - "SyntaxError: Legacy octal literals are not allowed in strict mode (1:69)" + "SyntaxError: The only valid numeric escape in strict mode is '\\0' (1:69)" ], "program": { "type": "Program", diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/501/input.js b/packages/babel-parser/test/fixtures/core/escape-string/numeric-escape-in-property-name/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/core/uncategorised/501/input.js rename to packages/babel-parser/test/fixtures/core/escape-string/numeric-escape-in-property-name/input.js diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/501/output.json b/packages/babel-parser/test/fixtures/core/escape-string/numeric-escape-in-property-name/output.json similarity index 97% rename from packages/babel-parser/test/fixtures/core/uncategorised/501/output.json rename to packages/babel-parser/test/fixtures/core/escape-string/numeric-escape-in-property-name/output.json index 2c29a7df14b9..0491546b1a61 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/501/output.json +++ b/packages/babel-parser/test/fixtures/core/escape-string/numeric-escape-in-property-name/output.json @@ -2,7 +2,7 @@ "type": "File", "start":0,"end":50,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":50}}, "errors": [ - "SyntaxError: Legacy octal literals are not allowed in strict mode (1:38)" + "SyntaxError: The only valid numeric escape in strict mode is '\\0' (1:38)" ], "program": { "type": "Program", diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/499/input.js b/packages/babel-parser/test/fixtures/core/escape-string/numeric-escape/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/core/uncategorised/499/input.js rename to packages/babel-parser/test/fixtures/core/escape-string/numeric-escape/input.js diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/499/output.json b/packages/babel-parser/test/fixtures/core/escape-string/numeric-escape/output.json similarity index 96% rename from packages/babel-parser/test/fixtures/core/uncategorised/499/output.json rename to packages/babel-parser/test/fixtures/core/escape-string/numeric-escape/output.json index a7ce0eaeba38..e9e573c73f5e 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/499/output.json +++ b/packages/babel-parser/test/fixtures/core/escape-string/numeric-escape/output.json @@ -2,7 +2,7 @@ "type": "File", "start":0,"end":40,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":40}}, "errors": [ - "SyntaxError: Legacy octal literals are not allowed in strict mode (1:35)" + "SyntaxError: The only valid numeric escape in strict mode is '\\0' (1:35)" ], "program": { "type": "Program", diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/548/input.js b/packages/babel-parser/test/fixtures/es2015/destructuring/binding-arguments-module/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/core/uncategorised/548/input.js rename to packages/babel-parser/test/fixtures/es2015/destructuring/binding-arguments-module/input.js diff --git a/packages/babel-parser/test/fixtures/es2015/destructuring/binding-arguments-module/options.json b/packages/babel-parser/test/fixtures/es2015/destructuring/binding-arguments-module/options.json new file mode 100644 index 000000000000..2104ca43283f --- /dev/null +++ b/packages/babel-parser/test/fixtures/es2015/destructuring/binding-arguments-module/options.json @@ -0,0 +1,3 @@ +{ + "sourceType": "module" +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/548/output.json b/packages/babel-parser/test/fixtures/es2015/destructuring/binding-arguments-module/output.json similarity index 97% rename from packages/babel-parser/test/fixtures/core/uncategorised/548/output.json rename to packages/babel-parser/test/fixtures/es2015/destructuring/binding-arguments-module/output.json index 6065ead49801..66f3fdbdeedf 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/548/output.json +++ b/packages/babel-parser/test/fixtures/es2015/destructuring/binding-arguments-module/output.json @@ -2,7 +2,6 @@ "type": "File", "start":0,"end":28,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":28}}, "errors": [ - "SyntaxError: Unexpected reserved word 'arguments' (1:8)", "SyntaxError: Binding 'arguments' in strict mode (1:8)" ], "program": { diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/547/input.js b/packages/babel-parser/test/fixtures/es2015/destructuring/binding-arguments-strict/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/core/uncategorised/547/input.js rename to packages/babel-parser/test/fixtures/es2015/destructuring/binding-arguments-strict/input.js diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/547/output.json b/packages/babel-parser/test/fixtures/es2015/destructuring/binding-arguments-strict/output.json similarity index 97% rename from packages/babel-parser/test/fixtures/core/uncategorised/547/output.json rename to packages/babel-parser/test/fixtures/es2015/destructuring/binding-arguments-strict/output.json index c2e81901a1f2..4fb224686603 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/547/output.json +++ b/packages/babel-parser/test/fixtures/es2015/destructuring/binding-arguments-strict/output.json @@ -2,7 +2,6 @@ "type": "File", "start":0,"end":42,"loc":{"start":{"line":1,"column":0},"end":{"line":2,"column":28}}, "errors": [ - "SyntaxError: Unexpected reserved word 'arguments' (2:8)", "SyntaxError: Binding 'arguments' in strict mode (2:8)" ], "program": { diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/333/input.js b/packages/babel-parser/test/fixtures/es2015/destructuring/binding-eval/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/es2015/uncategorised/333/input.js rename to packages/babel-parser/test/fixtures/es2015/destructuring/binding-eval/input.js diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/333/output.json b/packages/babel-parser/test/fixtures/es2015/destructuring/binding-eval/output.json similarity index 98% rename from packages/babel-parser/test/fixtures/es2015/uncategorised/333/output.json rename to packages/babel-parser/test/fixtures/es2015/destructuring/binding-eval/output.json index df2a6a81e4b1..9688161107e5 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/333/output.json +++ b/packages/babel-parser/test/fixtures/es2015/destructuring/binding-eval/output.json @@ -2,7 +2,6 @@ "type": "File", "start":0,"end":39,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":39}}, "errors": [ - "SyntaxError: Unexpected reserved word 'eval' (1:16)", "SyntaxError: Assigning to 'eval' in strict mode (1:16)" ], "program": { diff --git a/packages/babel-parser/test/fixtures/es2015/destructuring/invalid-object-method/input.js b/packages/babel-parser/test/fixtures/es2015/destructuring/invalid-object-method/input.js new file mode 100644 index 000000000000..6264a77434ec --- /dev/null +++ b/packages/babel-parser/test/fixtures/es2015/destructuring/invalid-object-method/input.js @@ -0,0 +1 @@ +const { foo() {} } = foo(); diff --git a/packages/babel-parser/test/fixtures/es2015/destructuring/invalid-object-method/options.json b/packages/babel-parser/test/fixtures/es2015/destructuring/invalid-object-method/options.json new file mode 100644 index 000000000000..3e33f7730f4b --- /dev/null +++ b/packages/babel-parser/test/fixtures/es2015/destructuring/invalid-object-method/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:11)" +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/es2015/object/invalid-accessor-generator/input.js b/packages/babel-parser/test/fixtures/es2015/object/invalid-accessor-generator/input.js new file mode 100644 index 000000000000..e535a197e006 --- /dev/null +++ b/packages/babel-parser/test/fixtures/es2015/object/invalid-accessor-generator/input.js @@ -0,0 +1,4 @@ +({ + get *iterator() { }, + set *iterator(iter) { } +}) diff --git a/packages/babel-parser/test/fixtures/es2015/object/invalid-accessor-generator/output.json b/packages/babel-parser/test/fixtures/es2015/object/invalid-accessor-generator/output.json new file mode 100644 index 000000000000..0049c946dc8c --- /dev/null +++ b/packages/babel-parser/test/fixtures/es2015/object/invalid-accessor-generator/output.json @@ -0,0 +1,81 @@ +{ + "type": "File", + "start":0,"end":58,"loc":{"start":{"line":1,"column":0},"end":{"line":4,"column":2}}, + "errors": [ + "SyntaxError: A getter cannot be a generator (2:9)", + "SyntaxError: A setter cannot be a generator (3:9)" + ], + "program": { + "type": "Program", + "start":0,"end":58,"loc":{"start":{"line":1,"column":0},"end":{"line":4,"column":2}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":58,"loc":{"start":{"line":1,"column":0},"end":{"line":4,"column":2}}, + "expression": { + "type": "ObjectExpression", + "start":1,"end":57,"loc":{"start":{"line":1,"column":1},"end":{"line":4,"column":1}}, + "properties": [ + { + "type": "ObjectMethod", + "start":7,"end":26,"loc":{"start":{"line":2,"column":4},"end":{"line":2,"column":23}}, + "method": false, + "key": { + "type": "Identifier", + "start":12,"end":20,"loc":{"start":{"line":2,"column":9},"end":{"line":2,"column":17},"identifierName":"iterator"}, + "name": "iterator" + }, + "computed": false, + "kind": "get", + "id": null, + "generator": false, + "async": false, + "params": [], + "body": { + "type": "BlockStatement", + "start":23,"end":26,"loc":{"start":{"line":2,"column":20},"end":{"line":2,"column":23}}, + "body": [], + "directives": [] + } + }, + { + "type": "ObjectMethod", + "start":32,"end":55,"loc":{"start":{"line":3,"column":4},"end":{"line":3,"column":27}}, + "method": false, + "key": { + "type": "Identifier", + "start":37,"end":45,"loc":{"start":{"line":3,"column":9},"end":{"line":3,"column":17},"identifierName":"iterator"}, + "name": "iterator" + }, + "computed": false, + "kind": "set", + "id": null, + "generator": false, + "async": false, + "params": [ + { + "type": "Identifier", + "start":46,"end":50,"loc":{"start":{"line":3,"column":18},"end":{"line":3,"column":22},"identifierName":"iter"}, + "name": "iter" + } + ], + "body": { + "type": "BlockStatement", + "start":52,"end":55,"loc":{"start":{"line":3,"column":24},"end":{"line":3,"column":27}}, + "body": [], + "directives": [] + } + } + ], + "extra": { + "parenthesized": true, + "parenStart": 0 + } + } + } + ], + "directives": [] + } +} diff --git a/packages/babel-parser/test/fixtures/es2015/shorthand/1/input.js b/packages/babel-parser/test/fixtures/es2015/shorthand/1/input.js deleted file mode 100644 index 5ce7c9deac24..000000000000 --- a/packages/babel-parser/test/fixtures/es2015/shorthand/1/input.js +++ /dev/null @@ -1 +0,0 @@ -var x = ({ const }); diff --git a/packages/babel-parser/test/fixtures/es2015/shorthand/1/output.json b/packages/babel-parser/test/fixtures/es2015/shorthand/1/output.json deleted file mode 100644 index 7514d1429f5f..000000000000 --- a/packages/babel-parser/test/fixtures/es2015/shorthand/1/output.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "type": "File", - "start":0,"end":20,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":20}}, - "errors": [ - "SyntaxError: Unexpected keyword 'const' (1:11)" - ], - "program": { - "type": "Program", - "start":0,"end":20,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":20}}, - "sourceType": "script", - "interpreter": null, - "body": [ - { - "type": "VariableDeclaration", - "start":0,"end":20,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":20}}, - "declarations": [ - { - "type": "VariableDeclarator", - "start":4,"end":19,"loc":{"start":{"line":1,"column":4},"end":{"line":1,"column":19}}, - "id": { - "type": "Identifier", - "start":4,"end":5,"loc":{"start":{"line":1,"column":4},"end":{"line":1,"column":5},"identifierName":"x"}, - "name": "x" - }, - "init": { - "type": "ObjectExpression", - "start":9,"end":18,"loc":{"start":{"line":1,"column":9},"end":{"line":1,"column":18}}, - "properties": [ - { - "type": "ObjectProperty", - "start":11,"end":16,"loc":{"start":{"line":1,"column":11},"end":{"line":1,"column":16}}, - "method": false, - "key": { - "type": "Identifier", - "start":11,"end":16,"loc":{"start":{"line":1,"column":11},"end":{"line":1,"column":16},"identifierName":"const"}, - "name": "const" - }, - "computed": false, - "shorthand": true, - "value": { - "type": "Identifier", - "start":11,"end":16,"loc":{"start":{"line":1,"column":11},"end":{"line":1,"column":16},"identifierName":"const"}, - "name": "const" - }, - "extra": { - "shorthand": true - } - } - ], - "extra": { - "parenthesized": true, - "parenStart": 8 - } - } - } - ], - "kind": "var" - } - ], - "directives": [] - } -} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/es2015/shorthand/2/input.js b/packages/babel-parser/test/fixtures/es2015/shorthand/2/input.js deleted file mode 100644 index fabf36837d53..000000000000 --- a/packages/babel-parser/test/fixtures/es2015/shorthand/2/input.js +++ /dev/null @@ -1 +0,0 @@ -({ get, this, if }); diff --git a/packages/babel-parser/test/fixtures/es2015/shorthand/2/output.json b/packages/babel-parser/test/fixtures/es2015/shorthand/2/output.json deleted file mode 100644 index 4ca2311d88fe..000000000000 --- a/packages/babel-parser/test/fixtures/es2015/shorthand/2/output.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "type": "File", - "start":0,"end":20,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":20}}, - "errors": [ - "SyntaxError: Unexpected keyword 'this' (1:8)", - "SyntaxError: Unexpected keyword 'if' (1:14)" - ], - "program": { - "type": "Program", - "start":0,"end":20,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":20}}, - "sourceType": "script", - "interpreter": null, - "body": [ - { - "type": "ExpressionStatement", - "start":0,"end":20,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":20}}, - "expression": { - "type": "ObjectExpression", - "start":1,"end":18,"loc":{"start":{"line":1,"column":1},"end":{"line":1,"column":18}}, - "properties": [ - { - "type": "ObjectProperty", - "start":3,"end":6,"loc":{"start":{"line":1,"column":3},"end":{"line":1,"column":6}}, - "method": false, - "key": { - "type": "Identifier", - "start":3,"end":6,"loc":{"start":{"line":1,"column":3},"end":{"line":1,"column":6},"identifierName":"get"}, - "name": "get" - }, - "computed": false, - "shorthand": true, - "value": { - "type": "Identifier", - "start":3,"end":6,"loc":{"start":{"line":1,"column":3},"end":{"line":1,"column":6},"identifierName":"get"}, - "name": "get" - }, - "extra": { - "shorthand": true - } - }, - { - "type": "ObjectProperty", - "start":8,"end":12,"loc":{"start":{"line":1,"column":8},"end":{"line":1,"column":12}}, - "method": false, - "key": { - "type": "Identifier", - "start":8,"end":12,"loc":{"start":{"line":1,"column":8},"end":{"line":1,"column":12},"identifierName":"this"}, - "name": "this" - }, - "computed": false, - "shorthand": true, - "value": { - "type": "Identifier", - "start":8,"end":12,"loc":{"start":{"line":1,"column":8},"end":{"line":1,"column":12},"identifierName":"this"}, - "name": "this" - }, - "extra": { - "shorthand": true - } - }, - { - "type": "ObjectProperty", - "start":14,"end":16,"loc":{"start":{"line":1,"column":14},"end":{"line":1,"column":16}}, - "method": false, - "key": { - "type": "Identifier", - "start":14,"end":16,"loc":{"start":{"line":1,"column":14},"end":{"line":1,"column":16},"identifierName":"if"}, - "name": "if" - }, - "computed": false, - "shorthand": true, - "value": { - "type": "Identifier", - "start":14,"end":16,"loc":{"start":{"line":1,"column":14},"end":{"line":1,"column":16},"identifierName":"if"}, - "name": "if" - }, - "extra": { - "shorthand": true - } - } - ], - "extra": { - "parenthesized": true, - "parenStart": 0 - } - } - } - ], - "directives": [] - } -} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/es2015/shorthand/get-eval-arguments/input.js b/packages/babel-parser/test/fixtures/es2015/shorthand/get-eval-arguments/input.js new file mode 100644 index 000000000000..9562ef0e8d01 --- /dev/null +++ b/packages/babel-parser/test/fixtures/es2015/shorthand/get-eval-arguments/input.js @@ -0,0 +1 @@ +var x = ({ get, eval, arguments }); diff --git a/packages/babel-parser/test/fixtures/es2015/shorthand/get-eval-arguments/output.json b/packages/babel-parser/test/fixtures/es2015/shorthand/get-eval-arguments/output.json new file mode 100644 index 000000000000..75790e603e0a --- /dev/null +++ b/packages/babel-parser/test/fixtures/es2015/shorthand/get-eval-arguments/output.json @@ -0,0 +1,99 @@ +{ + "type": "File", + "start":0,"end":35,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":35}}, + "program": { + "type": "Program", + "start":0,"end":35,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":35}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "VariableDeclaration", + "start":0,"end":35,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":35}}, + "declarations": [ + { + "type": "VariableDeclarator", + "start":4,"end":34,"loc":{"start":{"line":1,"column":4},"end":{"line":1,"column":34}}, + "id": { + "type": "Identifier", + "start":4,"end":5,"loc":{"start":{"line":1,"column":4},"end":{"line":1,"column":5},"identifierName":"x"}, + "name": "x" + }, + "init": { + "type": "ObjectExpression", + "start":9,"end":33,"loc":{"start":{"line":1,"column":9},"end":{"line":1,"column":33}}, + "properties": [ + { + "type": "ObjectProperty", + "start":11,"end":14,"loc":{"start":{"line":1,"column":11},"end":{"line":1,"column":14}}, + "method": false, + "key": { + "type": "Identifier", + "start":11,"end":14,"loc":{"start":{"line":1,"column":11},"end":{"line":1,"column":14},"identifierName":"get"}, + "name": "get" + }, + "computed": false, + "shorthand": true, + "value": { + "type": "Identifier", + "start":11,"end":14,"loc":{"start":{"line":1,"column":11},"end":{"line":1,"column":14},"identifierName":"get"}, + "name": "get" + }, + "extra": { + "shorthand": true + } + }, + { + "type": "ObjectProperty", + "start":16,"end":20,"loc":{"start":{"line":1,"column":16},"end":{"line":1,"column":20}}, + "method": false, + "key": { + "type": "Identifier", + "start":16,"end":20,"loc":{"start":{"line":1,"column":16},"end":{"line":1,"column":20},"identifierName":"eval"}, + "name": "eval" + }, + "computed": false, + "shorthand": true, + "value": { + "type": "Identifier", + "start":16,"end":20,"loc":{"start":{"line":1,"column":16},"end":{"line":1,"column":20},"identifierName":"eval"}, + "name": "eval" + }, + "extra": { + "shorthand": true + } + }, + { + "type": "ObjectProperty", + "start":22,"end":31,"loc":{"start":{"line":1,"column":22},"end":{"line":1,"column":31}}, + "method": false, + "key": { + "type": "Identifier", + "start":22,"end":31,"loc":{"start":{"line":1,"column":22},"end":{"line":1,"column":31},"identifierName":"arguments"}, + "name": "arguments" + }, + "computed": false, + "shorthand": true, + "value": { + "type": "Identifier", + "start":22,"end":31,"loc":{"start":{"line":1,"column":22},"end":{"line":1,"column":31},"identifierName":"arguments"}, + "name": "arguments" + }, + "extra": { + "shorthand": true + } + } + ], + "extra": { + "parenthesized": true, + "parenStart": 8 + } + } + } + ], + "kind": "var" + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/es2015/shorthand/reserved-word-strict/input.js b/packages/babel-parser/test/fixtures/es2015/shorthand/reserved-word-strict/input.js new file mode 100644 index 000000000000..7127b8e2f8af --- /dev/null +++ b/packages/babel-parser/test/fixtures/es2015/shorthand/reserved-word-strict/input.js @@ -0,0 +1,2 @@ +"use strict"; +var x = ({ implements, interface, package }); diff --git a/packages/babel-parser/test/fixtures/es2015/shorthand/reserved-word-strict/output.json b/packages/babel-parser/test/fixtures/es2015/shorthand/reserved-word-strict/output.json new file mode 100644 index 000000000000..4549edcbc96a --- /dev/null +++ b/packages/babel-parser/test/fixtures/es2015/shorthand/reserved-word-strict/output.json @@ -0,0 +1,118 @@ +{ + "type": "File", + "start":0,"end":59,"loc":{"start":{"line":1,"column":0},"end":{"line":2,"column":45}}, + "errors": [ + "SyntaxError: Unexpected reserved word 'implements' (2:11)", + "SyntaxError: Unexpected reserved word 'interface' (2:23)", + "SyntaxError: Unexpected reserved word 'package' (2:34)" + ], + "program": { + "type": "Program", + "start":0,"end":59,"loc":{"start":{"line":1,"column":0},"end":{"line":2,"column":45}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "VariableDeclaration", + "start":14,"end":59,"loc":{"start":{"line":2,"column":0},"end":{"line":2,"column":45}}, + "declarations": [ + { + "type": "VariableDeclarator", + "start":18,"end":58,"loc":{"start":{"line":2,"column":4},"end":{"line":2,"column":44}}, + "id": { + "type": "Identifier", + "start":18,"end":19,"loc":{"start":{"line":2,"column":4},"end":{"line":2,"column":5},"identifierName":"x"}, + "name": "x" + }, + "init": { + "type": "ObjectExpression", + "start":23,"end":57,"loc":{"start":{"line":2,"column":9},"end":{"line":2,"column":43}}, + "properties": [ + { + "type": "ObjectProperty", + "start":25,"end":35,"loc":{"start":{"line":2,"column":11},"end":{"line":2,"column":21}}, + "method": false, + "key": { + "type": "Identifier", + "start":25,"end":35,"loc":{"start":{"line":2,"column":11},"end":{"line":2,"column":21},"identifierName":"implements"}, + "name": "implements" + }, + "computed": false, + "shorthand": true, + "value": { + "type": "Identifier", + "start":25,"end":35,"loc":{"start":{"line":2,"column":11},"end":{"line":2,"column":21},"identifierName":"implements"}, + "name": "implements" + }, + "extra": { + "shorthand": true + } + }, + { + "type": "ObjectProperty", + "start":37,"end":46,"loc":{"start":{"line":2,"column":23},"end":{"line":2,"column":32}}, + "method": false, + "key": { + "type": "Identifier", + "start":37,"end":46,"loc":{"start":{"line":2,"column":23},"end":{"line":2,"column":32},"identifierName":"interface"}, + "name": "interface" + }, + "computed": false, + "shorthand": true, + "value": { + "type": "Identifier", + "start":37,"end":46,"loc":{"start":{"line":2,"column":23},"end":{"line":2,"column":32},"identifierName":"interface"}, + "name": "interface" + }, + "extra": { + "shorthand": true + } + }, + { + "type": "ObjectProperty", + "start":48,"end":55,"loc":{"start":{"line":2,"column":34},"end":{"line":2,"column":41}}, + "method": false, + "key": { + "type": "Identifier", + "start":48,"end":55,"loc":{"start":{"line":2,"column":34},"end":{"line":2,"column":41},"identifierName":"package"}, + "name": "package" + }, + "computed": false, + "shorthand": true, + "value": { + "type": "Identifier", + "start":48,"end":55,"loc":{"start":{"line":2,"column":34},"end":{"line":2,"column":41},"identifierName":"package"}, + "name": "package" + }, + "extra": { + "shorthand": true + } + } + ], + "extra": { + "parenthesized": true, + "parenStart": 22 + } + } + } + ], + "kind": "var" + } + ], + "directives": [ + { + "type": "Directive", + "start":0,"end":13,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":13}}, + "value": { + "type": "DirectiveLiteral", + "start":0,"end":12,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":12}}, + "value": "use strict", + "extra": { + "raw": "\"use strict\"", + "rawValue": "use strict" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/es2015/shorthand/reserved-word/input.js b/packages/babel-parser/test/fixtures/es2015/shorthand/reserved-word/input.js new file mode 100644 index 000000000000..c3cfce102a5a --- /dev/null +++ b/packages/babel-parser/test/fixtures/es2015/shorthand/reserved-word/input.js @@ -0,0 +1 @@ +var x = ({ const, if, this }); diff --git a/packages/babel-parser/test/fixtures/es2015/shorthand/reserved-word/output.json b/packages/babel-parser/test/fixtures/es2015/shorthand/reserved-word/output.json new file mode 100644 index 000000000000..752251aa9b35 --- /dev/null +++ b/packages/babel-parser/test/fixtures/es2015/shorthand/reserved-word/output.json @@ -0,0 +1,104 @@ +{ + "type": "File", + "start":0,"end":30,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":30}}, + "errors": [ + "SyntaxError: Unexpected keyword 'const' (1:11)", + "SyntaxError: Unexpected keyword 'if' (1:18)", + "SyntaxError: Unexpected keyword 'this' (1:22)" + ], + "program": { + "type": "Program", + "start":0,"end":30,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":30}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "VariableDeclaration", + "start":0,"end":30,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":30}}, + "declarations": [ + { + "type": "VariableDeclarator", + "start":4,"end":29,"loc":{"start":{"line":1,"column":4},"end":{"line":1,"column":29}}, + "id": { + "type": "Identifier", + "start":4,"end":5,"loc":{"start":{"line":1,"column":4},"end":{"line":1,"column":5},"identifierName":"x"}, + "name": "x" + }, + "init": { + "type": "ObjectExpression", + "start":9,"end":28,"loc":{"start":{"line":1,"column":9},"end":{"line":1,"column":28}}, + "properties": [ + { + "type": "ObjectProperty", + "start":11,"end":16,"loc":{"start":{"line":1,"column":11},"end":{"line":1,"column":16}}, + "method": false, + "key": { + "type": "Identifier", + "start":11,"end":16,"loc":{"start":{"line":1,"column":11},"end":{"line":1,"column":16},"identifierName":"const"}, + "name": "const" + }, + "computed": false, + "shorthand": true, + "value": { + "type": "Identifier", + "start":11,"end":16,"loc":{"start":{"line":1,"column":11},"end":{"line":1,"column":16},"identifierName":"const"}, + "name": "const" + }, + "extra": { + "shorthand": true + } + }, + { + "type": "ObjectProperty", + "start":18,"end":20,"loc":{"start":{"line":1,"column":18},"end":{"line":1,"column":20}}, + "method": false, + "key": { + "type": "Identifier", + "start":18,"end":20,"loc":{"start":{"line":1,"column":18},"end":{"line":1,"column":20},"identifierName":"if"}, + "name": "if" + }, + "computed": false, + "shorthand": true, + "value": { + "type": "Identifier", + "start":18,"end":20,"loc":{"start":{"line":1,"column":18},"end":{"line":1,"column":20},"identifierName":"if"}, + "name": "if" + }, + "extra": { + "shorthand": true + } + }, + { + "type": "ObjectProperty", + "start":22,"end":26,"loc":{"start":{"line":1,"column":22},"end":{"line":1,"column":26}}, + "method": false, + "key": { + "type": "Identifier", + "start":22,"end":26,"loc":{"start":{"line":1,"column":22},"end":{"line":1,"column":26},"identifierName":"this"}, + "name": "this" + }, + "computed": false, + "shorthand": true, + "value": { + "type": "Identifier", + "start":22,"end":26,"loc":{"start":{"line":1,"column":22},"end":{"line":1,"column":26},"identifierName":"this"}, + "name": "this" + }, + "extra": { + "shorthand": true + } + } + ], + "extra": { + "parenthesized": true, + "parenStart": 8 + } + } + } + ], + "kind": "var" + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/es2017/async-functions/async-shorthand-method/input.js b/packages/babel-parser/test/fixtures/es2017/async-functions/async-shorthand-method/input.js new file mode 100644 index 000000000000..a165b65ecfa5 --- /dev/null +++ b/packages/babel-parser/test/fixtures/es2017/async-functions/async-shorthand-method/input.js @@ -0,0 +1,4 @@ +({ + async get() {}, + async set() {} +}) diff --git a/packages/babel-parser/test/fixtures/es2017/async-functions/async-shorthand-method/output.json b/packages/babel-parser/test/fixtures/es2017/async-functions/async-shorthand-method/output.json new file mode 100644 index 000000000000..11c4f4bd7407 --- /dev/null +++ b/packages/babel-parser/test/fixtures/es2017/async-functions/async-shorthand-method/output.json @@ -0,0 +1,71 @@ +{ + "type": "File", + "start":0,"end":40,"loc":{"start":{"line":1,"column":0},"end":{"line":4,"column":2}}, + "program": { + "type": "Program", + "start":0,"end":40,"loc":{"start":{"line":1,"column":0},"end":{"line":4,"column":2}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":40,"loc":{"start":{"line":1,"column":0},"end":{"line":4,"column":2}}, + "expression": { + "type": "ObjectExpression", + "start":1,"end":39,"loc":{"start":{"line":1,"column":1},"end":{"line":4,"column":1}}, + "properties": [ + { + "type": "ObjectMethod", + "start":5,"end":19,"loc":{"start":{"line":2,"column":2},"end":{"line":2,"column":16}}, + "method": true, + "key": { + "type": "Identifier", + "start":11,"end":14,"loc":{"start":{"line":2,"column":8},"end":{"line":2,"column":11},"identifierName":"get"}, + "name": "get" + }, + "computed": false, + "kind": "method", + "id": null, + "generator": false, + "async": true, + "params": [], + "body": { + "type": "BlockStatement", + "start":17,"end":19,"loc":{"start":{"line":2,"column":14},"end":{"line":2,"column":16}}, + "body": [], + "directives": [] + } + }, + { + "type": "ObjectMethod", + "start":23,"end":37,"loc":{"start":{"line":3,"column":2},"end":{"line":3,"column":16}}, + "method": true, + "key": { + "type": "Identifier", + "start":29,"end":32,"loc":{"start":{"line":3,"column":8},"end":{"line":3,"column":11},"identifierName":"set"}, + "name": "set" + }, + "computed": false, + "kind": "method", + "id": null, + "generator": false, + "async": true, + "params": [], + "body": { + "type": "BlockStatement", + "start":35,"end":37,"loc":{"start":{"line":3,"column":14},"end":{"line":3,"column":16}}, + "body": [], + "directives": [] + } + } + ], + "extra": { + "parenthesized": true, + "parenStart": 0 + } + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/es2017/async-functions/invalid-escape-export-async-function/options.json b/packages/babel-parser/test/fixtures/es2017/async-functions/invalid-escape-export-async-function/options.json index f2ecbd9741e7..9d60866b80c3 100644 --- a/packages/babel-parser/test/fixtures/es2017/async-functions/invalid-escape-export-async-function/options.json +++ b/packages/babel-parser/test/fixtures/es2017/async-functions/invalid-escape-export-async-function/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \"{\" (1:7)" -} +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/es2017/async-functions/newline-before-arrow/input.js b/packages/babel-parser/test/fixtures/es2017/async-functions/newline-before-arrow/input.js new file mode 100644 index 000000000000..0b304c87dfbb --- /dev/null +++ b/packages/babel-parser/test/fixtures/es2017/async-functions/newline-before-arrow/input.js @@ -0,0 +1,2 @@ +async x +=> x diff --git a/packages/babel-parser/test/fixtures/es2017/async-functions/newline-before-arrow/output.json b/packages/babel-parser/test/fixtures/es2017/async-functions/newline-before-arrow/output.json new file mode 100644 index 000000000000..19ade021f45f --- /dev/null +++ b/packages/babel-parser/test/fixtures/es2017/async-functions/newline-before-arrow/output.json @@ -0,0 +1,39 @@ +{ + "type": "File", + "start":0,"end":12,"loc":{"start":{"line":1,"column":0},"end":{"line":2,"column":4}}, + "errors": [ + "SyntaxError: No line break is allowed before '=>' (2:2)" + ], + "program": { + "type": "Program", + "start":0,"end":12,"loc":{"start":{"line":1,"column":0},"end":{"line":2,"column":4}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":12,"loc":{"start":{"line":1,"column":0},"end":{"line":2,"column":4}}, + "expression": { + "type": "ArrowFunctionExpression", + "start":0,"end":12,"loc":{"start":{"line":1,"column":0},"end":{"line":2,"column":4}}, + "id": null, + "generator": false, + "async": true, + "params": [ + { + "type": "Identifier", + "start":6,"end":7,"loc":{"start":{"line":1,"column":6},"end":{"line":1,"column":7},"identifierName":"x"}, + "name": "x" + } + ], + "body": { + "type": "Identifier", + "start":11,"end":12,"loc":{"start":{"line":2,"column":3},"end":{"line":2,"column":4},"identifierName":"x"}, + "name": "x" + } + } + } + ], + "directives": [] + } +} diff --git a/packages/babel-parser/test/fixtures/es2017/async-functions/newline-arrow/input.js b/packages/babel-parser/test/fixtures/es2017/async-functions/newline-before-binding/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/es2017/async-functions/newline-arrow/input.js rename to packages/babel-parser/test/fixtures/es2017/async-functions/newline-before-binding/input.js diff --git a/packages/babel-parser/test/fixtures/es2017/async-functions/newline-arrow/output.json b/packages/babel-parser/test/fixtures/es2017/async-functions/newline-before-binding/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/es2017/async-functions/newline-arrow/output.json rename to packages/babel-parser/test/fixtures/es2017/async-functions/newline-before-binding/output.json diff --git a/packages/babel-parser/test/fixtures/es2017/async-functions/newline/input.js b/packages/babel-parser/test/fixtures/es2017/async-functions/newline-before-function/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/es2017/async-functions/newline/input.js rename to packages/babel-parser/test/fixtures/es2017/async-functions/newline-before-function/input.js diff --git a/packages/babel-parser/test/fixtures/es2017/async-functions/newline/output.json b/packages/babel-parser/test/fixtures/es2017/async-functions/newline-before-function/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/es2017/async-functions/newline/output.json rename to packages/babel-parser/test/fixtures/es2017/async-functions/newline-before-function/output.json diff --git a/packages/babel-parser/test/fixtures/es2020/export-ns-from/ns-dangling-comma/input.js b/packages/babel-parser/test/fixtures/es2020/export-ns-from/ns-dangling-comma/input.js new file mode 100644 index 000000000000..be1347b46cf0 --- /dev/null +++ b/packages/babel-parser/test/fixtures/es2020/export-ns-from/ns-dangling-comma/input.js @@ -0,0 +1 @@ +export * as foo, diff --git a/packages/babel-parser/test/fixtures/es2020/export-ns-from/ns-dangling-comma/options.json b/packages/babel-parser/test/fixtures/es2020/export-ns-from/ns-dangling-comma/options.json new file mode 100644 index 000000000000..5fc553645691 --- /dev/null +++ b/packages/babel-parser/test/fixtures/es2020/export-ns-from/ns-dangling-comma/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token, expected \"{\" (1:16)" +} diff --git a/packages/babel-parser/test/fixtures/es2020/optional-chaining/optioanl-chain-expression/output.json b/packages/babel-parser/test/fixtures/es2020/optional-chaining/optioanl-chain-expression/output.json index 64874e4b02fe..d933036a0a54 100644 --- a/packages/babel-parser/test/fixtures/es2020/optional-chaining/optioanl-chain-expression/output.json +++ b/packages/babel-parser/test/fixtures/es2020/optional-chaining/optioanl-chain-expression/output.json @@ -39,6 +39,7 @@ "computed": false, "optional": true }, + "optional": false, "arguments": [] } } diff --git a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/and-and-equals-no-plugin/input.js b/packages/babel-parser/test/fixtures/es2021/logical-assignment-operator/and-and-equals/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/and-and-equals-no-plugin/input.js rename to packages/babel-parser/test/fixtures/es2021/logical-assignment-operator/and-and-equals/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/and-and-equals/output.json b/packages/babel-parser/test/fixtures/es2021/logical-assignment-operator/and-and-equals/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/and-and-equals/output.json rename to packages/babel-parser/test/fixtures/es2021/logical-assignment-operator/and-and-equals/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/mallet/input.js b/packages/babel-parser/test/fixtures/es2021/logical-assignment-operator/mallet/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/mallet/input.js rename to packages/babel-parser/test/fixtures/es2021/logical-assignment-operator/mallet/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/mallet/output.json b/packages/babel-parser/test/fixtures/es2021/logical-assignment-operator/mallet/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/mallet/output.json rename to packages/babel-parser/test/fixtures/es2021/logical-assignment-operator/mallet/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/qq-equals-no-plugin/input.js b/packages/babel-parser/test/fixtures/es2021/logical-assignment-operator/qq-equals/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/qq-equals-no-plugin/input.js rename to packages/babel-parser/test/fixtures/es2021/logical-assignment-operator/qq-equals/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/qq-equals/output.json b/packages/babel-parser/test/fixtures/es2021/logical-assignment-operator/qq-equals/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/qq-equals/output.json rename to packages/babel-parser/test/fixtures/es2021/logical-assignment-operator/qq-equals/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/identifier-start-0/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/identifier-start-0/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/identifier-start-0/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/identifier-start-0/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/identifier-start-0/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/identifier-start-0/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/identifier-start-0/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/identifier-start-0/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-0/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-0/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-0/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-0/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-0/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-0/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-0/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-0/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-1/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-1/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-1/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-1/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-1/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-1/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-1/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-1/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-10/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-10/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-10/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-10/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-10/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-10/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-10/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-10/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-100/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-100/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-100/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-100/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-100/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-100/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-100/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-100/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-101/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-101/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-101/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-101/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-101/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-101/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-101/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-101/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-102/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-102/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-102/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-102/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-102/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-102/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-102/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-102/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-103/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-103/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-103/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-103/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-103/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-103/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-103/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-103/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-104/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-104/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-104/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-104/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-104/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-104/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-104/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-104/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-105/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-105/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-105/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-105/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-105/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-105/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-105/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-105/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-106/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-106/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-106/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-106/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-106/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-106/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-106/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-106/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-107/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-107/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-107/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-107/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-107/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-107/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-107/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-107/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-108/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-108/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-108/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-108/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-108/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-108/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-108/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-108/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-109/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-109/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-109/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-109/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-109/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-109/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-109/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-109/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-11/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-11/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-11/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-11/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-11/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-11/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-11/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-11/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-110/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-110/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-110/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-110/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-110/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-110/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-110/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-110/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-111/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-111/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-111/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-111/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-111/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-111/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-111/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-111/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-112/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-112/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-112/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-112/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-112/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-112/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-112/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-112/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-113/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-113/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-113/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-113/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-113/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-113/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-113/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-113/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-114/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-114/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-114/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-114/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-114/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-114/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-114/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-114/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-115/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-115/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-115/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-115/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-115/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-115/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-115/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-115/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-116/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-116/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-116/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-116/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-116/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-116/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-116/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-116/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-117/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-117/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-117/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-117/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-117/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-117/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-117/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-117/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-118/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-118/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-118/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-118/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-118/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-118/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-118/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-118/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-119/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-119/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-119/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-119/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-119/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-119/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-119/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-119/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-12/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-12/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-12/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-12/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-12/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-12/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-12/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-12/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-120/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-120/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-120/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-120/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-120/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-120/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-120/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-120/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-121/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-121/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-121/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-121/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-121/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-121/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-121/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-121/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-122/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-122/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-122/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-122/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-122/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-122/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-122/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-122/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-123/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-123/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-123/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-123/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-123/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-123/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-123/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-123/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-124/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-124/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-124/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-124/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-124/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-124/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-124/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-124/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-125/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-125/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-125/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-125/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-125/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-125/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-125/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-125/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-126/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-126/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-126/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-126/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-126/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-126/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-126/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-126/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-127/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-127/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-127/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-127/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-127/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-127/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-127/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-127/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-128/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-128/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-128/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-128/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-128/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-128/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-128/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-128/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-129/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-129/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-129/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-129/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-129/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-129/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-129/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-129/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-13/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-13/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-13/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-13/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-13/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-13/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-13/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-13/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-130/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-130/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-130/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-130/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-130/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-130/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-130/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-130/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-131/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-131/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-131/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-131/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-131/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-131/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-131/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-131/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-132/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-132/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-132/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-132/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-132/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-132/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-132/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-132/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-133/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-133/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-133/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-133/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-133/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-133/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-133/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-133/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-134/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-134/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-134/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-134/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-134/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-134/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-134/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-134/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-135/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-135/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-135/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-135/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-135/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-135/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-135/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-135/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-136/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-136/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-136/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-136/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-136/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-136/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-136/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-136/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-137/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-137/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-137/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-137/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-137/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-137/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-137/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-137/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-138/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-138/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-138/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-138/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-138/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-138/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-138/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-138/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-139/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-139/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-139/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-139/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-139/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-139/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-139/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-139/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-14/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-14/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-14/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-14/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-14/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-14/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-14/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-14/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-140/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-140/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-140/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-140/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-140/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-140/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-140/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-140/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-141/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-141/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-141/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-141/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-141/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-141/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-141/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-141/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-142/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-142/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-142/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-142/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-142/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-142/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-142/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-142/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-143/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-143/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-143/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-143/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-143/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-143/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-143/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-143/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-144/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-144/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-144/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-144/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-144/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-144/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-144/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-144/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-145/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-145/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-145/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-145/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-145/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-145/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-145/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-145/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-146/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-146/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-146/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-146/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-146/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-146/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-146/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-146/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-147/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-147/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-147/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-147/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-147/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-147/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-147/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-147/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-15/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-15/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-15/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-15/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-15/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-15/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-15/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-15/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-16/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-16/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-16/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-16/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-16/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-16/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-16/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-16/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-17/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-17/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-17/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-17/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-17/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-17/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-17/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-17/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-18/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-18/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-18/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-18/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-18/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-18/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-18/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-18/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-19/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-19/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-19/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-19/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-19/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-19/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-19/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-19/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-2/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-2/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-2/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-2/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-2/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-2/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-2/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-2/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-20/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-20/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-20/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-20/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-20/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-20/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-20/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-20/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-21/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-21/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-21/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-21/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-21/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-21/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-21/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-21/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-22/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-22/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-22/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-22/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-22/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-22/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-22/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-22/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-23/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-23/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-23/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-23/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-23/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-23/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-23/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-23/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-24/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-24/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-24/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-24/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-24/options.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-24/options.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-24/options.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-24/options.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-25/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-25/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-25/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-25/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-25/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-25/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-25/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-25/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-26/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-26/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-26/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-26/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-26/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-26/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-26/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-26/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-27/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-27/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-27/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-27/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-27/options.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-27/options.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-27/options.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-27/options.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-28/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-28/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-28/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-28/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-28/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-28/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-28/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-28/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-29/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-29/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-29/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-29/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-29/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-29/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-29/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-29/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-3/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-3/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-3/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-3/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-3/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-3/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-3/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-3/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-30/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-30/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-30/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-30/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-30/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-30/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-30/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-30/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-31/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-31/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-31/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-31/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-31/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-31/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-31/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-31/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-32/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-32/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-32/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-32/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-32/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-32/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-32/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-32/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-33/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-33/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-33/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-33/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-33/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-33/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-33/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-33/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-34/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-34/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-34/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-34/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-34/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-34/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-34/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-34/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-35/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-35/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-35/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-35/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-35/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-35/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-35/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-35/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-36/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-36/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-36/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-36/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-36/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-36/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-36/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-36/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-37/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-37/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-37/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-37/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-37/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-37/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-37/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-37/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-38/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-38/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-38/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-38/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-38/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-38/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-38/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-38/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-39/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-39/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-39/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-39/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-39/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-39/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-39/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-39/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-4/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-4/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-4/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-4/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-4/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-4/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-4/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-4/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-40/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-40/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-40/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-40/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-40/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-40/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-40/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-40/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-41/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-41/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-41/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-41/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-41/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-41/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-41/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-41/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-42/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-42/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-42/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-42/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-42/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-42/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-42/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-42/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-43/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-43/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-43/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-43/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-43/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-43/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-43/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-43/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-44/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-44/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-44/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-44/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-44/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-44/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-44/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-44/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-45/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-45/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-45/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-45/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-45/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-45/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-45/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-45/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-46/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-46/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-46/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-46/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-46/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-46/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-46/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-46/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-47/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-47/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-47/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-47/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-47/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-47/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-47/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-47/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-48/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-48/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-48/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-48/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-48/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-48/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-48/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-48/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-49/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-49/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-49/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-49/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-49/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-49/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-49/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-49/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-5/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-5/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-5/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-5/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-5/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-5/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-5/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-5/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-50/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-50/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-50/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-50/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-50/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-50/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-50/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-50/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-51/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-51/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-51/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-51/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-51/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-51/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-51/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-51/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-52/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-52/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-52/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-52/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-52/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-52/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-52/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-52/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-53/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-53/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-53/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-53/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-53/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-53/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-53/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-53/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-54/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-54/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-54/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-54/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-54/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-54/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-54/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-54/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-55/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-55/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-55/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-55/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-55/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-55/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-55/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-55/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-56/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-56/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-56/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-56/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-56/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-56/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-56/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-56/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-57/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-57/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-57/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-57/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-57/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-57/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-57/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-57/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-58/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-58/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-58/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-58/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-58/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-58/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-58/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-58/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-59/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-59/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-59/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-59/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-59/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-59/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-59/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-59/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-6/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-6/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-6/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-6/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-6/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-6/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-6/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-6/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-60/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-60/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-60/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-60/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-60/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-60/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-60/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-60/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-61/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-61/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-61/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-61/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-61/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-61/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-61/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-61/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-62/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-62/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-62/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-62/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-62/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-62/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-62/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-62/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-63/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-63/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-63/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-63/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-63/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-63/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-63/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-63/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-64/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-64/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-64/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-64/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-64/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-64/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-64/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-64/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-65/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-65/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-65/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-65/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-65/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-65/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-65/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-65/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-66/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-66/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-66/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-66/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-66/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-66/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-66/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-66/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-67/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-67/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-67/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-67/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-67/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-67/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-67/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-67/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-68/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-68/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-68/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-68/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-68/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-68/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-68/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-68/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-69/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-69/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-69/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-69/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-69/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-69/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-69/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-69/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-7/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-7/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-7/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-7/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-7/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-7/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-7/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-7/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-70/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-70/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-70/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-70/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-70/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-70/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-70/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-70/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-71/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-71/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-71/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-71/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-71/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-71/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-71/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-71/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-72/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-72/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-72/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-72/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-72/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-72/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-72/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-72/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-73/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-73/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-73/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-73/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-73/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-73/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-73/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-73/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-74/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-74/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-74/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-74/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-74/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-74/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-74/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-74/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-75/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-75/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-75/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-75/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-75/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-75/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-75/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-75/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-76/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-76/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-76/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-76/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-76/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-76/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-76/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-76/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-77/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-77/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-77/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-77/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-77/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-77/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-77/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-77/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-78/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-78/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-78/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-78/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-78/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-78/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-78/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-78/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-79/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-79/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-79/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-79/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-79/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-79/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-79/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-79/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-8/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-8/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-8/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-8/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-8/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-8/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-8/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-8/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-80/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-80/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-80/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-80/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-80/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-80/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-80/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-80/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-81/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-81/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-81/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-81/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-81/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-81/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-81/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-81/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-82/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-82/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-82/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-82/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-82/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-82/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-82/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-82/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-83/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-83/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-83/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-83/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-83/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-83/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-83/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-83/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-84/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-84/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-84/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-84/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-84/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-84/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-84/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-84/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-85/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-85/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-85/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-85/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-85/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-85/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-85/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-85/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-86/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-86/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-86/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-86/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-86/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-86/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-86/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-86/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-87/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-87/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-87/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-87/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-87/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-87/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-87/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-87/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-88/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-88/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-88/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-88/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-88/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-88/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-88/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-88/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-89/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-89/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-89/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-89/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-89/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-89/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-89/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-89/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-9/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-9/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-9/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-9/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-9/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-9/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-9/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-9/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-90/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-90/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-90/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-90/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-90/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-90/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-90/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-90/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-91/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-91/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-91/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-91/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-91/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-91/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-91/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-91/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-92/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-92/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-92/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-92/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-92/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-92/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-92/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-92/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-93/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-93/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-93/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-93/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-93/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-93/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-93/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-93/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-94/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-94/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-94/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-94/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-94/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-94/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-94/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-94/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-95/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-95/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-95/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-95/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-95/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-95/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-95/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-95/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-96/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-96/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-96/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-96/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-96/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-96/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-96/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-96/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-97/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-97/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-97/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-97/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-97/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-97/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-97/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-97/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-98/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-98/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-98/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-98/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-98/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-98/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-98/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-98/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-99/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-99/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-99/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-99/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-99/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-99/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-99/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-99/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-hex/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-hex/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-hex/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-hex/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-hex/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-hex/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-hex/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-hex/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-leading-zero/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-leading-zero/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-leading-zero/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-leading-zero/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-leading-zero/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-leading-zero/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-leading-zero/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-leading-zero/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-legacy-octal-literal/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-legacy-octal-literal/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-legacy-octal-literal/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-legacy-octal-literal/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-legacy-octal-literal/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-legacy-octal-literal/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-legacy-octal-literal/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-legacy-octal-literal/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-non-octal-decimal-int/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-non-octal-decimal-int/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-non-octal-decimal-int/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-non-octal-decimal-int/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-non-octal-decimal-int/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-non-octal-decimal-int/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-non-octal-decimal-int/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-non-octal-decimal-int/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-unicode-2/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-unicode-2/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-unicode-2/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-unicode-2/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-unicode-2/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-unicode-2/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-unicode-2/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-unicode-2/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-unicode/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-unicode/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-unicode/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-unicode/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-unicode/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-unicode/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-unicode/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/invalid-unicode/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-0/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-0/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-0/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-0/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-0/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-0/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-0/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-0/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-1/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-1/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-1/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-1/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-1/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-1/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-1/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-1/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-10/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-10/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-10/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-10/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-10/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-10/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-10/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-10/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-11/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-11/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-11/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-11/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-11/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-11/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-11/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-11/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-12/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-12/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-12/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-12/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-12/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-12/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-12/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-12/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-13/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-13/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-13/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-13/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-13/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-13/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-13/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-13/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-14/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-14/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-14/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-14/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-14/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-14/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-14/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-14/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-15/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-15/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-15/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-15/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-15/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-15/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-15/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-15/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-2/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-2/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-2/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-2/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-2/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-2/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-2/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-2/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-3/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-3/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-3/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-3/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-3/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-3/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-3/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-3/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-4/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-4/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-4/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-4/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-4/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-4/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-4/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-4/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-5/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-5/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-5/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-5/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-5/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-5/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-5/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-5/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-6/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-6/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-6/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-6/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-6/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-6/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-6/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-6/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-7/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-7/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-7/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-7/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-7/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-7/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-7/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-7/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-8/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-8/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-8/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-8/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-8/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-8/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-8/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-8/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-9/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-9/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-9/input.js rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-9/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-9/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-9/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/numeric-separator/valid-9/output.json rename to packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-9/output.json diff --git a/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-non-octal-exponents/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-non-octal-exponents/input.js new file mode 100644 index 000000000000..5aabedf5a064 --- /dev/null +++ b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-non-octal-exponents/input.js @@ -0,0 +1 @@ +09e1_1 diff --git a/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-non-octal-exponents/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-non-octal-exponents/output.json new file mode 100644 index 000000000000..6762d5469772 --- /dev/null +++ b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-non-octal-exponents/output.json @@ -0,0 +1,26 @@ +{ + "type": "File", + "start":0,"end":6,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":6}}, + "program": { + "type": "Program", + "start":0,"end":6,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":6}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":6,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":6}}, + "expression": { + "type": "NumericLiteral", + "start":0,"end":6,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":6}}, + "extra": { + "rawValue": 900000000000, + "raw": "09e1_1" + }, + "value": 900000000000 + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-non-octal-fragments/input.js b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-non-octal-fragments/input.js new file mode 100644 index 000000000000..c3d2a8641c72 --- /dev/null +++ b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-non-octal-fragments/input.js @@ -0,0 +1 @@ +09.1_1 diff --git a/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-non-octal-fragments/output.json b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-non-octal-fragments/output.json new file mode 100644 index 000000000000..9666443b7dd7 --- /dev/null +++ b/packages/babel-parser/test/fixtures/es2021/numeric-separator/valid-non-octal-fragments/output.json @@ -0,0 +1,26 @@ +{ + "type": "File", + "start":0,"end":6,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":6}}, + "program": { + "type": "Program", + "start":0,"end":6,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":6}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":6,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":6}}, + "expression": { + "type": "NumericLiteral", + "start":0,"end":6,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":6}}, + "extra": { + "rawValue": 9.11, + "raw": "09.1_1" + }, + "value": 9.11 + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0217/output.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0217/output.json index a7ce0eaeba38..e9e573c73f5e 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0217/output.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0217/output.json @@ -2,7 +2,7 @@ "type": "File", "start":0,"end":40,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":40}}, "errors": [ - "SyntaxError: Legacy octal literals are not allowed in strict mode (1:35)" + "SyntaxError: The only valid numeric escape in strict mode is '\\0' (1:35)" ], "program": { "type": "Program", diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0219/output.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0219/output.json index 2c29a7df14b9..0491546b1a61 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0219/output.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0219/output.json @@ -2,7 +2,7 @@ "type": "File", "start":0,"end":50,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":50}}, "errors": [ - "SyntaxError: Legacy octal literals are not allowed in strict mode (1:38)" + "SyntaxError: The only valid numeric escape in strict mode is '\\0' (1:38)" ], "program": { "type": "Program", diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0223/output.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0223/output.json index d559db4b5683..2c6c0e03d277 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0223/output.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0223/output.json @@ -2,7 +2,7 @@ "type": "File", "start":0,"end":76,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":76}}, "errors": [ - "SyntaxError: Legacy octal literals are not allowed in strict mode (1:69)" + "SyntaxError: The only valid numeric escape in strict mode is '\\0' (1:69)" ], "program": { "type": "Program", diff --git a/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call-call/input.js b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call-call/input.js new file mode 100644 index 000000000000..b3d7b711391b --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call-call/input.js @@ -0,0 +1 @@ +(foo?.())() diff --git a/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call-call/output.json b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call-call/output.json new file mode 100644 index 000000000000..5c349122bede --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call-call/output.json @@ -0,0 +1,41 @@ +{ + "type": "File", + "start":0,"end":11,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":11}}, + "program": { + "type": "Program", + "start":0,"end":11,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":11}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":11,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":11}}, + "expression": { + "type": "CallExpression", + "start":0,"end":11,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":11}}, + "callee": { + "type": "ChainExpression", + "start":1,"end":8,"loc":{"start":{"line":1,"column":1},"end":{"line":1,"column":8}}, + "expression": { + "type": "CallExpression", + "start":1,"end":8,"loc":{"start":{"line":1,"column":1},"end":{"line":1,"column":8}}, + "callee": { + "type": "Identifier", + "start":1,"end":4,"loc":{"start":{"line":1,"column":1},"end":{"line":1,"column":4},"identifierName":"foo"}, + "name": "foo" + }, + "optional": true, + "arguments": [] + }, + "extra": { + "parenthesized": true, + "parenStart": 0 + } + }, + "arguments": [], + "optional": false + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call-chained-call/input.js b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call-chained-call/input.js new file mode 100644 index 000000000000..2b31720258c8 --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call-chained-call/input.js @@ -0,0 +1 @@ +foo?.()() diff --git a/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call-chained-call/output.json b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call-chained-call/output.json new file mode 100644 index 000000000000..c09278489170 --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call-chained-call/output.json @@ -0,0 +1,37 @@ +{ + "type": "File", + "start":0,"end":9,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":9}}, + "program": { + "type": "Program", + "start":0,"end":9,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":9}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":9,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":9}}, + "expression": { + "type": "ChainExpression", + "start":0,"end":9,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":9}}, + "expression": { + "type": "CallExpression", + "start":0,"end":9,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":9}}, + "callee": { + "type": "CallExpression", + "start":0,"end":7,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":7}}, + "callee": { + "type": "Identifier", + "start":0,"end":3,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":3},"identifierName":"foo"}, + "name": "foo" + }, + "optional": true, + "arguments": [] + }, + "optional": false, + "arguments": [] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call-chained-member/input.js b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call-chained-member/input.js new file mode 100644 index 000000000000..807074cdb89a --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call-chained-member/input.js @@ -0,0 +1 @@ +foo?.().bar diff --git a/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call-chained-member/output.json b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call-chained-member/output.json new file mode 100644 index 000000000000..9369e8f489a2 --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call-chained-member/output.json @@ -0,0 +1,42 @@ +{ + "type": "File", + "start":0,"end":11,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":11}}, + "program": { + "type": "Program", + "start":0,"end":11,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":11}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":11,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":11}}, + "expression": { + "type": "ChainExpression", + "start":0,"end":11,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":11}}, + "expression": { + "type": "MemberExpression", + "start":0,"end":11,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":11}}, + "object": { + "type": "CallExpression", + "start":0,"end":7,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":7}}, + "callee": { + "type": "Identifier", + "start":0,"end":3,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":3},"identifierName":"foo"}, + "name": "foo" + }, + "optional": true, + "arguments": [] + }, + "property": { + "type": "Identifier", + "start":8,"end":11,"loc":{"start":{"line":1,"column":8},"end":{"line":1,"column":11},"identifierName":"bar"}, + "name": "bar" + }, + "computed": false, + "optional": false + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call-member/input.js b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call-member/input.js new file mode 100644 index 000000000000..1d1d847e00d2 --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call-member/input.js @@ -0,0 +1 @@ +(foo?.()).bar diff --git a/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call-member/output.json b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call-member/output.json new file mode 100644 index 000000000000..0fe7f00909fd --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call-member/output.json @@ -0,0 +1,46 @@ +{ + "type": "File", + "start":0,"end":13,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":13}}, + "program": { + "type": "Program", + "start":0,"end":13,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":13}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":13,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":13}}, + "expression": { + "type": "MemberExpression", + "start":0,"end":13,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":13}}, + "object": { + "type": "ChainExpression", + "start":1,"end":8,"loc":{"start":{"line":1,"column":1},"end":{"line":1,"column":8}}, + "expression": { + "type": "CallExpression", + "start":1,"end":8,"loc":{"start":{"line":1,"column":1},"end":{"line":1,"column":8}}, + "callee": { + "type": "Identifier", + "start":1,"end":4,"loc":{"start":{"line":1,"column":1},"end":{"line":1,"column":4},"identifierName":"foo"}, + "name": "foo" + }, + "optional": true, + "arguments": [] + }, + "extra": { + "parenthesized": true, + "parenStart": 0 + } + }, + "property": { + "type": "Identifier", + "start":10,"end":13,"loc":{"start":{"line":1,"column":10},"end":{"line":1,"column":13},"identifierName":"bar"}, + "name": "bar" + }, + "computed": false, + "optional": false + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call-optional-call/input.js b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call-optional-call/input.js new file mode 100644 index 000000000000..37fc6ab1c9ea --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call-optional-call/input.js @@ -0,0 +1 @@ +foo?.()?.() diff --git a/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call-optional-call/output.json b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call-optional-call/output.json new file mode 100644 index 000000000000..5f3a6de4284b --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call-optional-call/output.json @@ -0,0 +1,37 @@ +{ + "type": "File", + "start":0,"end":11,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":11}}, + "program": { + "type": "Program", + "start":0,"end":11,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":11}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":11,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":11}}, + "expression": { + "type": "ChainExpression", + "start":0,"end":11,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":11}}, + "expression": { + "type": "CallExpression", + "start":0,"end":11,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":11}}, + "callee": { + "type": "CallExpression", + "start":0,"end":7,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":7}}, + "callee": { + "type": "Identifier", + "start":0,"end":3,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":3},"identifierName":"foo"}, + "name": "foo" + }, + "optional": true, + "arguments": [] + }, + "optional": true, + "arguments": [] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call-optional-member/input.js b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call-optional-member/input.js new file mode 100644 index 000000000000..224bf8cbcf4a --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call-optional-member/input.js @@ -0,0 +1 @@ +foo?.()?.bar diff --git a/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call-optional-member/output.json b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call-optional-member/output.json new file mode 100644 index 000000000000..e80ce5e918cd --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call-optional-member/output.json @@ -0,0 +1,42 @@ +{ + "type": "File", + "start":0,"end":12,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":12}}, + "program": { + "type": "Program", + "start":0,"end":12,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":12}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":12,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":12}}, + "expression": { + "type": "ChainExpression", + "start":0,"end":12,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":12}}, + "expression": { + "type": "MemberExpression", + "start":0,"end":12,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":12}}, + "object": { + "type": "CallExpression", + "start":0,"end":7,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":7}}, + "callee": { + "type": "Identifier", + "start":0,"end":3,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":3},"identifierName":"foo"}, + "name": "foo" + }, + "optional": true, + "arguments": [] + }, + "property": { + "type": "Identifier", + "start":9,"end":12,"loc":{"start":{"line":1,"column":9},"end":{"line":1,"column":12},"identifierName":"bar"}, + "name": "bar" + }, + "computed": false, + "optional": true + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call/input.js b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call/input.js new file mode 100644 index 000000000000..58728f9a32ee --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call/input.js @@ -0,0 +1 @@ +foo?.() diff --git a/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call/output.json b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call/output.json new file mode 100644 index 000000000000..fa463157eecd --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-call/output.json @@ -0,0 +1,31 @@ +{ + "type": "File", + "start":0,"end":7,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":7}}, + "program": { + "type": "Program", + "start":0,"end":7,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":7}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":7,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":7}}, + "expression": { + "type": "ChainExpression", + "start":0,"end":7,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":7}}, + "expression": { + "type": "CallExpression", + "start":0,"end":7,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":7}}, + "callee": { + "type": "Identifier", + "start":0,"end":3,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":3},"identifierName":"foo"}, + "name": "foo" + }, + "optional": true, + "arguments": [] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member-call/input.js b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member-call/input.js new file mode 100644 index 000000000000..36546dc139c4 --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member-call/input.js @@ -0,0 +1 @@ +(foo?.bar)() diff --git a/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member-call/output.json b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member-call/output.json new file mode 100644 index 000000000000..71ea0bec2f4d --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member-call/output.json @@ -0,0 +1,46 @@ +{ + "type": "File", + "start":0,"end":12,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":12}}, + "program": { + "type": "Program", + "start":0,"end":12,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":12}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":12,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":12}}, + "expression": { + "type": "CallExpression", + "start":0,"end":12,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":12}}, + "callee": { + "type": "ChainExpression", + "start":1,"end":9,"loc":{"start":{"line":1,"column":1},"end":{"line":1,"column":9}}, + "expression": { + "type": "MemberExpression", + "start":1,"end":9,"loc":{"start":{"line":1,"column":1},"end":{"line":1,"column":9}}, + "object": { + "type": "Identifier", + "start":1,"end":4,"loc":{"start":{"line":1,"column":1},"end":{"line":1,"column":4},"identifierName":"foo"}, + "name": "foo" + }, + "property": { + "type": "Identifier", + "start":6,"end":9,"loc":{"start":{"line":1,"column":6},"end":{"line":1,"column":9},"identifierName":"bar"}, + "name": "bar" + }, + "computed": false, + "optional": true + }, + "extra": { + "parenthesized": true, + "parenStart": 0 + } + }, + "arguments": [], + "optional": false + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member-chained-call/input.js b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member-chained-call/input.js new file mode 100644 index 000000000000..62587bbd256a --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member-chained-call/input.js @@ -0,0 +1 @@ +foo?.bar() diff --git a/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member-chained-call/output.json b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member-chained-call/output.json new file mode 100644 index 000000000000..b09b5792ae77 --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member-chained-call/output.json @@ -0,0 +1,42 @@ +{ + "type": "File", + "start":0,"end":10,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":10}}, + "program": { + "type": "Program", + "start":0,"end":10,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":10}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":10,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":10}}, + "expression": { + "type": "ChainExpression", + "start":0,"end":10,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":10}}, + "expression": { + "type": "CallExpression", + "start":0,"end":10,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":10}}, + "callee": { + "type": "MemberExpression", + "start":0,"end":8,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":8}}, + "object": { + "type": "Identifier", + "start":0,"end":3,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":3},"identifierName":"foo"}, + "name": "foo" + }, + "property": { + "type": "Identifier", + "start":5,"end":8,"loc":{"start":{"line":1,"column":5},"end":{"line":1,"column":8},"identifierName":"bar"}, + "name": "bar" + }, + "computed": false, + "optional": true + }, + "optional": false, + "arguments": [] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member-chained-member/input.js b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member-chained-member/input.js new file mode 100644 index 000000000000..bb1224f5f2d2 --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member-chained-member/input.js @@ -0,0 +1 @@ +foo?.bar.qux diff --git a/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member-chained-member/output.json b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member-chained-member/output.json new file mode 100644 index 000000000000..ad36a4f6b33d --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member-chained-member/output.json @@ -0,0 +1,47 @@ +{ + "type": "File", + "start":0,"end":12,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":12}}, + "program": { + "type": "Program", + "start":0,"end":12,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":12}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":12,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":12}}, + "expression": { + "type": "ChainExpression", + "start":0,"end":12,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":12}}, + "expression": { + "type": "MemberExpression", + "start":0,"end":12,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":12}}, + "object": { + "type": "MemberExpression", + "start":0,"end":8,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":8}}, + "object": { + "type": "Identifier", + "start":0,"end":3,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":3},"identifierName":"foo"}, + "name": "foo" + }, + "property": { + "type": "Identifier", + "start":5,"end":8,"loc":{"start":{"line":1,"column":5},"end":{"line":1,"column":8},"identifierName":"bar"}, + "name": "bar" + }, + "computed": false, + "optional": true + }, + "property": { + "type": "Identifier", + "start":9,"end":12,"loc":{"start":{"line":1,"column":9},"end":{"line":1,"column":12},"identifierName":"qux"}, + "name": "qux" + }, + "computed": false, + "optional": false + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member-member/input.js b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member-member/input.js new file mode 100644 index 000000000000..92d4b9c2e976 --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member-member/input.js @@ -0,0 +1 @@ +(foo?.bar).qux diff --git a/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member-member/output.json b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member-member/output.json new file mode 100644 index 000000000000..0e9d26ac4e78 --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member-member/output.json @@ -0,0 +1,51 @@ +{ + "type": "File", + "start":0,"end":14,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":14}}, + "program": { + "type": "Program", + "start":0,"end":14,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":14}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":14,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":14}}, + "expression": { + "type": "MemberExpression", + "start":0,"end":14,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":14}}, + "object": { + "type": "ChainExpression", + "start":1,"end":9,"loc":{"start":{"line":1,"column":1},"end":{"line":1,"column":9}}, + "expression": { + "type": "MemberExpression", + "start":1,"end":9,"loc":{"start":{"line":1,"column":1},"end":{"line":1,"column":9}}, + "object": { + "type": "Identifier", + "start":1,"end":4,"loc":{"start":{"line":1,"column":1},"end":{"line":1,"column":4},"identifierName":"foo"}, + "name": "foo" + }, + "property": { + "type": "Identifier", + "start":6,"end":9,"loc":{"start":{"line":1,"column":6},"end":{"line":1,"column":9},"identifierName":"bar"}, + "name": "bar" + }, + "computed": false, + "optional": true + }, + "extra": { + "parenthesized": true, + "parenStart": 0 + } + }, + "property": { + "type": "Identifier", + "start":11,"end":14,"loc":{"start":{"line":1,"column":11},"end":{"line":1,"column":14},"identifierName":"qux"}, + "name": "qux" + }, + "computed": false, + "optional": false + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member-optional-call/input.js b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member-optional-call/input.js new file mode 100644 index 000000000000..5585979981d2 --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member-optional-call/input.js @@ -0,0 +1 @@ +foo?.bar?.() diff --git a/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member-optional-call/output.json b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member-optional-call/output.json new file mode 100644 index 000000000000..c6d55b054ad1 --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member-optional-call/output.json @@ -0,0 +1,42 @@ +{ + "type": "File", + "start":0,"end":12,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":12}}, + "program": { + "type": "Program", + "start":0,"end":12,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":12}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":12,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":12}}, + "expression": { + "type": "ChainExpression", + "start":0,"end":12,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":12}}, + "expression": { + "type": "CallExpression", + "start":0,"end":12,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":12}}, + "callee": { + "type": "MemberExpression", + "start":0,"end":8,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":8}}, + "object": { + "type": "Identifier", + "start":0,"end":3,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":3},"identifierName":"foo"}, + "name": "foo" + }, + "property": { + "type": "Identifier", + "start":5,"end":8,"loc":{"start":{"line":1,"column":5},"end":{"line":1,"column":8},"identifierName":"bar"}, + "name": "bar" + }, + "computed": false, + "optional": true + }, + "optional": true, + "arguments": [] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member-optional-member/input.js b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member-optional-member/input.js new file mode 100644 index 000000000000..732b09bd4eed --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member-optional-member/input.js @@ -0,0 +1 @@ +foo?.bar?.qux diff --git a/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member-optional-member/output.json b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member-optional-member/output.json new file mode 100644 index 000000000000..0bbc05854982 --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member-optional-member/output.json @@ -0,0 +1,47 @@ +{ + "type": "File", + "start":0,"end":13,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":13}}, + "program": { + "type": "Program", + "start":0,"end":13,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":13}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":13,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":13}}, + "expression": { + "type": "ChainExpression", + "start":0,"end":13,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":13}}, + "expression": { + "type": "MemberExpression", + "start":0,"end":13,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":13}}, + "object": { + "type": "MemberExpression", + "start":0,"end":8,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":8}}, + "object": { + "type": "Identifier", + "start":0,"end":3,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":3},"identifierName":"foo"}, + "name": "foo" + }, + "property": { + "type": "Identifier", + "start":5,"end":8,"loc":{"start":{"line":1,"column":5},"end":{"line":1,"column":8},"identifierName":"bar"}, + "name": "bar" + }, + "computed": false, + "optional": true + }, + "property": { + "type": "Identifier", + "start":10,"end":13,"loc":{"start":{"line":1,"column":10},"end":{"line":1,"column":13},"identifierName":"qux"}, + "name": "qux" + }, + "computed": false, + "optional": true + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member/input.js b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member/input.js new file mode 100644 index 000000000000..6ed5c83b9389 --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member/input.js @@ -0,0 +1 @@ +foo?.bar diff --git a/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member/output.json b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member/output.json new file mode 100644 index 000000000000..2429cf521f27 --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/optional-chaining/optional-member/output.json @@ -0,0 +1,36 @@ +{ + "type": "File", + "start":0,"end":8,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":8}}, + "program": { + "type": "Program", + "start":0,"end":8,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":8}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":8,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":8}}, + "expression": { + "type": "ChainExpression", + "start":0,"end":8,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":8}}, + "expression": { + "type": "MemberExpression", + "start":0,"end":8,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":8}}, + "object": { + "type": "Identifier", + "start":0,"end":3,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":3},"identifierName":"foo"}, + "name": "foo" + }, + "property": { + "type": "Identifier", + "start":5,"end":8,"loc":{"start":{"line":1,"column":5},"end":{"line":1,"column":8},"identifierName":"bar"}, + "name": "bar" + }, + "computed": false, + "optional": true + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/experimental/_no-plugin/decimal/input.js b/packages/babel-parser/test/fixtures/experimental/_no-plugin/decimal/input.js new file mode 100644 index 000000000000..f72cfcd590f9 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/_no-plugin/decimal/input.js @@ -0,0 +1 @@ +.1m; diff --git a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/qq-equals-no-plugin/options.json b/packages/babel-parser/test/fixtures/experimental/_no-plugin/decimal/options.json similarity index 64% rename from packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/qq-equals-no-plugin/options.json rename to packages/babel-parser/test/fixtures/experimental/_no-plugin/decimal/options.json index 64389a45889e..146c207dab5b 100644 --- a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/qq-equals-no-plugin/options.json +++ b/packages/babel-parser/test/fixtures/experimental/_no-plugin/decimal/options.json @@ -1,3 +1,3 @@ { - "throws": "This experimental syntax requires enabling the parser plugin: 'logicalAssignment' (1:2)" + "throws": "This experimental syntax requires enabling the parser plugin: 'decimal' (1:2)" } diff --git a/packages/babel-parser/test/fixtures/experimental/_no-plugin/numeric-separator-radix/input.js b/packages/babel-parser/test/fixtures/experimental/_no-plugin/numeric-separator-radix/input.js deleted file mode 100644 index 0fa2562844bb..000000000000 --- a/packages/babel-parser/test/fixtures/experimental/_no-plugin/numeric-separator-radix/input.js +++ /dev/null @@ -1 +0,0 @@ -0b1_0 diff --git a/packages/babel-parser/test/fixtures/experimental/_no-plugin/numeric-separator-radix/options.json b/packages/babel-parser/test/fixtures/experimental/_no-plugin/numeric-separator-radix/options.json deleted file mode 100644 index 180f7a692d48..000000000000 --- a/packages/babel-parser/test/fixtures/experimental/_no-plugin/numeric-separator-radix/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "throws": "This experimental syntax requires enabling the parser plugin: 'numericSeparator' (1:3)" -} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/experimental/_no-plugin/numeric-separator/input.js b/packages/babel-parser/test/fixtures/experimental/_no-plugin/numeric-separator/input.js deleted file mode 100644 index ee01ab426063..000000000000 --- a/packages/babel-parser/test/fixtures/experimental/_no-plugin/numeric-separator/input.js +++ /dev/null @@ -1 +0,0 @@ -1_0 diff --git a/packages/babel-parser/test/fixtures/experimental/_no-plugin/numeric-separator/options.json b/packages/babel-parser/test/fixtures/experimental/_no-plugin/numeric-separator/options.json deleted file mode 100644 index ed83acd92c8c..000000000000 --- a/packages/babel-parser/test/fixtures/experimental/_no-plugin/numeric-separator/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "throws": "This experimental syntax requires enabling the parser plugin: 'numericSeparator' (1:1)" -} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/experimental/bind-operator/invalid-non-member-expression/input.js b/packages/babel-parser/test/fixtures/experimental/bind-operator/invalid-non-member-expression/input.js new file mode 100644 index 000000000000..7b1f4ab04b11 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/bind-operator/invalid-non-member-expression/input.js @@ -0,0 +1 @@ +::a?.b; diff --git a/packages/babel-parser/test/fixtures/experimental/bind-operator/invalid-non-member-expression/options.json b/packages/babel-parser/test/fixtures/experimental/bind-operator/invalid-non-member-expression/options.json new file mode 100644 index 000000000000..e76281a4daaf --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/bind-operator/invalid-non-member-expression/options.json @@ -0,0 +1,6 @@ +{ + "plugins": [ + "functionBind" + ], + "throws": "Binding should be performed on object property. (1:2)" +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/experimental/bind-operator/options.json b/packages/babel-parser/test/fixtures/experimental/bind-operator/options.json new file mode 100644 index 000000000000..739c07598958 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/bind-operator/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["functionBind"] +} diff --git a/packages/babel-parser/test/fixtures/experimental/class-private-properties/optional-chain-object/output.json b/packages/babel-parser/test/fixtures/experimental/class-private-properties/optional-chain-object/output.json index a338c29398f2..2fe350f37ece 100644 --- a/packages/babel-parser/test/fixtures/experimental/class-private-properties/optional-chain-object/output.json +++ b/packages/babel-parser/test/fixtures/experimental/class-private-properties/optional-chain-object/output.json @@ -257,6 +257,7 @@ "computed": false, "optional": false }, + "optional": false, "arguments": [ { "type": "NumericLiteral", @@ -303,6 +304,7 @@ "computed": false, "optional": false }, + "optional": false, "arguments": [] } ] diff --git a/packages/babel-parser/test/fixtures/experimental/class-private-properties/optional-chain-start-call/output.json b/packages/babel-parser/test/fixtures/experimental/class-private-properties/optional-chain-start-call/output.json index fab6f81ebb0c..4f58452a4825 100644 --- a/packages/babel-parser/test/fixtures/experimental/class-private-properties/optional-chain-start-call/output.json +++ b/packages/babel-parser/test/fixtures/experimental/class-private-properties/optional-chain-start-call/output.json @@ -93,6 +93,7 @@ "computed": false, "optional": true }, + "optional": false, "arguments": [] } } diff --git a/packages/babel-parser/test/fixtures/experimental/class-private-properties/optional-chain-start-member-call/output.json b/packages/babel-parser/test/fixtures/experimental/class-private-properties/optional-chain-start-member-call/output.json index 10b49c52f465..3eff2947cf51 100644 --- a/packages/babel-parser/test/fixtures/experimental/class-private-properties/optional-chain-start-member-call/output.json +++ b/packages/babel-parser/test/fixtures/experimental/class-private-properties/optional-chain-start-member-call/output.json @@ -99,6 +99,7 @@ "computed": false, "optional": false }, + "optional": false, "arguments": [ { "type": "NumericLiteral", diff --git a/packages/babel-parser/test/fixtures/experimental/decimal/decimal-as-property-name/input.js b/packages/babel-parser/test/fixtures/experimental/decimal/decimal-as-property-name/input.js new file mode 100644 index 000000000000..61bed1edcf52 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/decimal/decimal-as-property-name/input.js @@ -0,0 +1 @@ +({ 0m: 0, .1m() {}, get 0.2m(){}, set 3m(_){}, async 4m() {}, *.5m() {} }); diff --git a/packages/babel-parser/test/fixtures/experimental/decimal/decimal-as-property-name/output.json b/packages/babel-parser/test/fixtures/experimental/decimal/decimal-as-property-name/output.json new file mode 100644 index 000000000000..fef2948b8d28 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/decimal/decimal-as-property-name/output.json @@ -0,0 +1,188 @@ +{ + "type": "File", + "start":0,"end":75,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":75}}, + "program": { + "type": "Program", + "start":0,"end":75,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":75}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":75,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":75}}, + "expression": { + "type": "ObjectExpression", + "start":1,"end":73,"loc":{"start":{"line":1,"column":1},"end":{"line":1,"column":73}}, + "properties": [ + { + "type": "ObjectProperty", + "start":3,"end":8,"loc":{"start":{"line":1,"column":3},"end":{"line":1,"column":8}}, + "method": false, + "key": { + "type": "DecimalLiteral", + "start":3,"end":5,"loc":{"start":{"line":1,"column":3},"end":{"line":1,"column":5}}, + "extra": { + "rawValue": "0", + "raw": "0m" + }, + "value": "0" + }, + "computed": false, + "shorthand": false, + "value": { + "type": "NumericLiteral", + "start":7,"end":8,"loc":{"start":{"line":1,"column":7},"end":{"line":1,"column":8}}, + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 + } + }, + { + "type": "ObjectMethod", + "start":10,"end":18,"loc":{"start":{"line":1,"column":10},"end":{"line":1,"column":18}}, + "method": true, + "key": { + "type": "DecimalLiteral", + "start":10,"end":13,"loc":{"start":{"line":1,"column":10},"end":{"line":1,"column":13}}, + "extra": { + "rawValue": ".1", + "raw": ".1m" + }, + "value": ".1" + }, + "computed": false, + "kind": "method", + "id": null, + "generator": false, + "async": false, + "params": [], + "body": { + "type": "BlockStatement", + "start":16,"end":18,"loc":{"start":{"line":1,"column":16},"end":{"line":1,"column":18}}, + "body": [], + "directives": [] + } + }, + { + "type": "ObjectMethod", + "start":20,"end":32,"loc":{"start":{"line":1,"column":20},"end":{"line":1,"column":32}}, + "method": false, + "key": { + "type": "DecimalLiteral", + "start":24,"end":28,"loc":{"start":{"line":1,"column":24},"end":{"line":1,"column":28}}, + "extra": { + "rawValue": "0.2", + "raw": "0.2m" + }, + "value": "0.2" + }, + "computed": false, + "kind": "get", + "id": null, + "generator": false, + "async": false, + "params": [], + "body": { + "type": "BlockStatement", + "start":30,"end":32,"loc":{"start":{"line":1,"column":30},"end":{"line":1,"column":32}}, + "body": [], + "directives": [] + } + }, + { + "type": "ObjectMethod", + "start":34,"end":45,"loc":{"start":{"line":1,"column":34},"end":{"line":1,"column":45}}, + "method": false, + "key": { + "type": "DecimalLiteral", + "start":38,"end":40,"loc":{"start":{"line":1,"column":38},"end":{"line":1,"column":40}}, + "extra": { + "rawValue": "3", + "raw": "3m" + }, + "value": "3" + }, + "computed": false, + "kind": "set", + "id": null, + "generator": false, + "async": false, + "params": [ + { + "type": "Identifier", + "start":41,"end":42,"loc":{"start":{"line":1,"column":41},"end":{"line":1,"column":42},"identifierName":"_"}, + "name": "_" + } + ], + "body": { + "type": "BlockStatement", + "start":43,"end":45,"loc":{"start":{"line":1,"column":43},"end":{"line":1,"column":45}}, + "body": [], + "directives": [] + } + }, + { + "type": "ObjectMethod", + "start":47,"end":60,"loc":{"start":{"line":1,"column":47},"end":{"line":1,"column":60}}, + "method": true, + "key": { + "type": "DecimalLiteral", + "start":53,"end":55,"loc":{"start":{"line":1,"column":53},"end":{"line":1,"column":55}}, + "extra": { + "rawValue": "4", + "raw": "4m" + }, + "value": "4" + }, + "computed": false, + "kind": "method", + "id": null, + "generator": false, + "async": true, + "params": [], + "body": { + "type": "BlockStatement", + "start":58,"end":60,"loc":{"start":{"line":1,"column":58},"end":{"line":1,"column":60}}, + "body": [], + "directives": [] + } + }, + { + "type": "ObjectMethod", + "start":62,"end":71,"loc":{"start":{"line":1,"column":62},"end":{"line":1,"column":71}}, + "method": true, + "key": { + "type": "DecimalLiteral", + "start":63,"end":66,"loc":{"start":{"line":1,"column":63},"end":{"line":1,"column":66}}, + "extra": { + "rawValue": ".5", + "raw": ".5m" + }, + "value": ".5" + }, + "computed": false, + "kind": "method", + "id": null, + "generator": true, + "async": false, + "params": [], + "body": { + "type": "BlockStatement", + "start":69,"end":71,"loc":{"start":{"line":1,"column":69},"end":{"line":1,"column":71}}, + "body": [], + "directives": [] + } + } + ], + "extra": { + "parenthesized": true, + "parenStart": 0 + } + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/experimental/decimal/invalid-binary/input.js b/packages/babel-parser/test/fixtures/experimental/decimal/invalid-binary/input.js new file mode 100644 index 000000000000..7e56761a593a --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/decimal/invalid-binary/input.js @@ -0,0 +1 @@ +0b101011101m diff --git a/packages/babel-parser/test/fixtures/experimental/decimal/invalid-binary/options.json b/packages/babel-parser/test/fixtures/experimental/decimal/invalid-binary/options.json new file mode 100644 index 000000000000..258615f550b5 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/decimal/invalid-binary/options.json @@ -0,0 +1,6 @@ +{ + "plugins": [ + "decimal" + ], + "throws": "Invalid decimal (1:0)" +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/experimental/decimal/invalid-e/input.js b/packages/babel-parser/test/fixtures/experimental/decimal/invalid-e/input.js new file mode 100644 index 000000000000..075e884e4629 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/decimal/invalid-e/input.js @@ -0,0 +1 @@ +2e9m diff --git a/packages/babel-parser/test/fixtures/experimental/decimal/invalid-e/output.json b/packages/babel-parser/test/fixtures/experimental/decimal/invalid-e/output.json new file mode 100644 index 000000000000..1ae22702c120 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/decimal/invalid-e/output.json @@ -0,0 +1,29 @@ +{ + "type": "File", + "start":0,"end":4,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":4}}, + "errors": [ + "SyntaxError: Invalid decimal (1:0)" + ], + "program": { + "type": "Program", + "start":0,"end":4,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":4}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":4,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":4}}, + "expression": { + "type": "DecimalLiteral", + "start":0,"end":4,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":4}}, + "extra": { + "rawValue": "2e9", + "raw": "2e9m" + }, + "value": "2e9" + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/experimental/decimal/invalid-hexadecimal/input.js b/packages/babel-parser/test/fixtures/experimental/decimal/invalid-hexadecimal/input.js new file mode 100644 index 000000000000..7b5b4d50d8f8 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/decimal/invalid-hexadecimal/input.js @@ -0,0 +1 @@ +0x16432m diff --git a/packages/babel-parser/test/fixtures/experimental/decimal/invalid-hexadecimal/options.json b/packages/babel-parser/test/fixtures/experimental/decimal/invalid-hexadecimal/options.json new file mode 100644 index 000000000000..258615f550b5 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/decimal/invalid-hexadecimal/options.json @@ -0,0 +1,6 @@ +{ + "plugins": [ + "decimal" + ], + "throws": "Invalid decimal (1:0)" +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/experimental/decimal/invalid-non-octal-decimal-int/input.js b/packages/babel-parser/test/fixtures/experimental/decimal/invalid-non-octal-decimal-int/input.js new file mode 100644 index 000000000000..b0d749efc714 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/decimal/invalid-non-octal-decimal-int/input.js @@ -0,0 +1 @@ +089m diff --git a/packages/babel-parser/test/fixtures/experimental/decimal/invalid-non-octal-decimal-int/output.json b/packages/babel-parser/test/fixtures/experimental/decimal/invalid-non-octal-decimal-int/output.json new file mode 100644 index 000000000000..60c5dbd4f533 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/decimal/invalid-non-octal-decimal-int/output.json @@ -0,0 +1,29 @@ +{ + "type": "File", + "start":0,"end":4,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":4}}, + "errors": [ + "SyntaxError: Invalid decimal (1:0)" + ], + "program": { + "type": "Program", + "start":0,"end":4,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":4}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":4,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":4}}, + "expression": { + "type": "DecimalLiteral", + "start":0,"end":4,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":4}}, + "extra": { + "rawValue": "089", + "raw": "089m" + }, + "value": "089" + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/experimental/decimal/invalid-octal-legacy/input.js b/packages/babel-parser/test/fixtures/experimental/decimal/invalid-octal-legacy/input.js new file mode 100644 index 000000000000..c3fffee2f367 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/decimal/invalid-octal-legacy/input.js @@ -0,0 +1 @@ +016432m diff --git a/packages/babel-parser/test/fixtures/experimental/decimal/invalid-octal-legacy/output.json b/packages/babel-parser/test/fixtures/experimental/decimal/invalid-octal-legacy/output.json new file mode 100644 index 000000000000..2c49c0fb79fe --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/decimal/invalid-octal-legacy/output.json @@ -0,0 +1,29 @@ +{ + "type": "File", + "start":0,"end":7,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":7}}, + "errors": [ + "SyntaxError: Invalid decimal (1:0)" + ], + "program": { + "type": "Program", + "start":0,"end":7,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":7}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":7,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":7}}, + "expression": { + "type": "DecimalLiteral", + "start":0,"end":7,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":7}}, + "extra": { + "rawValue": "016432", + "raw": "016432m" + }, + "value": "016432" + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/experimental/decimal/invalid-octal-new/input.js b/packages/babel-parser/test/fixtures/experimental/decimal/invalid-octal-new/input.js new file mode 100644 index 000000000000..af3272769d9c --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/decimal/invalid-octal-new/input.js @@ -0,0 +1 @@ +0o16432m diff --git a/packages/babel-parser/test/fixtures/experimental/decimal/invalid-octal-new/options.json b/packages/babel-parser/test/fixtures/experimental/decimal/invalid-octal-new/options.json new file mode 100644 index 000000000000..258615f550b5 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/decimal/invalid-octal-new/options.json @@ -0,0 +1,6 @@ +{ + "plugins": [ + "decimal" + ], + "throws": "Invalid decimal (1:0)" +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/experimental/decimal/options.json b/packages/babel-parser/test/fixtures/experimental/decimal/options.json new file mode 100644 index 000000000000..f4a30fe3d611 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/decimal/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["decimal"] +} diff --git a/packages/babel-parser/test/fixtures/experimental/decimal/valid-decimal/input.js b/packages/babel-parser/test/fixtures/experimental/decimal/valid-decimal/input.js new file mode 100644 index 000000000000..762f620bbb4e --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/decimal/valid-decimal/input.js @@ -0,0 +1 @@ +1.m diff --git a/packages/babel-parser/test/fixtures/experimental/decimal/valid-decimal/output.json b/packages/babel-parser/test/fixtures/experimental/decimal/valid-decimal/output.json new file mode 100644 index 000000000000..9273cf35d352 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/decimal/valid-decimal/output.json @@ -0,0 +1,26 @@ +{ + "type": "File", + "start":0,"end":3,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":3}}, + "program": { + "type": "Program", + "start":0,"end":3,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":3}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":3,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":3}}, + "expression": { + "type": "DecimalLiteral", + "start":0,"end":3,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":3}}, + "extra": { + "rawValue": "1.", + "raw": "1.m" + }, + "value": "1." + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/experimental/decimal/valid-float-decimal/input.js b/packages/babel-parser/test/fixtures/experimental/decimal/valid-float-decimal/input.js new file mode 100644 index 000000000000..66c782047353 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/decimal/valid-float-decimal/input.js @@ -0,0 +1 @@ +100.0m diff --git a/packages/babel-parser/test/fixtures/experimental/decimal/valid-float-decimal/output.json b/packages/babel-parser/test/fixtures/experimental/decimal/valid-float-decimal/output.json new file mode 100644 index 000000000000..3ad9bde5c4c2 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/decimal/valid-float-decimal/output.json @@ -0,0 +1,26 @@ +{ + "type": "File", + "start":0,"end":6,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":6}}, + "program": { + "type": "Program", + "start":0,"end":6,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":6}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":6,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":6}}, + "expression": { + "type": "DecimalLiteral", + "start":0,"end":6,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":6}}, + "extra": { + "rawValue": "100.0", + "raw": "100.0m" + }, + "value": "100.0" + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/experimental/decimal/valid-float/input.js b/packages/babel-parser/test/fixtures/experimental/decimal/valid-float/input.js new file mode 100644 index 000000000000..f53b99cf2635 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/decimal/valid-float/input.js @@ -0,0 +1 @@ +100m diff --git a/packages/babel-parser/test/fixtures/experimental/decimal/valid-float/output.json b/packages/babel-parser/test/fixtures/experimental/decimal/valid-float/output.json new file mode 100644 index 000000000000..bc4b9d85d535 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/decimal/valid-float/output.json @@ -0,0 +1,26 @@ +{ + "type": "File", + "start":0,"end":4,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":4}}, + "program": { + "type": "Program", + "start":0,"end":4,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":4}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":4,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":4}}, + "expression": { + "type": "DecimalLiteral", + "start":0,"end":4,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":4}}, + "extra": { + "rawValue": "100", + "raw": "100m" + }, + "value": "100" + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/experimental/decimal/valid-large/input.js b/packages/babel-parser/test/fixtures/experimental/decimal/valid-large/input.js new file mode 100644 index 000000000000..8d9ca018cf89 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/decimal/valid-large/input.js @@ -0,0 +1 @@ +9223372036854775807m diff --git a/packages/babel-parser/test/fixtures/experimental/decimal/valid-large/output.json b/packages/babel-parser/test/fixtures/experimental/decimal/valid-large/output.json new file mode 100644 index 000000000000..084218fa1e9b --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/decimal/valid-large/output.json @@ -0,0 +1,26 @@ +{ + "type": "File", + "start":0,"end":20,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":20}}, + "program": { + "type": "Program", + "start":0,"end":20,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":20}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":20,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":20}}, + "expression": { + "type": "DecimalLiteral", + "start":0,"end":20,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":20}}, + "extra": { + "rawValue": "9223372036854775807", + "raw": "9223372036854775807m" + }, + "value": "9223372036854775807" + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/experimental/decimal/valid-small/input.js b/packages/babel-parser/test/fixtures/experimental/decimal/valid-small/input.js new file mode 100644 index 000000000000..d36e0ec8ac19 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/decimal/valid-small/input.js @@ -0,0 +1 @@ +100.m diff --git a/packages/babel-parser/test/fixtures/experimental/decimal/valid-small/output.json b/packages/babel-parser/test/fixtures/experimental/decimal/valid-small/output.json new file mode 100644 index 000000000000..29cf5bca6c5f --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/decimal/valid-small/output.json @@ -0,0 +1,26 @@ +{ + "type": "File", + "start":0,"end":5,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":5}}, + "program": { + "type": "Program", + "start":0,"end":5,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":5}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":5,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":5}}, + "expression": { + "type": "DecimalLiteral", + "start":0,"end":5,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":5}}, + "extra": { + "rawValue": "100.", + "raw": "100.m" + }, + "value": "100." + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/experimental/decorators/invalid-decorator-spread-element/input.js b/packages/babel-parser/test/fixtures/experimental/decorators/invalid-decorator-spread-element/input.js new file mode 100644 index 000000000000..5b97a2b6510f --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/decorators/invalid-decorator-spread-element/input.js @@ -0,0 +1 @@ +({ @foo ...foo }); diff --git a/packages/babel-parser/test/fixtures/experimental/decorators/invalid-decorator-spread-element/options.json b/packages/babel-parser/test/fixtures/experimental/decorators/invalid-decorator-spread-element/options.json new file mode 100644 index 000000000000..e2bd94fc3116 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/decorators/invalid-decorator-spread-element/options.json @@ -0,0 +1,4 @@ +{ + "plugins": ["decorators-legacy"], + "throws": "Unexpected token (1:8)" +} diff --git a/packages/babel-parser/test/fixtures/experimental/export-extensions/default-and-ns/options.json b/packages/babel-parser/test/fixtures/experimental/export-extensions/default-and-ns/options.json deleted file mode 100644 index fb17f33a28b5..000000000000 --- a/packages/babel-parser/test/fixtures/experimental/export-extensions/default-and-ns/options.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "plugins": ["exportDefaultFrom"], - "sourceType": "module" -} diff --git a/packages/babel-parser/test/fixtures/experimental/export-extensions/default-dangling-comma/input.js b/packages/babel-parser/test/fixtures/experimental/export-extensions/default-dangling-comma/input.js new file mode 100644 index 000000000000..2eac343a3507 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/export-extensions/default-dangling-comma/input.js @@ -0,0 +1 @@ +export default, diff --git a/packages/babel-parser/test/fixtures/experimental/export-extensions/default-dangling-comma/options.json b/packages/babel-parser/test/fixtures/experimental/export-extensions/default-dangling-comma/options.json new file mode 100644 index 000000000000..78ef8d224620 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/export-extensions/default-dangling-comma/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token, expected \"{\" (1:15)" +} diff --git a/packages/babel-parser/test/fixtures/experimental/export-extensions/default-default-asi/options.json b/packages/babel-parser/test/fixtures/experimental/export-extensions/default-default-asi/options.json deleted file mode 100644 index 164d90422fb2..000000000000 --- a/packages/babel-parser/test/fixtures/experimental/export-extensions/default-default-asi/options.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "sourceType": "module", - "plugins": ["exportDefaultFrom"] -} diff --git a/packages/babel-parser/test/fixtures/experimental/export-extensions/default-default/options.json b/packages/babel-parser/test/fixtures/experimental/export-extensions/default-default/options.json deleted file mode 100644 index 164d90422fb2..000000000000 --- a/packages/babel-parser/test/fixtures/experimental/export-extensions/default-default/options.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "sourceType": "module", - "plugins": ["exportDefaultFrom"] -} diff --git a/packages/babel-parser/test/fixtures/experimental/export-extensions/default-escaped/input.js b/packages/babel-parser/test/fixtures/experimental/export-extensions/default-escaped/input.js new file mode 100644 index 000000000000..1b9fbd91fe7c --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/export-extensions/default-escaped/input.js @@ -0,0 +1 @@ +export asyn\u{63} from "async"; diff --git a/packages/babel-parser/test/fixtures/experimental/export-extensions/default-escaped/output.json b/packages/babel-parser/test/fixtures/experimental/export-extensions/default-escaped/output.json new file mode 100644 index 000000000000..33806b3628a8 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/export-extensions/default-escaped/output.json @@ -0,0 +1,37 @@ +{ + "type": "File", + "start":0,"end":31,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":31}}, + "program": { + "type": "Program", + "start":0,"end":31,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":31}}, + "sourceType": "module", + "interpreter": null, + "body": [ + { + "type": "ExportNamedDeclaration", + "start":0,"end":31,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":31}}, + "specifiers": [ + { + "type": "ExportDefaultSpecifier", + "start":7,"end":17,"loc":{"start":{"line":1,"column":7},"end":{"line":1,"column":17}}, + "exported": { + "type": "Identifier", + "start":7,"end":17,"loc":{"start":{"line":1,"column":7},"end":{"line":1,"column":17},"identifierName":"async"}, + "name": "async" + } + } + ], + "source": { + "type": "StringLiteral", + "start":23,"end":30,"loc":{"start":{"line":1,"column":23},"end":{"line":1,"column":30}}, + "extra": { + "rawValue": "async", + "raw": "\"async\"" + }, + "value": "async" + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/experimental/export-extensions/default-from-identifier-escaped/options.json b/packages/babel-parser/test/fixtures/experimental/export-extensions/default-from-identifier-escaped/options.json deleted file mode 100644 index fb17f33a28b5..000000000000 --- a/packages/babel-parser/test/fixtures/experimental/export-extensions/default-from-identifier-escaped/options.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "plugins": ["exportDefaultFrom"], - "sourceType": "module" -} diff --git a/packages/babel-parser/test/fixtures/experimental/export-extensions/default-from-identifier-parenthesized/options.json b/packages/babel-parser/test/fixtures/experimental/export-extensions/default-from-identifier-parenthesized/options.json deleted file mode 100644 index fb17f33a28b5..000000000000 --- a/packages/babel-parser/test/fixtures/experimental/export-extensions/default-from-identifier-parenthesized/options.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "plugins": ["exportDefaultFrom"], - "sourceType": "module" -} diff --git a/packages/babel-parser/test/fixtures/experimental/export-extensions/default-type-without-flow/options.json b/packages/babel-parser/test/fixtures/experimental/export-extensions/default-type-without-flow/options.json deleted file mode 100644 index fb17f33a28b5..000000000000 --- a/packages/babel-parser/test/fixtures/experimental/export-extensions/default-type-without-flow/options.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "plugins": ["exportDefaultFrom"], - "sourceType": "module" -} diff --git a/packages/babel-parser/test/fixtures/experimental/export-extensions/default/options.json b/packages/babel-parser/test/fixtures/experimental/export-extensions/default/options.json deleted file mode 100644 index fb17f33a28b5..000000000000 --- a/packages/babel-parser/test/fixtures/experimental/export-extensions/default/options.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "plugins": ["exportDefaultFrom"], - "sourceType": "module" -} diff --git a/packages/babel-parser/test/fixtures/experimental/export-extensions/invalid-default-from-identifier/options.json b/packages/babel-parser/test/fixtures/experimental/export-extensions/invalid-default-from-identifier/options.json deleted file mode 100644 index fb17f33a28b5..000000000000 --- a/packages/babel-parser/test/fixtures/experimental/export-extensions/invalid-default-from-identifier/options.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "plugins": ["exportDefaultFrom"], - "sourceType": "module" -} diff --git a/packages/babel-parser/test/fixtures/experimental/export-extensions/default-and-named/options.json b/packages/babel-parser/test/fixtures/experimental/export-extensions/options.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/export-extensions/default-and-named/options.json rename to packages/babel-parser/test/fixtures/experimental/export-extensions/options.json diff --git a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/and-and-equals-no-plugin/options.json b/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/and-and-equals-no-plugin/options.json deleted file mode 100644 index 5b674fdee42e..000000000000 --- a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/and-and-equals-no-plugin/options.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "plugins": [], - "throws": "This experimental syntax requires enabling the parser plugin: 'logicalAssignment' (1:2)" -} diff --git a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/and-and-equals/input.js b/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/and-and-equals/input.js deleted file mode 100644 index 740f1fa9268a..000000000000 --- a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/and-and-equals/input.js +++ /dev/null @@ -1,2 +0,0 @@ -a &&= b; -obj.a &&= b; diff --git a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/and-and-equals/options.json b/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/and-and-equals/options.json deleted file mode 100644 index 5041dbb19f81..000000000000 --- a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/and-and-equals/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "plugins": ["logicalAssignment"] -} diff --git a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/mallet-no-plugin/input.js b/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/mallet-no-plugin/input.js deleted file mode 100644 index 53c87792bb2f..000000000000 --- a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/mallet-no-plugin/input.js +++ /dev/null @@ -1 +0,0 @@ -a ||= b; diff --git a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/mallet-no-plugin/options.json b/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/mallet-no-plugin/options.json deleted file mode 100644 index 5b674fdee42e..000000000000 --- a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/mallet-no-plugin/options.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "plugins": [], - "throws": "This experimental syntax requires enabling the parser plugin: 'logicalAssignment' (1:2)" -} diff --git a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/mallet/options.json b/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/mallet/options.json deleted file mode 100644 index 5041dbb19f81..000000000000 --- a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/mallet/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "plugins": ["logicalAssignment"] -} diff --git a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/qq-equals/input.js b/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/qq-equals/input.js deleted file mode 100644 index dcf876b17411..000000000000 --- a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/qq-equals/input.js +++ /dev/null @@ -1,2 +0,0 @@ -a ??= b; -obj.a ??= b; diff --git a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/qq-equals/options.json b/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/qq-equals/options.json deleted file mode 100644 index 5041dbb19f81..000000000000 --- a/packages/babel-parser/test/fixtures/experimental/logical-assignment-operator/qq-equals/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "plugins": ["logicalAssignment"] -} diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-hex/options.json b/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-hex/options.json deleted file mode 100644 index 7832463eea97..000000000000 --- a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-hex/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "plugins": ["numericSeparator"] -} diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-leading-zero/options.json b/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-leading-zero/options.json deleted file mode 100644 index 7832463eea97..000000000000 --- a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-leading-zero/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "plugins": ["numericSeparator"] -} diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-legacy-octal-literal/options.json b/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-legacy-octal-literal/options.json deleted file mode 100644 index 7832463eea97..000000000000 --- a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-legacy-octal-literal/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "plugins": ["numericSeparator"] -} diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-non-octal-decimal-int/options.json b/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-non-octal-decimal-int/options.json deleted file mode 100644 index 7832463eea97..000000000000 --- a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-non-octal-decimal-int/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "plugins": ["numericSeparator"] -} diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-unicode-2/options.json b/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-unicode-2/options.json deleted file mode 100644 index 7832463eea97..000000000000 --- a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-unicode-2/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "plugins": ["numericSeparator"] -} diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-unicode/options.json b/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-unicode/options.json deleted file mode 100644 index 7832463eea97..000000000000 --- a/packages/babel-parser/test/fixtures/experimental/numeric-separator/invalid-unicode/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "plugins": ["numericSeparator"] -} diff --git a/packages/babel-parser/test/fixtures/experimental/numeric-separator/options.json b/packages/babel-parser/test/fixtures/experimental/numeric-separator/options.json deleted file mode 100644 index 7832463eea97..000000000000 --- a/packages/babel-parser/test/fixtures/experimental/numeric-separator/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "plugins": ["numericSeparator"] -} diff --git a/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-fsharp-invalid-primary-topic/input.js b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-fsharp-invalid-primary-topic/input.js new file mode 100644 index 000000000000..7b96ee2275f0 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-fsharp-invalid-primary-topic/input.js @@ -0,0 +1 @@ +x |> # + 1 diff --git a/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-fsharp-invalid-primary-topic/options.json b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-fsharp-invalid-primary-topic/options.json new file mode 100644 index 000000000000..f95ecc7d6c23 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-fsharp-invalid-primary-topic/options.json @@ -0,0 +1,3 @@ +{ + "plugins": [["pipelineOperator", { "proposal": "fsharp" }]] +} diff --git a/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-fsharp-invalid-primary-topic/output.json b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-fsharp-invalid-primary-topic/output.json new file mode 100644 index 000000000000..6c724302e0b3 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-fsharp-invalid-primary-topic/output.json @@ -0,0 +1,49 @@ +{ + "type": "File", + "start":0,"end":10,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":10}}, + "errors": [ + "SyntaxError: Primary Topic Reference found but pipelineOperator not passed 'smart' for 'proposal' option. (1:5)", + "SyntaxError: Topic reference was used in a lexical context without topic binding (1:5)" + ], + "program": { + "type": "Program", + "start":0,"end":10,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":10}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":10,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":10}}, + "expression": { + "type": "BinaryExpression", + "start":0,"end":10,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":10}}, + "left": { + "type": "Identifier", + "start":0,"end":1,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":1},"identifierName":"x"}, + "name": "x" + }, + "operator": "|>", + "right": { + "type": "BinaryExpression", + "start":5,"end":10,"loc":{"start":{"line":1,"column":5},"end":{"line":1,"column":10}}, + "left": { + "type": "PipelinePrimaryTopicReference", + "start":5,"end":6,"loc":{"start":{"line":1,"column":5},"end":{"line":1,"column":6}} + }, + "operator": "+", + "right": { + "type": "NumericLiteral", + "start":9,"end":10,"loc":{"start":{"line":1,"column":9},"end":{"line":1,"column":10}}, + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 + } + } + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/experimental/record-and-tuple/as-jsx-attribute-value-bar/input.js b/packages/babel-parser/test/fixtures/experimental/record-and-tuple/as-jsx-attribute-value-bar/input.js new file mode 100644 index 000000000000..f325f9eb9a5d --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/record-and-tuple/as-jsx-attribute-value-bar/input.js @@ -0,0 +1 @@ + diff --git a/packages/babel-parser/test/fixtures/experimental/record-and-tuple/as-jsx-attribute-value-bar/options.json b/packages/babel-parser/test/fixtures/experimental/record-and-tuple/as-jsx-attribute-value-bar/options.json new file mode 100644 index 000000000000..663c67344986 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/record-and-tuple/as-jsx-attribute-value-bar/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["jsx", "flow", ["recordAndTuple", { "syntaxType": "bar" }]] +} diff --git a/packages/babel-parser/test/fixtures/experimental/record-and-tuple/as-jsx-attribute-value-bar/output.json b/packages/babel-parser/test/fixtures/experimental/record-and-tuple/as-jsx-attribute-value-bar/output.json new file mode 100644 index 000000000000..dac25261bdb0 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/record-and-tuple/as-jsx-attribute-value-bar/output.json @@ -0,0 +1,83 @@ +{ + "type": "File", + "start":0,"end":37,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":37}}, + "program": { + "type": "Program", + "start":0,"end":37,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":37}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":37,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":37}}, + "expression": { + "type": "JSXElement", + "start":0,"end":37,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":37}}, + "openingElement": { + "type": "JSXOpeningElement", + "start":0,"end":30,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":30}}, + "name": { + "type": "JSXIdentifier", + "start":1,"end":5,"loc":{"start":{"line":1,"column":1},"end":{"line":1,"column":5}}, + "name": "Card" + }, + "attributes": [ + { + "type": "JSXAttribute", + "start":6,"end":29,"loc":{"start":{"line":1,"column":6},"end":{"line":1,"column":29}}, + "name": { + "type": "JSXIdentifier", + "start":6,"end":10,"loc":{"start":{"line":1,"column":6},"end":{"line":1,"column":10}}, + "name": "card" + }, + "value": { + "type": "JSXExpressionContainer", + "start":11,"end":29,"loc":{"start":{"line":1,"column":11},"end":{"line":1,"column":29}}, + "expression": { + "type": "RecordExpression", + "start":12,"end":28,"loc":{"start":{"line":1,"column":12},"end":{"line":1,"column":28}}, + "properties": [ + { + "type": "ObjectProperty", + "start":14,"end":26,"loc":{"start":{"line":1,"column":14},"end":{"line":1,"column":26}}, + "method": false, + "key": { + "type": "Identifier", + "start":14,"end":19,"loc":{"start":{"line":1,"column":14},"end":{"line":1,"column":19},"identifierName":"title"}, + "name": "title" + }, + "computed": false, + "shorthand": false, + "value": { + "type": "StringLiteral", + "start":21,"end":26,"loc":{"start":{"line":1,"column":21},"end":{"line":1,"column":26}}, + "extra": { + "rawValue": "foo", + "raw": "\"foo\"" + }, + "value": "foo" + } + } + ] + } + } + } + ], + "selfClosing": false + }, + "closingElement": { + "type": "JSXClosingElement", + "start":30,"end":37,"loc":{"start":{"line":1,"column":30},"end":{"line":1,"column":37}}, + "name": { + "type": "JSXIdentifier", + "start":32,"end":36,"loc":{"start":{"line":1,"column":32},"end":{"line":1,"column":36}}, + "name": "Card" + } + }, + "children": [] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/experimental/record-and-tuple/as-jsx-attribute-value-hash/input.js b/packages/babel-parser/test/fixtures/experimental/record-and-tuple/as-jsx-attribute-value-hash/input.js new file mode 100644 index 000000000000..387feb4a9ef9 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/record-and-tuple/as-jsx-attribute-value-hash/input.js @@ -0,0 +1 @@ + diff --git a/packages/babel-parser/test/fixtures/experimental/record-and-tuple/as-jsx-attribute-value-hash/options.json b/packages/babel-parser/test/fixtures/experimental/record-and-tuple/as-jsx-attribute-value-hash/options.json new file mode 100644 index 000000000000..625b0abffbc0 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/record-and-tuple/as-jsx-attribute-value-hash/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["jsx", "flow", ["recordAndTuple", { "syntaxType": "hash" }]] +} diff --git a/packages/babel-parser/test/fixtures/experimental/record-and-tuple/as-jsx-attribute-value-hash/output.json b/packages/babel-parser/test/fixtures/experimental/record-and-tuple/as-jsx-attribute-value-hash/output.json new file mode 100644 index 000000000000..4d775dacb9c5 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/record-and-tuple/as-jsx-attribute-value-hash/output.json @@ -0,0 +1,83 @@ +{ + "type": "File", + "start":0,"end":36,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":36}}, + "program": { + "type": "Program", + "start":0,"end":36,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":36}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":36,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":36}}, + "expression": { + "type": "JSXElement", + "start":0,"end":36,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":36}}, + "openingElement": { + "type": "JSXOpeningElement", + "start":0,"end":29,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":29}}, + "name": { + "type": "JSXIdentifier", + "start":1,"end":5,"loc":{"start":{"line":1,"column":1},"end":{"line":1,"column":5}}, + "name": "Card" + }, + "attributes": [ + { + "type": "JSXAttribute", + "start":6,"end":28,"loc":{"start":{"line":1,"column":6},"end":{"line":1,"column":28}}, + "name": { + "type": "JSXIdentifier", + "start":6,"end":10,"loc":{"start":{"line":1,"column":6},"end":{"line":1,"column":10}}, + "name": "card" + }, + "value": { + "type": "JSXExpressionContainer", + "start":11,"end":28,"loc":{"start":{"line":1,"column":11},"end":{"line":1,"column":28}}, + "expression": { + "type": "RecordExpression", + "start":12,"end":27,"loc":{"start":{"line":1,"column":12},"end":{"line":1,"column":27}}, + "properties": [ + { + "type": "ObjectProperty", + "start":14,"end":26,"loc":{"start":{"line":1,"column":14},"end":{"line":1,"column":26}}, + "method": false, + "key": { + "type": "Identifier", + "start":14,"end":19,"loc":{"start":{"line":1,"column":14},"end":{"line":1,"column":19},"identifierName":"title"}, + "name": "title" + }, + "computed": false, + "shorthand": false, + "value": { + "type": "StringLiteral", + "start":21,"end":26,"loc":{"start":{"line":1,"column":21},"end":{"line":1,"column":26}}, + "extra": { + "rawValue": "foo", + "raw": "\"foo\"" + }, + "value": "foo" + } + } + ] + } + } + } + ], + "selfClosing": false + }, + "closingElement": { + "type": "JSXClosingElement", + "start":29,"end":36,"loc":{"start":{"line":1,"column":29},"end":{"line":1,"column":36}}, + "name": { + "type": "JSXIdentifier", + "start":31,"end":35,"loc":{"start":{"line":1,"column":31},"end":{"line":1,"column":35}}, + "name": "Card" + } + }, + "children": [] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/experimental/record-and-tuple/disambiguate-regex-hash/input.js b/packages/babel-parser/test/fixtures/experimental/record-and-tuple/disambiguate-regex-hash/input.js new file mode 100644 index 000000000000..605ff6ffa946 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/record-and-tuple/disambiguate-regex-hash/input.js @@ -0,0 +1 @@ +(#{})/foo diff --git a/packages/babel-parser/test/fixtures/experimental/record-and-tuple/disambiguate-regex-hash/options.json b/packages/babel-parser/test/fixtures/experimental/record-and-tuple/disambiguate-regex-hash/options.json new file mode 100644 index 000000000000..625b0abffbc0 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/record-and-tuple/disambiguate-regex-hash/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["jsx", "flow", ["recordAndTuple", { "syntaxType": "hash" }]] +} diff --git a/packages/babel-parser/test/fixtures/experimental/record-and-tuple/disambiguate-regex-hash/output.json b/packages/babel-parser/test/fixtures/experimental/record-and-tuple/disambiguate-regex-hash/output.json new file mode 100644 index 000000000000..0b986267cd22 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/record-and-tuple/disambiguate-regex-hash/output.json @@ -0,0 +1,36 @@ +{ + "type": "File", + "start":0,"end":9,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":9}}, + "program": { + "type": "Program", + "start":0,"end":9,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":9}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":9,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":9}}, + "expression": { + "type": "BinaryExpression", + "start":0,"end":9,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":9}}, + "left": { + "type": "RecordExpression", + "start":1,"end":4,"loc":{"start":{"line":1,"column":1},"end":{"line":1,"column":4}}, + "properties": [], + "extra": { + "parenthesized": true, + "parenStart": 0 + } + }, + "operator": "/", + "right": { + "type": "Identifier", + "start":6,"end":9,"loc":{"start":{"line":1,"column":6},"end":{"line":1,"column":9},"identifierName":"foo"}, + "name": "foo" + } + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/experimental/record-and-tuple/invalid-record-proto/input.js b/packages/babel-parser/test/fixtures/experimental/record-and-tuple/invalid-record-proto/input.js new file mode 100644 index 000000000000..68e990891a87 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/record-and-tuple/invalid-record-proto/input.js @@ -0,0 +1 @@ +#{ __proto__: null } diff --git a/packages/babel-parser/test/fixtures/experimental/record-and-tuple/invalid-record-proto/options.json b/packages/babel-parser/test/fixtures/experimental/record-and-tuple/invalid-record-proto/options.json new file mode 100644 index 000000000000..703c537be360 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/record-and-tuple/invalid-record-proto/options.json @@ -0,0 +1,3 @@ +{ + "plugins": [["recordAndTuple", { "syntaxType": "hash" }]] +} diff --git a/packages/babel-parser/test/fixtures/experimental/record-and-tuple/invalid-record-proto/output.json b/packages/babel-parser/test/fixtures/experimental/record-and-tuple/invalid-record-proto/output.json new file mode 100644 index 000000000000..4f409dffa250 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/record-and-tuple/invalid-record-proto/output.json @@ -0,0 +1,42 @@ +{ + "type": "File", + "start":0,"end":20,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":20}}, + "errors": [ + "SyntaxError: '__proto__' is not allowed in Record expressions (1:3)" + ], + "program": { + "type": "Program", + "start":0,"end":20,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":20}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":20,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":20}}, + "expression": { + "type": "RecordExpression", + "start":0,"end":20,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":20}}, + "properties": [ + { + "type": "ObjectProperty", + "start":3,"end":18,"loc":{"start":{"line":1,"column":3},"end":{"line":1,"column":18}}, + "method": false, + "key": { + "type": "Identifier", + "start":3,"end":12,"loc":{"start":{"line":1,"column":3},"end":{"line":1,"column":12},"identifierName":"__proto__"}, + "name": "__proto__" + }, + "computed": false, + "shorthand": false, + "value": { + "type": "NullLiteral", + "start":14,"end":18,"loc":{"start":{"line":1,"column":14},"end":{"line":1,"column":18}} + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/flow/type-annotations/20/output.json b/packages/babel-parser/test/fixtures/flow/type-annotations/20/output.json index 82b7ad2a9684..32481b6a8998 100644 --- a/packages/babel-parser/test/fixtures/flow/type-annotations/20/output.json +++ b/packages/babel-parser/test/fixtures/flow/type-annotations/20/output.json @@ -34,7 +34,6 @@ }, "computed": false, "kind": "set", - "variance": null, "id": null, "generator": false, "async": false, diff --git a/packages/babel-parser/test/fixtures/flow/type-annotations/21/output.json b/packages/babel-parser/test/fixtures/flow/type-annotations/21/output.json index 1ac23f768bd3..06c830a31842 100644 --- a/packages/babel-parser/test/fixtures/flow/type-annotations/21/output.json +++ b/packages/babel-parser/test/fixtures/flow/type-annotations/21/output.json @@ -34,7 +34,6 @@ }, "computed": false, "kind": "set", - "variance": null, "id": null, "generator": false, "async": false, diff --git a/packages/babel-parser/test/fixtures/flow/type-annotations/22/output.json b/packages/babel-parser/test/fixtures/flow/type-annotations/22/output.json index d9e9cf02431f..6c446c312072 100644 --- a/packages/babel-parser/test/fixtures/flow/type-annotations/22/output.json +++ b/packages/babel-parser/test/fixtures/flow/type-annotations/22/output.json @@ -34,7 +34,6 @@ }, "computed": false, "kind": "get", - "variance": null, "id": null, "generator": false, "async": false, diff --git a/packages/babel-parser/test/fixtures/typescript/cast/as/input.ts b/packages/babel-parser/test/fixtures/typescript/cast/as/input.ts index 4ecdb2197e25..3d6627d18956 100644 --- a/packages/babel-parser/test/fixtures/typescript/cast/as/input.ts +++ b/packages/babel-parser/test/fixtures/typescript/cast/as/input.ts @@ -1,4 +1,6 @@ x as T; x < y as boolean; // (x < y) as boolean; +x as boolean <= y; // (x as boolean) <= y; x === 1 as number; // x === (1 as number); x as any as T; +x as boolean ?? y; // (x as boolean) ?? y; diff --git a/packages/babel-parser/test/fixtures/typescript/cast/as/output.json b/packages/babel-parser/test/fixtures/typescript/cast/as/output.json index 3cba96e6515c..8cac92ca5770 100644 --- a/packages/babel-parser/test/fixtures/typescript/cast/as/output.json +++ b/packages/babel-parser/test/fixtures/typescript/cast/as/output.json @@ -1,9 +1,9 @@ { "type": "File", - "start":0,"end":106,"loc":{"start":{"line":1,"column":0},"end":{"line":4,"column":14}}, + "start":0,"end":192,"loc":{"start":{"line":1,"column":0},"end":{"line":6,"column":42}}, "program": { "type": "Program", - "start":0,"end":106,"loc":{"start":{"line":1,"column":0},"end":{"line":4,"column":14}}, + "start":0,"end":192,"loc":{"start":{"line":1,"column":0},"end":{"line":6,"column":42}}, "sourceType": "module", "interpreter": null, "body": [ @@ -70,17 +70,58 @@ "type": "BinaryExpression", "start":49,"end":66,"loc":{"start":{"line":3,"column":0},"end":{"line":3,"column":17}}, "left": { + "type": "TSAsExpression", + "start":49,"end":61,"loc":{"start":{"line":3,"column":0},"end":{"line":3,"column":12}}, + "expression": { + "type": "Identifier", + "start":49,"end":50,"loc":{"start":{"line":3,"column":0},"end":{"line":3,"column":1},"identifierName":"x"}, + "name": "x" + }, + "typeAnnotation": { + "type": "TSBooleanKeyword", + "start":54,"end":61,"loc":{"start":{"line":3,"column":5},"end":{"line":3,"column":12}} + } + }, + "operator": "<=", + "right": { "type": "Identifier", - "start":49,"end":50,"loc":{"start":{"line":3,"column":0},"end":{"line":3,"column":1},"identifierName":"x"}, + "start":65,"end":66,"loc":{"start":{"line":3,"column":16},"end":{"line":3,"column":17},"identifierName":"y"}, + "name": "y" + } + }, + "leadingComments": [ + { + "type": "CommentLine", + "value": " (x < y) as boolean;", + "start":26,"end":48,"loc":{"start":{"line":2,"column":18},"end":{"line":2,"column":40}} + } + ], + "trailingComments": [ + { + "type": "CommentLine", + "value": " (x as boolean) <= y;", + "start":68,"end":91,"loc":{"start":{"line":3,"column":19},"end":{"line":3,"column":42}} + } + ] + }, + { + "type": "ExpressionStatement", + "start":92,"end":110,"loc":{"start":{"line":4,"column":0},"end":{"line":4,"column":18}}, + "expression": { + "type": "BinaryExpression", + "start":92,"end":109,"loc":{"start":{"line":4,"column":0},"end":{"line":4,"column":17}}, + "left": { + "type": "Identifier", + "start":92,"end":93,"loc":{"start":{"line":4,"column":0},"end":{"line":4,"column":1},"identifierName":"x"}, "name": "x" }, "operator": "===", "right": { "type": "TSAsExpression", - "start":55,"end":66,"loc":{"start":{"line":3,"column":6},"end":{"line":3,"column":17}}, + "start":98,"end":109,"loc":{"start":{"line":4,"column":6},"end":{"line":4,"column":17}}, "expression": { "type": "NumericLiteral", - "start":55,"end":56,"loc":{"start":{"line":3,"column":6},"end":{"line":3,"column":7}}, + "start":98,"end":99,"loc":{"start":{"line":4,"column":6},"end":{"line":4,"column":7}}, "extra": { "rawValue": 1, "raw": "1" @@ -89,50 +130,50 @@ }, "typeAnnotation": { "type": "TSNumberKeyword", - "start":60,"end":66,"loc":{"start":{"line":3,"column":11},"end":{"line":3,"column":17}} + "start":103,"end":109,"loc":{"start":{"line":4,"column":11},"end":{"line":4,"column":17}} } } }, "leadingComments": [ { "type": "CommentLine", - "value": " (x < y) as boolean;", - "start":26,"end":48,"loc":{"start":{"line":2,"column":18},"end":{"line":2,"column":40}} + "value": " (x as boolean) <= y;", + "start":68,"end":91,"loc":{"start":{"line":3,"column":19},"end":{"line":3,"column":42}} } ], "trailingComments": [ { "type": "CommentLine", "value": " x === (1 as number);", - "start":68,"end":91,"loc":{"start":{"line":3,"column":19},"end":{"line":3,"column":42}} + "start":111,"end":134,"loc":{"start":{"line":4,"column":19},"end":{"line":4,"column":42}} } ] }, { "type": "ExpressionStatement", - "start":92,"end":106,"loc":{"start":{"line":4,"column":0},"end":{"line":4,"column":14}}, + "start":135,"end":149,"loc":{"start":{"line":5,"column":0},"end":{"line":5,"column":14}}, "expression": { "type": "TSAsExpression", - "start":92,"end":105,"loc":{"start":{"line":4,"column":0},"end":{"line":4,"column":13}}, + "start":135,"end":148,"loc":{"start":{"line":5,"column":0},"end":{"line":5,"column":13}}, "expression": { "type": "TSAsExpression", - "start":92,"end":100,"loc":{"start":{"line":4,"column":0},"end":{"line":4,"column":8}}, + "start":135,"end":143,"loc":{"start":{"line":5,"column":0},"end":{"line":5,"column":8}}, "expression": { "type": "Identifier", - "start":92,"end":93,"loc":{"start":{"line":4,"column":0},"end":{"line":4,"column":1},"identifierName":"x"}, + "start":135,"end":136,"loc":{"start":{"line":5,"column":0},"end":{"line":5,"column":1},"identifierName":"x"}, "name": "x" }, "typeAnnotation": { "type": "TSAnyKeyword", - "start":97,"end":100,"loc":{"start":{"line":4,"column":5},"end":{"line":4,"column":8}} + "start":140,"end":143,"loc":{"start":{"line":5,"column":5},"end":{"line":5,"column":8}} } }, "typeAnnotation": { "type": "TSTypeReference", - "start":104,"end":105,"loc":{"start":{"line":4,"column":12},"end":{"line":4,"column":13}}, + "start":147,"end":148,"loc":{"start":{"line":5,"column":12},"end":{"line":5,"column":13}}, "typeName": { "type": "Identifier", - "start":104,"end":105,"loc":{"start":{"line":4,"column":12},"end":{"line":4,"column":13},"identifierName":"T"}, + "start":147,"end":148,"loc":{"start":{"line":5,"column":12},"end":{"line":5,"column":13},"identifierName":"T"}, "name": "T" } } @@ -141,7 +182,41 @@ { "type": "CommentLine", "value": " x === (1 as number);", - "start":68,"end":91,"loc":{"start":{"line":3,"column":19},"end":{"line":3,"column":42}} + "start":111,"end":134,"loc":{"start":{"line":4,"column":19},"end":{"line":4,"column":42}} + } + ] + }, + { + "type": "ExpressionStatement", + "start":150,"end":168,"loc":{"start":{"line":6,"column":0},"end":{"line":6,"column":18}}, + "expression": { + "type": "LogicalExpression", + "start":150,"end":167,"loc":{"start":{"line":6,"column":0},"end":{"line":6,"column":17}}, + "left": { + "type": "TSAsExpression", + "start":150,"end":162,"loc":{"start":{"line":6,"column":0},"end":{"line":6,"column":12}}, + "expression": { + "type": "Identifier", + "start":150,"end":151,"loc":{"start":{"line":6,"column":0},"end":{"line":6,"column":1},"identifierName":"x"}, + "name": "x" + }, + "typeAnnotation": { + "type": "TSBooleanKeyword", + "start":155,"end":162,"loc":{"start":{"line":6,"column":5},"end":{"line":6,"column":12}} + } + }, + "operator": "??", + "right": { + "type": "Identifier", + "start":166,"end":167,"loc":{"start":{"line":6,"column":16},"end":{"line":6,"column":17},"identifierName":"y"}, + "name": "y" + } + }, + "trailingComments": [ + { + "type": "CommentLine", + "value": " (x as boolean) ?? y;", + "start":169,"end":192,"loc":{"start":{"line":6,"column":19},"end":{"line":6,"column":42}} } ] } @@ -156,8 +231,18 @@ }, { "type": "CommentLine", - "value": " x === (1 as number);", + "value": " (x as boolean) <= y;", "start":68,"end":91,"loc":{"start":{"line":3,"column":19},"end":{"line":3,"column":42}} + }, + { + "type": "CommentLine", + "value": " x === (1 as number);", + "start":111,"end":134,"loc":{"start":{"line":4,"column":19},"end":{"line":4,"column":42}} + }, + { + "type": "CommentLine", + "value": " (x as boolean) ?? y;", + "start":169,"end":192,"loc":{"start":{"line":6,"column":19},"end":{"line":6,"column":42}} } ] } \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/typescript/catch-clause/unknown/input.ts b/packages/babel-parser/test/fixtures/typescript/catch-clause/unknown/input.ts new file mode 100644 index 000000000000..6e5c28505572 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/catch-clause/unknown/input.ts @@ -0,0 +1,9 @@ +try {} catch (ex) {} +try {} catch (ex: unknown) {} +try {} catch (ex: any) {} + +// The following can't be error'd at parse time +try {} catch (ex: A) {} +try {} catch (ex: Error) {} +try {} catch (ex: string) {} +try {} catch (ex: string | number) {} diff --git a/packages/babel-parser/test/fixtures/typescript/catch-clause/unknown/output.json b/packages/babel-parser/test/fixtures/typescript/catch-clause/unknown/output.json new file mode 100644 index 000000000000..bb0d3780ec99 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/catch-clause/unknown/output.json @@ -0,0 +1,284 @@ +{ + "type": "File", + "start":0,"end":244,"loc":{"start":{"line":1,"column":0},"end":{"line":9,"column":37}}, + "program": { + "type": "Program", + "start":0,"end":244,"loc":{"start":{"line":1,"column":0},"end":{"line":9,"column":37}}, + "sourceType": "module", + "interpreter": null, + "body": [ + { + "type": "TryStatement", + "start":0,"end":20,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":20}}, + "block": { + "type": "BlockStatement", + "start":4,"end":6,"loc":{"start":{"line":1,"column":4},"end":{"line":1,"column":6}}, + "body": [], + "directives": [] + }, + "handler": { + "type": "CatchClause", + "start":7,"end":20,"loc":{"start":{"line":1,"column":7},"end":{"line":1,"column":20}}, + "param": { + "type": "Identifier", + "start":14,"end":16,"loc":{"start":{"line":1,"column":14},"end":{"line":1,"column":16},"identifierName":"ex"}, + "name": "ex" + }, + "body": { + "type": "BlockStatement", + "start":18,"end":20,"loc":{"start":{"line":1,"column":18},"end":{"line":1,"column":20}}, + "body": [], + "directives": [] + } + }, + "finalizer": null + }, + { + "type": "TryStatement", + "start":21,"end":50,"loc":{"start":{"line":2,"column":0},"end":{"line":2,"column":29}}, + "block": { + "type": "BlockStatement", + "start":25,"end":27,"loc":{"start":{"line":2,"column":4},"end":{"line":2,"column":6}}, + "body": [], + "directives": [] + }, + "handler": { + "type": "CatchClause", + "start":28,"end":50,"loc":{"start":{"line":2,"column":7},"end":{"line":2,"column":29}}, + "param": { + "type": "Identifier", + "start":35,"end":46,"loc":{"start":{"line":2,"column":14},"end":{"line":2,"column":25},"identifierName":"ex"}, + "name": "ex", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "start":37,"end":46,"loc":{"start":{"line":2,"column":16},"end":{"line":2,"column":25}}, + "typeAnnotation": { + "type": "TSUnknownKeyword", + "start":39,"end":46,"loc":{"start":{"line":2,"column":18},"end":{"line":2,"column":25}} + } + } + }, + "body": { + "type": "BlockStatement", + "start":48,"end":50,"loc":{"start":{"line":2,"column":27},"end":{"line":2,"column":29}}, + "body": [], + "directives": [] + } + }, + "finalizer": null + }, + { + "type": "TryStatement", + "start":51,"end":76,"loc":{"start":{"line":3,"column":0},"end":{"line":3,"column":25}}, + "block": { + "type": "BlockStatement", + "start":55,"end":57,"loc":{"start":{"line":3,"column":4},"end":{"line":3,"column":6}}, + "body": [], + "directives": [] + }, + "handler": { + "type": "CatchClause", + "start":58,"end":76,"loc":{"start":{"line":3,"column":7},"end":{"line":3,"column":25}}, + "param": { + "type": "Identifier", + "start":65,"end":72,"loc":{"start":{"line":3,"column":14},"end":{"line":3,"column":21},"identifierName":"ex"}, + "name": "ex", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "start":67,"end":72,"loc":{"start":{"line":3,"column":16},"end":{"line":3,"column":21}}, + "typeAnnotation": { + "type": "TSAnyKeyword", + "start":69,"end":72,"loc":{"start":{"line":3,"column":18},"end":{"line":3,"column":21}} + } + } + }, + "body": { + "type": "BlockStatement", + "start":74,"end":76,"loc":{"start":{"line":3,"column":23},"end":{"line":3,"column":25}}, + "body": [], + "directives": [] + } + }, + "finalizer": null, + "trailingComments": [ + { + "type": "CommentLine", + "value": " The following can't be error'd at parse time", + "start":78,"end":125,"loc":{"start":{"line":5,"column":0},"end":{"line":5,"column":47}} + } + ] + }, + { + "type": "TryStatement", + "start":126,"end":149,"loc":{"start":{"line":6,"column":0},"end":{"line":6,"column":23}}, + "block": { + "type": "BlockStatement", + "start":130,"end":132,"loc":{"start":{"line":6,"column":4},"end":{"line":6,"column":6}}, + "body": [], + "directives": [] + }, + "handler": { + "type": "CatchClause", + "start":133,"end":149,"loc":{"start":{"line":6,"column":7},"end":{"line":6,"column":23}}, + "param": { + "type": "Identifier", + "start":140,"end":145,"loc":{"start":{"line":6,"column":14},"end":{"line":6,"column":19},"identifierName":"ex"}, + "name": "ex", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "start":142,"end":145,"loc":{"start":{"line":6,"column":16},"end":{"line":6,"column":19}}, + "typeAnnotation": { + "type": "TSTypeReference", + "start":144,"end":145,"loc":{"start":{"line":6,"column":18},"end":{"line":6,"column":19}}, + "typeName": { + "type": "Identifier", + "start":144,"end":145,"loc":{"start":{"line":6,"column":18},"end":{"line":6,"column":19},"identifierName":"A"}, + "name": "A" + } + } + } + }, + "body": { + "type": "BlockStatement", + "start":147,"end":149,"loc":{"start":{"line":6,"column":21},"end":{"line":6,"column":23}}, + "body": [], + "directives": [] + } + }, + "finalizer": null, + "leadingComments": [ + { + "type": "CommentLine", + "value": " The following can't be error'd at parse time", + "start":78,"end":125,"loc":{"start":{"line":5,"column":0},"end":{"line":5,"column":47}} + } + ] + }, + { + "type": "TryStatement", + "start":150,"end":177,"loc":{"start":{"line":7,"column":0},"end":{"line":7,"column":27}}, + "block": { + "type": "BlockStatement", + "start":154,"end":156,"loc":{"start":{"line":7,"column":4},"end":{"line":7,"column":6}}, + "body": [], + "directives": [] + }, + "handler": { + "type": "CatchClause", + "start":157,"end":177,"loc":{"start":{"line":7,"column":7},"end":{"line":7,"column":27}}, + "param": { + "type": "Identifier", + "start":164,"end":173,"loc":{"start":{"line":7,"column":14},"end":{"line":7,"column":23},"identifierName":"ex"}, + "name": "ex", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "start":166,"end":173,"loc":{"start":{"line":7,"column":16},"end":{"line":7,"column":23}}, + "typeAnnotation": { + "type": "TSTypeReference", + "start":168,"end":173,"loc":{"start":{"line":7,"column":18},"end":{"line":7,"column":23}}, + "typeName": { + "type": "Identifier", + "start":168,"end":173,"loc":{"start":{"line":7,"column":18},"end":{"line":7,"column":23},"identifierName":"Error"}, + "name": "Error" + } + } + } + }, + "body": { + "type": "BlockStatement", + "start":175,"end":177,"loc":{"start":{"line":7,"column":25},"end":{"line":7,"column":27}}, + "body": [], + "directives": [] + } + }, + "finalizer": null + }, + { + "type": "TryStatement", + "start":178,"end":206,"loc":{"start":{"line":8,"column":0},"end":{"line":8,"column":28}}, + "block": { + "type": "BlockStatement", + "start":182,"end":184,"loc":{"start":{"line":8,"column":4},"end":{"line":8,"column":6}}, + "body": [], + "directives": [] + }, + "handler": { + "type": "CatchClause", + "start":185,"end":206,"loc":{"start":{"line":8,"column":7},"end":{"line":8,"column":28}}, + "param": { + "type": "Identifier", + "start":192,"end":202,"loc":{"start":{"line":8,"column":14},"end":{"line":8,"column":24},"identifierName":"ex"}, + "name": "ex", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "start":194,"end":202,"loc":{"start":{"line":8,"column":16},"end":{"line":8,"column":24}}, + "typeAnnotation": { + "type": "TSStringKeyword", + "start":196,"end":202,"loc":{"start":{"line":8,"column":18},"end":{"line":8,"column":24}} + } + } + }, + "body": { + "type": "BlockStatement", + "start":204,"end":206,"loc":{"start":{"line":8,"column":26},"end":{"line":8,"column":28}}, + "body": [], + "directives": [] + } + }, + "finalizer": null + }, + { + "type": "TryStatement", + "start":207,"end":244,"loc":{"start":{"line":9,"column":0},"end":{"line":9,"column":37}}, + "block": { + "type": "BlockStatement", + "start":211,"end":213,"loc":{"start":{"line":9,"column":4},"end":{"line":9,"column":6}}, + "body": [], + "directives": [] + }, + "handler": { + "type": "CatchClause", + "start":214,"end":244,"loc":{"start":{"line":9,"column":7},"end":{"line":9,"column":37}}, + "param": { + "type": "Identifier", + "start":221,"end":240,"loc":{"start":{"line":9,"column":14},"end":{"line":9,"column":33},"identifierName":"ex"}, + "name": "ex", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "start":223,"end":240,"loc":{"start":{"line":9,"column":16},"end":{"line":9,"column":33}}, + "typeAnnotation": { + "type": "TSUnionType", + "start":225,"end":240,"loc":{"start":{"line":9,"column":18},"end":{"line":9,"column":33}}, + "types": [ + { + "type": "TSStringKeyword", + "start":225,"end":231,"loc":{"start":{"line":9,"column":18},"end":{"line":9,"column":24}} + }, + { + "type": "TSNumberKeyword", + "start":234,"end":240,"loc":{"start":{"line":9,"column":27},"end":{"line":9,"column":33}} + } + ] + } + } + }, + "body": { + "type": "BlockStatement", + "start":242,"end":244,"loc":{"start":{"line":9,"column":35},"end":{"line":9,"column":37}}, + "body": [], + "directives": [] + } + }, + "finalizer": null + } + ], + "directives": [] + }, + "comments": [ + { + "type": "CommentLine", + "value": " The following can't be error'd at parse time", + "start":78,"end":125,"loc":{"start":{"line":5,"column":0},"end":{"line":5,"column":47}} + } + ] +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/typescript/types/tuple-invalid-label-1/input.ts b/packages/babel-parser/test/fixtures/typescript/types/tuple-invalid-label-1/input.ts new file mode 100644 index 000000000000..8b4d80dddbfb --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/types/tuple-invalid-label-1/input.ts @@ -0,0 +1 @@ +type T = [x.y: A]; diff --git a/packages/babel-parser/test/fixtures/typescript/types/tuple-invalid-label-1/options.json b/packages/babel-parser/test/fixtures/typescript/types/tuple-invalid-label-1/options.json new file mode 100644 index 000000000000..d1b7c8ebeace --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/types/tuple-invalid-label-1/options.json @@ -0,0 +1,6 @@ +{ + "sourceType": "module", + "plugins": [ + "typescript" + ] +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/typescript/types/tuple-invalid-label-1/output.json b/packages/babel-parser/test/fixtures/typescript/types/tuple-invalid-label-1/output.json new file mode 100644 index 000000000000..f78fc791b541 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/types/tuple-invalid-label-1/output.json @@ -0,0 +1,63 @@ +{ + "type": "File", + "start":0,"end":18,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":18}}, + "errors": [ + "SyntaxError: Tuple members must be labeled with a simple identifier. (1:10)" + ], + "program": { + "type": "Program", + "start":0,"end":18,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":18}}, + "sourceType": "module", + "interpreter": null, + "body": [ + { + "type": "TSTypeAliasDeclaration", + "start":0,"end":18,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":18}}, + "id": { + "type": "Identifier", + "start":5,"end":6,"loc":{"start":{"line":1,"column":5},"end":{"line":1,"column":6},"identifierName":"T"}, + "name": "T" + }, + "typeAnnotation": { + "type": "TSTupleType", + "start":9,"end":17,"loc":{"start":{"line":1,"column":9},"end":{"line":1,"column":17}}, + "elementTypes": [ + { + "type": "TSNamedTupleMember", + "start":10,"end":16,"loc":{"start":{"line":1,"column":10},"end":{"line":1,"column":16}}, + "optional": false, + "label": { + "type": "TSTypeReference", + "start":10,"end":13,"loc":{"start":{"line":1,"column":10},"end":{"line":1,"column":13}}, + "typeName": { + "type": "TSQualifiedName", + "start":10,"end":13,"loc":{"start":{"line":1,"column":10},"end":{"line":1,"column":13}}, + "left": { + "type": "Identifier", + "start":10,"end":11,"loc":{"start":{"line":1,"column":10},"end":{"line":1,"column":11},"identifierName":"x"}, + "name": "x" + }, + "right": { + "type": "Identifier", + "start":12,"end":13,"loc":{"start":{"line":1,"column":12},"end":{"line":1,"column":13},"identifierName":"y"}, + "name": "y" + } + } + }, + "elementType": { + "type": "TSTypeReference", + "start":15,"end":16,"loc":{"start":{"line":1,"column":15},"end":{"line":1,"column":16}}, + "typeName": { + "type": "Identifier", + "start":15,"end":16,"loc":{"start":{"line":1,"column":15},"end":{"line":1,"column":16},"identifierName":"A"}, + "name": "A" + } + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/typescript/types/tuple-invalid-label-2/input.ts b/packages/babel-parser/test/fixtures/typescript/types/tuple-invalid-label-2/input.ts new file mode 100644 index 000000000000..dc499f225690 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/types/tuple-invalid-label-2/input.ts @@ -0,0 +1 @@ +type T = [x: A]; diff --git a/packages/babel-parser/test/fixtures/typescript/types/tuple-invalid-label-2/options.json b/packages/babel-parser/test/fixtures/typescript/types/tuple-invalid-label-2/options.json new file mode 100644 index 000000000000..d1b7c8ebeace --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/types/tuple-invalid-label-2/options.json @@ -0,0 +1,6 @@ +{ + "sourceType": "module", + "plugins": [ + "typescript" + ] +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/typescript/types/tuple-invalid-label-2/output.json b/packages/babel-parser/test/fixtures/typescript/types/tuple-invalid-label-2/output.json new file mode 100644 index 000000000000..37710a11ffc3 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/types/tuple-invalid-label-2/output.json @@ -0,0 +1,69 @@ +{ + "type": "File", + "start":0,"end":19,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":19}}, + "errors": [ + "SyntaxError: Tuple members must be labeled with a simple identifier. (1:10)" + ], + "program": { + "type": "Program", + "start":0,"end":19,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":19}}, + "sourceType": "module", + "interpreter": null, + "body": [ + { + "type": "TSTypeAliasDeclaration", + "start":0,"end":19,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":19}}, + "id": { + "type": "Identifier", + "start":5,"end":6,"loc":{"start":{"line":1,"column":5},"end":{"line":1,"column":6},"identifierName":"T"}, + "name": "T" + }, + "typeAnnotation": { + "type": "TSTupleType", + "start":9,"end":18,"loc":{"start":{"line":1,"column":9},"end":{"line":1,"column":18}}, + "elementTypes": [ + { + "type": "TSNamedTupleMember", + "start":10,"end":17,"loc":{"start":{"line":1,"column":10},"end":{"line":1,"column":17}}, + "optional": false, + "label": { + "type": "TSTypeReference", + "start":10,"end":14,"loc":{"start":{"line":1,"column":10},"end":{"line":1,"column":14}}, + "typeName": { + "type": "Identifier", + "start":10,"end":11,"loc":{"start":{"line":1,"column":10},"end":{"line":1,"column":11},"identifierName":"x"}, + "name": "x" + }, + "typeParameters": { + "type": "TSTypeParameterInstantiation", + "start":11,"end":14,"loc":{"start":{"line":1,"column":11},"end":{"line":1,"column":14}}, + "params": [ + { + "type": "TSTypeReference", + "start":12,"end":13,"loc":{"start":{"line":1,"column":12},"end":{"line":1,"column":13}}, + "typeName": { + "type": "Identifier", + "start":12,"end":13,"loc":{"start":{"line":1,"column":12},"end":{"line":1,"column":13},"identifierName":"y"}, + "name": "y" + } + } + ] + } + }, + "elementType": { + "type": "TSTypeReference", + "start":16,"end":17,"loc":{"start":{"line":1,"column":16},"end":{"line":1,"column":17}}, + "typeName": { + "type": "Identifier", + "start":16,"end":17,"loc":{"start":{"line":1,"column":16},"end":{"line":1,"column":17},"identifierName":"A"}, + "name": "A" + } + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/typescript/types/tuple-labeled-after-unlabeled/input.ts b/packages/babel-parser/test/fixtures/typescript/types/tuple-labeled-after-unlabeled/input.ts new file mode 100644 index 000000000000..938829fbc562 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/types/tuple-labeled-after-unlabeled/input.ts @@ -0,0 +1 @@ +type T = [A, y: B]; diff --git a/packages/babel-parser/test/fixtures/typescript/types/tuple-labeled-after-unlabeled/output.json b/packages/babel-parser/test/fixtures/typescript/types/tuple-labeled-after-unlabeled/output.json new file mode 100644 index 000000000000..c0deaecdd5f3 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/types/tuple-labeled-after-unlabeled/output.json @@ -0,0 +1,59 @@ +{ + "type": "File", + "start":0,"end":19,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":19}}, + "errors": [ + "SyntaxError: Tuple members must all have names or all not have names. (1:13)" + ], + "program": { + "type": "Program", + "start":0,"end":19,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":19}}, + "sourceType": "module", + "interpreter": null, + "body": [ + { + "type": "TSTypeAliasDeclaration", + "start":0,"end":19,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":19}}, + "id": { + "type": "Identifier", + "start":5,"end":6,"loc":{"start":{"line":1,"column":5},"end":{"line":1,"column":6},"identifierName":"T"}, + "name": "T" + }, + "typeAnnotation": { + "type": "TSTupleType", + "start":9,"end":18,"loc":{"start":{"line":1,"column":9},"end":{"line":1,"column":18}}, + "elementTypes": [ + { + "type": "TSTypeReference", + "start":10,"end":11,"loc":{"start":{"line":1,"column":10},"end":{"line":1,"column":11}}, + "typeName": { + "type": "Identifier", + "start":10,"end":11,"loc":{"start":{"line":1,"column":10},"end":{"line":1,"column":11},"identifierName":"A"}, + "name": "A" + } + }, + { + "type": "TSNamedTupleMember", + "start":13,"end":17,"loc":{"start":{"line":1,"column":13},"end":{"line":1,"column":17}}, + "optional": false, + "label": { + "type": "Identifier", + "start":13,"end":14,"loc":{"start":{"line":1,"column":13},"end":{"line":1,"column":14},"identifierName":"y"}, + "name": "y" + }, + "elementType": { + "type": "TSTypeReference", + "start":16,"end":17,"loc":{"start":{"line":1,"column":16},"end":{"line":1,"column":17}}, + "typeName": { + "type": "Identifier", + "start":16,"end":17,"loc":{"start":{"line":1,"column":16},"end":{"line":1,"column":17},"identifierName":"B"}, + "name": "B" + } + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/typescript/types/tuple-labeled-before-unlabeled/input.ts b/packages/babel-parser/test/fixtures/typescript/types/tuple-labeled-before-unlabeled/input.ts new file mode 100644 index 000000000000..c0191826d929 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/types/tuple-labeled-before-unlabeled/input.ts @@ -0,0 +1 @@ +type T = [x: A, B]; diff --git a/packages/babel-parser/test/fixtures/typescript/types/tuple-labeled-before-unlabeled/output.json b/packages/babel-parser/test/fixtures/typescript/types/tuple-labeled-before-unlabeled/output.json new file mode 100644 index 000000000000..083db448c753 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/types/tuple-labeled-before-unlabeled/output.json @@ -0,0 +1,59 @@ +{ + "type": "File", + "start":0,"end":19,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":19}}, + "errors": [ + "SyntaxError: Tuple members must all have names or all not have names. (1:16)" + ], + "program": { + "type": "Program", + "start":0,"end":19,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":19}}, + "sourceType": "module", + "interpreter": null, + "body": [ + { + "type": "TSTypeAliasDeclaration", + "start":0,"end":19,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":19}}, + "id": { + "type": "Identifier", + "start":5,"end":6,"loc":{"start":{"line":1,"column":5},"end":{"line":1,"column":6},"identifierName":"T"}, + "name": "T" + }, + "typeAnnotation": { + "type": "TSTupleType", + "start":9,"end":18,"loc":{"start":{"line":1,"column":9},"end":{"line":1,"column":18}}, + "elementTypes": [ + { + "type": "TSNamedTupleMember", + "start":10,"end":14,"loc":{"start":{"line":1,"column":10},"end":{"line":1,"column":14}}, + "optional": false, + "label": { + "type": "Identifier", + "start":10,"end":11,"loc":{"start":{"line":1,"column":10},"end":{"line":1,"column":11},"identifierName":"x"}, + "name": "x" + }, + "elementType": { + "type": "TSTypeReference", + "start":13,"end":14,"loc":{"start":{"line":1,"column":13},"end":{"line":1,"column":14}}, + "typeName": { + "type": "Identifier", + "start":13,"end":14,"loc":{"start":{"line":1,"column":13},"end":{"line":1,"column":14},"identifierName":"A"}, + "name": "A" + } + } + }, + { + "type": "TSTypeReference", + "start":16,"end":17,"loc":{"start":{"line":1,"column":16},"end":{"line":1,"column":17}}, + "typeName": { + "type": "Identifier", + "start":16,"end":17,"loc":{"start":{"line":1,"column":16},"end":{"line":1,"column":17},"identifierName":"B"}, + "name": "B" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/typescript/types/tuple-labeled-invalid-optional/input.ts b/packages/babel-parser/test/fixtures/typescript/types/tuple-labeled-invalid-optional/input.ts new file mode 100644 index 000000000000..aa8784ffd62f --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/types/tuple-labeled-invalid-optional/input.ts @@ -0,0 +1 @@ +type T = [x: A?]; diff --git a/packages/babel-parser/test/fixtures/typescript/types/tuple-labeled-invalid-optional/options.json b/packages/babel-parser/test/fixtures/typescript/types/tuple-labeled-invalid-optional/options.json new file mode 100644 index 000000000000..32484cd670a1 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/types/tuple-labeled-invalid-optional/options.json @@ -0,0 +1,7 @@ +{ + "sourceType": "module", + "plugins": [ + "typescript" + ], + "throws": "Unexpected token, expected \",\" (1:14)" +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/typescript/types/tuple-labeled-spread/input.ts b/packages/babel-parser/test/fixtures/typescript/types/tuple-labeled-spread/input.ts new file mode 100644 index 000000000000..1f84d8117f3b --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/types/tuple-labeled-spread/input.ts @@ -0,0 +1 @@ +let x: [A: string, ...B: number[]] diff --git a/packages/babel-parser/test/fixtures/typescript/types/tuple-labeled-spread/output.json b/packages/babel-parser/test/fixtures/typescript/types/tuple-labeled-spread/output.json new file mode 100644 index 000000000000..e0a6607cfd8e --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/types/tuple-labeled-spread/output.json @@ -0,0 +1,76 @@ +{ + "type": "File", + "start":0,"end":34,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":34}}, + "program": { + "type": "Program", + "start":0,"end":34,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":34}}, + "sourceType": "module", + "interpreter": null, + "body": [ + { + "type": "VariableDeclaration", + "start":0,"end":34,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":34}}, + "declarations": [ + { + "type": "VariableDeclarator", + "start":4,"end":34,"loc":{"start":{"line":1,"column":4},"end":{"line":1,"column":34}}, + "id": { + "type": "Identifier", + "start":4,"end":34,"loc":{"start":{"line":1,"column":4},"end":{"line":1,"column":34},"identifierName":"x"}, + "name": "x", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "start":5,"end":34,"loc":{"start":{"line":1,"column":5},"end":{"line":1,"column":34}}, + "typeAnnotation": { + "type": "TSTupleType", + "start":7,"end":34,"loc":{"start":{"line":1,"column":7},"end":{"line":1,"column":34}}, + "elementTypes": [ + { + "type": "TSNamedTupleMember", + "start":8,"end":17,"loc":{"start":{"line":1,"column":8},"end":{"line":1,"column":17}}, + "optional": false, + "label": { + "type": "Identifier", + "start":8,"end":9,"loc":{"start":{"line":1,"column":8},"end":{"line":1,"column":9},"identifierName":"A"}, + "name": "A" + }, + "elementType": { + "type": "TSStringKeyword", + "start":11,"end":17,"loc":{"start":{"line":1,"column":11},"end":{"line":1,"column":17}} + } + }, + { + "type": "TSRestType", + "start":19,"end":33,"loc":{"start":{"line":1,"column":19},"end":{"line":1,"column":33}}, + "typeAnnotation": { + "type": "TSNamedTupleMember", + "start":22,"end":33,"loc":{"start":{"line":1,"column":22},"end":{"line":1,"column":33}}, + "optional": false, + "label": { + "type": "Identifier", + "start":22,"end":23,"loc":{"start":{"line":1,"column":22},"end":{"line":1,"column":23},"identifierName":"B"}, + "name": "B" + }, + "elementType": { + "type": "TSArrayType", + "start":25,"end":33,"loc":{"start":{"line":1,"column":25},"end":{"line":1,"column":33}}, + "elementType": { + "type": "TSNumberKeyword", + "start":25,"end":31,"loc":{"start":{"line":1,"column":25},"end":{"line":1,"column":31}} + } + } + } + } + ] + } + } + }, + "init": null + } + ], + "kind": "let" + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/typescript/types/tuple-labeled/input.ts b/packages/babel-parser/test/fixtures/typescript/types/tuple-labeled/input.ts new file mode 100644 index 000000000000..4ded9c4935fa --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/types/tuple-labeled/input.ts @@ -0,0 +1 @@ +type T = [foo: string, bar?: number]; diff --git a/packages/babel-parser/test/fixtures/typescript/types/tuple-labeled/output.json b/packages/babel-parser/test/fixtures/typescript/types/tuple-labeled/output.json new file mode 100644 index 000000000000..f8ddae722eb3 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/types/tuple-labeled/output.json @@ -0,0 +1,56 @@ +{ + "type": "File", + "start":0,"end":37,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":37}}, + "program": { + "type": "Program", + "start":0,"end":37,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":37}}, + "sourceType": "module", + "interpreter": null, + "body": [ + { + "type": "TSTypeAliasDeclaration", + "start":0,"end":37,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":37}}, + "id": { + "type": "Identifier", + "start":5,"end":6,"loc":{"start":{"line":1,"column":5},"end":{"line":1,"column":6},"identifierName":"T"}, + "name": "T" + }, + "typeAnnotation": { + "type": "TSTupleType", + "start":9,"end":36,"loc":{"start":{"line":1,"column":9},"end":{"line":1,"column":36}}, + "elementTypes": [ + { + "type": "TSNamedTupleMember", + "start":10,"end":21,"loc":{"start":{"line":1,"column":10},"end":{"line":1,"column":21}}, + "optional": false, + "label": { + "type": "Identifier", + "start":10,"end":13,"loc":{"start":{"line":1,"column":10},"end":{"line":1,"column":13},"identifierName":"foo"}, + "name": "foo" + }, + "elementType": { + "type": "TSStringKeyword", + "start":15,"end":21,"loc":{"start":{"line":1,"column":15},"end":{"line":1,"column":21}} + } + }, + { + "type": "TSNamedTupleMember", + "start":23,"end":35,"loc":{"start":{"line":1,"column":23},"end":{"line":1,"column":35}}, + "optional": true, + "label": { + "type": "Identifier", + "start":23,"end":26,"loc":{"start":{"line":1,"column":23},"end":{"line":1,"column":26},"identifierName":"bar"}, + "name": "bar" + }, + "elementType": { + "type": "TSNumberKeyword", + "start":29,"end":35,"loc":{"start":{"line":1,"column":29},"end":{"line":1,"column":35}} + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/typescript/types/tuple-required-after-labeled-optional/input.ts b/packages/babel-parser/test/fixtures/typescript/types/tuple-required-after-labeled-optional/input.ts new file mode 100644 index 000000000000..65546562d1c2 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/types/tuple-required-after-labeled-optional/input.ts @@ -0,0 +1 @@ +type T = [x?: A, y: B]; diff --git a/packages/babel-parser/test/fixtures/typescript/types/tuple-required-after-labeled-optional/output.json b/packages/babel-parser/test/fixtures/typescript/types/tuple-required-after-labeled-optional/output.json new file mode 100644 index 000000000000..6675981261a0 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/types/tuple-required-after-labeled-optional/output.json @@ -0,0 +1,69 @@ +{ + "type": "File", + "start":0,"end":23,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":23}}, + "errors": [ + "SyntaxError: A required element cannot follow an optional element. (1:17)" + ], + "program": { + "type": "Program", + "start":0,"end":23,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":23}}, + "sourceType": "module", + "interpreter": null, + "body": [ + { + "type": "TSTypeAliasDeclaration", + "start":0,"end":23,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":23}}, + "id": { + "type": "Identifier", + "start":5,"end":6,"loc":{"start":{"line":1,"column":5},"end":{"line":1,"column":6},"identifierName":"T"}, + "name": "T" + }, + "typeAnnotation": { + "type": "TSTupleType", + "start":9,"end":22,"loc":{"start":{"line":1,"column":9},"end":{"line":1,"column":22}}, + "elementTypes": [ + { + "type": "TSNamedTupleMember", + "start":10,"end":15,"loc":{"start":{"line":1,"column":10},"end":{"line":1,"column":15}}, + "optional": true, + "label": { + "type": "Identifier", + "start":10,"end":11,"loc":{"start":{"line":1,"column":10},"end":{"line":1,"column":11},"identifierName":"x"}, + "name": "x" + }, + "elementType": { + "type": "TSTypeReference", + "start":14,"end":15,"loc":{"start":{"line":1,"column":14},"end":{"line":1,"column":15}}, + "typeName": { + "type": "Identifier", + "start":14,"end":15,"loc":{"start":{"line":1,"column":14},"end":{"line":1,"column":15},"identifierName":"A"}, + "name": "A" + } + } + }, + { + "type": "TSNamedTupleMember", + "start":17,"end":21,"loc":{"start":{"line":1,"column":17},"end":{"line":1,"column":21}}, + "optional": false, + "label": { + "type": "Identifier", + "start":17,"end":18,"loc":{"start":{"line":1,"column":17},"end":{"line":1,"column":18},"identifierName":"y"}, + "name": "y" + }, + "elementType": { + "type": "TSTypeReference", + "start":20,"end":21,"loc":{"start":{"line":1,"column":20},"end":{"line":1,"column":21}}, + "typeName": { + "type": "Identifier", + "start":20,"end":21,"loc":{"start":{"line":1,"column":20},"end":{"line":1,"column":21},"identifierName":"B"}, + "name": "B" + } + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/typescript/types/tuple-rest-invalid/input.ts b/packages/babel-parser/test/fixtures/typescript/types/tuple-rest-invalid/input.ts deleted file mode 100644 index 2bfeae2e87eb..000000000000 --- a/packages/babel-parser/test/fixtures/typescript/types/tuple-rest-invalid/input.ts +++ /dev/null @@ -1 +0,0 @@ -let x: [...number[], string] diff --git a/packages/babel-parser/test/fixtures/typescript/types/tuple-rest-invalid/options.json b/packages/babel-parser/test/fixtures/typescript/types/tuple-rest-invalid/options.json deleted file mode 100644 index 82b4f09fc940..000000000000 --- a/packages/babel-parser/test/fixtures/typescript/types/tuple-rest-invalid/options.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "sourceType": "module", - "plugins": ["typescript"], - "throws": "Rest element must be last element (1:19)" -} diff --git a/packages/babel-parser/test/fixtures/typescript/types/tuple-rest-not-last/input.ts b/packages/babel-parser/test/fixtures/typescript/types/tuple-rest-not-last/input.ts new file mode 100644 index 000000000000..050a60b540ea --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/types/tuple-rest-not-last/input.ts @@ -0,0 +1 @@ +let x: [...[number, string], string] diff --git a/packages/babel-parser/test/fixtures/typescript/types/tuple-rest-not-last/options.json b/packages/babel-parser/test/fixtures/typescript/types/tuple-rest-not-last/options.json new file mode 100644 index 000000000000..fe9bffaa5e1a --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/types/tuple-rest-not-last/options.json @@ -0,0 +1,4 @@ +{ + "sourceType": "module", + "plugins": ["typescript"] +} diff --git a/packages/babel-parser/test/fixtures/typescript/types/tuple-rest-not-last/output.json b/packages/babel-parser/test/fixtures/typescript/types/tuple-rest-not-last/output.json new file mode 100644 index 000000000000..5d0076a745ba --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/types/tuple-rest-not-last/output.json @@ -0,0 +1,62 @@ +{ + "type": "File", + "start":0,"end":36,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":36}}, + "program": { + "type": "Program", + "start":0,"end":36,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":36}}, + "sourceType": "module", + "interpreter": null, + "body": [ + { + "type": "VariableDeclaration", + "start":0,"end":36,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":36}}, + "declarations": [ + { + "type": "VariableDeclarator", + "start":4,"end":36,"loc":{"start":{"line":1,"column":4},"end":{"line":1,"column":36}}, + "id": { + "type": "Identifier", + "start":4,"end":36,"loc":{"start":{"line":1,"column":4},"end":{"line":1,"column":36},"identifierName":"x"}, + "name": "x", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "start":5,"end":36,"loc":{"start":{"line":1,"column":5},"end":{"line":1,"column":36}}, + "typeAnnotation": { + "type": "TSTupleType", + "start":7,"end":36,"loc":{"start":{"line":1,"column":7},"end":{"line":1,"column":36}}, + "elementTypes": [ + { + "type": "TSRestType", + "start":8,"end":27,"loc":{"start":{"line":1,"column":8},"end":{"line":1,"column":27}}, + "typeAnnotation": { + "type": "TSTupleType", + "start":11,"end":27,"loc":{"start":{"line":1,"column":11},"end":{"line":1,"column":27}}, + "elementTypes": [ + { + "type": "TSNumberKeyword", + "start":12,"end":18,"loc":{"start":{"line":1,"column":12},"end":{"line":1,"column":18}} + }, + { + "type": "TSStringKeyword", + "start":20,"end":26,"loc":{"start":{"line":1,"column":20},"end":{"line":1,"column":26}} + } + ] + } + }, + { + "type": "TSStringKeyword", + "start":29,"end":35,"loc":{"start":{"line":1,"column":29},"end":{"line":1,"column":35}} + } + ] + } + } + }, + "init": null + } + ], + "kind": "let" + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/typescript/types/tuple-unlabeled-spread-after-labeled/input.ts b/packages/babel-parser/test/fixtures/typescript/types/tuple-unlabeled-spread-after-labeled/input.ts new file mode 100644 index 000000000000..82ac1034fda4 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/types/tuple-unlabeled-spread-after-labeled/input.ts @@ -0,0 +1 @@ +type T = [x: A, ...B]; diff --git a/packages/babel-parser/test/fixtures/typescript/types/tuple-unlabeled-spread-after-labeled/output.json b/packages/babel-parser/test/fixtures/typescript/types/tuple-unlabeled-spread-after-labeled/output.json new file mode 100644 index 000000000000..24e7d290ecd6 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/types/tuple-unlabeled-spread-after-labeled/output.json @@ -0,0 +1,63 @@ +{ + "type": "File", + "start":0,"end":22,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":22}}, + "errors": [ + "SyntaxError: Tuple members must all have names or all not have names. (1:19)" + ], + "program": { + "type": "Program", + "start":0,"end":22,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":22}}, + "sourceType": "module", + "interpreter": null, + "body": [ + { + "type": "TSTypeAliasDeclaration", + "start":0,"end":22,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":22}}, + "id": { + "type": "Identifier", + "start":5,"end":6,"loc":{"start":{"line":1,"column":5},"end":{"line":1,"column":6},"identifierName":"T"}, + "name": "T" + }, + "typeAnnotation": { + "type": "TSTupleType", + "start":9,"end":21,"loc":{"start":{"line":1,"column":9},"end":{"line":1,"column":21}}, + "elementTypes": [ + { + "type": "TSNamedTupleMember", + "start":10,"end":14,"loc":{"start":{"line":1,"column":10},"end":{"line":1,"column":14}}, + "optional": false, + "label": { + "type": "Identifier", + "start":10,"end":11,"loc":{"start":{"line":1,"column":10},"end":{"line":1,"column":11},"identifierName":"x"}, + "name": "x" + }, + "elementType": { + "type": "TSTypeReference", + "start":13,"end":14,"loc":{"start":{"line":1,"column":13},"end":{"line":1,"column":14}}, + "typeName": { + "type": "Identifier", + "start":13,"end":14,"loc":{"start":{"line":1,"column":13},"end":{"line":1,"column":14},"identifierName":"A"}, + "name": "A" + } + } + }, + { + "type": "TSRestType", + "start":16,"end":20,"loc":{"start":{"line":1,"column":16},"end":{"line":1,"column":20}}, + "typeAnnotation": { + "type": "TSTypeReference", + "start":19,"end":20,"loc":{"start":{"line":1,"column":19},"end":{"line":1,"column":20}}, + "typeName": { + "type": "Identifier", + "start":19,"end":20,"loc":{"start":{"line":1,"column":19},"end":{"line":1,"column":20},"identifierName":"B"}, + "name": "B" + } + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/typescript/types/tuple-unlabeled-spread-before-labeled/input.ts b/packages/babel-parser/test/fixtures/typescript/types/tuple-unlabeled-spread-before-labeled/input.ts new file mode 100644 index 000000000000..a45bda9425f3 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/types/tuple-unlabeled-spread-before-labeled/input.ts @@ -0,0 +1 @@ +type T = [...B, x: A]; diff --git a/packages/babel-parser/test/fixtures/typescript/types/tuple-unlabeled-spread-before-labeled/output.json b/packages/babel-parser/test/fixtures/typescript/types/tuple-unlabeled-spread-before-labeled/output.json new file mode 100644 index 000000000000..5115e0744bd4 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/types/tuple-unlabeled-spread-before-labeled/output.json @@ -0,0 +1,63 @@ +{ + "type": "File", + "start":0,"end":22,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":22}}, + "errors": [ + "SyntaxError: Tuple members must all have names or all not have names. (1:16)" + ], + "program": { + "type": "Program", + "start":0,"end":22,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":22}}, + "sourceType": "module", + "interpreter": null, + "body": [ + { + "type": "TSTypeAliasDeclaration", + "start":0,"end":22,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":22}}, + "id": { + "type": "Identifier", + "start":5,"end":6,"loc":{"start":{"line":1,"column":5},"end":{"line":1,"column":6},"identifierName":"T"}, + "name": "T" + }, + "typeAnnotation": { + "type": "TSTupleType", + "start":9,"end":21,"loc":{"start":{"line":1,"column":9},"end":{"line":1,"column":21}}, + "elementTypes": [ + { + "type": "TSRestType", + "start":10,"end":14,"loc":{"start":{"line":1,"column":10},"end":{"line":1,"column":14}}, + "typeAnnotation": { + "type": "TSTypeReference", + "start":13,"end":14,"loc":{"start":{"line":1,"column":13},"end":{"line":1,"column":14}}, + "typeName": { + "type": "Identifier", + "start":13,"end":14,"loc":{"start":{"line":1,"column":13},"end":{"line":1,"column":14},"identifierName":"B"}, + "name": "B" + } + } + }, + { + "type": "TSNamedTupleMember", + "start":16,"end":20,"loc":{"start":{"line":1,"column":16},"end":{"line":1,"column":20}}, + "optional": false, + "label": { + "type": "Identifier", + "start":16,"end":17,"loc":{"start":{"line":1,"column":16},"end":{"line":1,"column":17},"identifierName":"x"}, + "name": "x" + }, + "elementType": { + "type": "TSTypeReference", + "start":19,"end":20,"loc":{"start":{"line":1,"column":19},"end":{"line":1,"column":20}}, + "typeName": { + "type": "Identifier", + "start":19,"end":20,"loc":{"start":{"line":1,"column":19},"end":{"line":1,"column":20},"identifierName":"A"}, + "name": "A" + } + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/typings/babel-parser.d.ts b/packages/babel-parser/typings/babel-parser.d.ts index bd406708a8fa..60fabcc52510 100644 --- a/packages/babel-parser/typings/babel-parser.d.ts +++ b/packages/babel-parser/typings/babel-parser.d.ts @@ -100,6 +100,7 @@ export type ParserPlugin = 'classPrivateMethods' | 'classPrivateProperties' | 'classProperties' | + 'decimal' | 'decorators' | 'decorators-legacy' | 'doExpressions' | diff --git a/packages/babel-plugin-proposal-async-generator-functions/package.json b/packages/babel-plugin-proposal-async-generator-functions/package.json index aa2f5b6cb913..39743372be4c 100644 --- a/packages/babel-plugin-proposal-async-generator-functions/package.json +++ b/packages/babel-plugin-proposal-async-generator-functions/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-proposal-async-generator-functions", - "version": "7.10.4", + "version": "7.10.5", "description": "Turn async generator functions into ES2015 generators", "repository": { "type": "git", @@ -24,7 +24,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "workspace:^7.10.4", + "@babel/core": "workspace:^7.10.5", "@babel/helper-plugin-test-runner": "workspace:^7.10.4" } } diff --git a/packages/babel-plugin-proposal-async-generator-functions/src/for-await.js b/packages/babel-plugin-proposal-async-generator-functions/src/for-await.js index 20198f1437e9..eff702a255b3 100644 --- a/packages/babel-plugin-proposal-async-generator-functions/src/for-await.js +++ b/packages/babel-plugin-proposal-async-generator-functions/src/for-await.js @@ -61,7 +61,7 @@ export default function (path, { getAsyncIterator }) { ITERATOR_KEY: scope.generateUidIdentifier("iterator"), GET_ITERATOR: getAsyncIterator, OBJECT: node.right, - STEP_VALUE: stepValue, + STEP_VALUE: t.cloneNode(stepValue), STEP_KEY: stepKey, }); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/logical-assignment/input.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/logical-assignment/input.js new file mode 100644 index 000000000000..ea0daffff766 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/logical-assignment/input.js @@ -0,0 +1,17 @@ +class Foo { + #nullish = 0; + #and = 0; + #or = 0; + + self() { + return this; + } + + test() { + this.#nullish ??= 42; + this.#and &&= 0; + this.#or ||= 0; + + this.self().#nullish ??= 42; + } +} diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/logical-assignment/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/logical-assignment/options.json new file mode 100644 index 000000000000..25a0eb9883c4 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/logical-assignment/options.json @@ -0,0 +1,6 @@ +{ + "plugins": [ + ["proposal-logical-assignment-operators", { "loose": true }], + ["proposal-class-properties", { "loose": true }] + ] +} diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/logical-assignment/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/logical-assignment/output.js new file mode 100644 index 000000000000..e7d19cbdcdf6 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/logical-assignment/output.js @@ -0,0 +1,42 @@ +function _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError("attempted to use private field on non-instance"); } return receiver; } + +var id = 0; + +function _classPrivateFieldLooseKey(name) { return "__private_" + id++ + "_" + name; } + +var _nullish = _classPrivateFieldLooseKey("nullish"); + +var _and = _classPrivateFieldLooseKey("and"); + +var _or = _classPrivateFieldLooseKey("or"); + +class Foo { + constructor() { + Object.defineProperty(this, _nullish, { + writable: true, + value: 0 + }); + Object.defineProperty(this, _and, { + writable: true, + value: 0 + }); + Object.defineProperty(this, _or, { + writable: true, + value: 0 + }); + } + + self() { + return this; + } + + test() { + var _classPrivateFieldLoo, _classPrivateFieldLoo2, _classPrivateFieldLoo3, _classPrivateFieldLoo4; + + (_classPrivateFieldLoo = _classPrivateFieldLooseBase(this, _nullish))[_nullish] ?? (_classPrivateFieldLoo[_nullish] = 42); + (_classPrivateFieldLoo2 = _classPrivateFieldLooseBase(this, _and))[_and] && (_classPrivateFieldLoo2[_and] = 0); + (_classPrivateFieldLoo3 = _classPrivateFieldLooseBase(this, _or))[_or] || (_classPrivateFieldLoo3[_or] = 0); + (_classPrivateFieldLoo4 = _classPrivateFieldLooseBase(this.self(), _nullish))[_nullish] ?? (_classPrivateFieldLoo4[_nullish] = 42); + } + +} diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/logical-assignment/input.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/logical-assignment/input.js new file mode 100644 index 000000000000..ea0daffff766 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/logical-assignment/input.js @@ -0,0 +1,17 @@ +class Foo { + #nullish = 0; + #and = 0; + #or = 0; + + self() { + return this; + } + + test() { + this.#nullish ??= 42; + this.#and &&= 0; + this.#or ||= 0; + + this.self().#nullish ??= 42; + } +} diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/logical-assignment/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/logical-assignment/options.json new file mode 100644 index 000000000000..26f2ddc95852 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/logical-assignment/options.json @@ -0,0 +1,6 @@ +{ + "plugins": [ + "proposal-logical-assignment-operators", + "proposal-class-properties" + ] +} diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/logical-assignment/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/logical-assignment/output.js new file mode 100644 index 000000000000..0ae51ebc8087 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/logical-assignment/output.js @@ -0,0 +1,42 @@ +function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = privateMap.get(receiver); if (!descriptor) { throw new TypeError("attempted to set private field on non-instance"); } if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } return value; } + +function _classPrivateFieldGet(receiver, privateMap) { var descriptor = privateMap.get(receiver); if (!descriptor) { throw new TypeError("attempted to get private field on non-instance"); } if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } + +var _nullish = new WeakMap(); + +var _and = new WeakMap(); + +var _or = new WeakMap(); + +class Foo { + constructor() { + _nullish.set(this, { + writable: true, + value: 0 + }); + + _and.set(this, { + writable: true, + value: 0 + }); + + _or.set(this, { + writable: true, + value: 0 + }); + } + + self() { + return this; + } + + test() { + var _this$self; + + _classPrivateFieldGet(this, _nullish) ?? _classPrivateFieldSet(this, _nullish, 42); + _classPrivateFieldGet(this, _and) && _classPrivateFieldSet(this, _and, 0); + _classPrivateFieldGet(this, _or) || _classPrivateFieldSet(this, _or, 0); + _classPrivateFieldGet(_this$self = this.self(), _nullish) ?? _classPrivateFieldSet(_this$self, _nullish, 42); + } + +} diff --git a/packages/babel-plugin-proposal-decorators/package.json b/packages/babel-plugin-proposal-decorators/package.json index 3be99fcf94cd..0d8e0ff23629 100644 --- a/packages/babel-plugin-proposal-decorators/package.json +++ b/packages/babel-plugin-proposal-decorators/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-proposal-decorators", - "version": "7.10.4", + "version": "7.10.5", "author": "Logan Smyth ", "license": "MIT", "publishConfig": { @@ -19,7 +19,7 @@ "decorators" ], "dependencies": { - "@babel/helper-create-class-features-plugin": "workspace:^7.10.4", + "@babel/helper-create-class-features-plugin": "workspace:^7.10.5", "@babel/helper-plugin-utils": "workspace:^7.10.4", "@babel/plugin-syntax-decorators": "workspace:^7.10.4" }, @@ -27,7 +27,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "workspace:^7.10.4", + "@babel/core": "workspace:^7.10.5", "@babel/helper-plugin-test-runner": "workspace:^7.10.4" } } diff --git a/packages/babel-plugin-proposal-decorators/src/transformer-legacy.js b/packages/babel-plugin-proposal-decorators/src/transformer-legacy.js index f617ee0940fd..d860d884e82d 100644 --- a/packages/babel-plugin-proposal-decorators/src/transformer-legacy.js +++ b/packages/babel-plugin-proposal-decorators/src/transformer-legacy.js @@ -160,7 +160,7 @@ function applyTargetDecorators(path, state, decoratedProps) { acc = acc.concat([ t.assignmentExpression( "=", - descriptor, + t.cloneNode(descriptor), t.callExpression(state.addHelper("applyDecoratedDescriptor"), [ t.cloneNode(target), t.cloneNode(property), diff --git a/packages/babel-plugin-proposal-function-bind/package.json b/packages/babel-plugin-proposal-function-bind/package.json index 70985f6313b4..61b80dce8c90 100644 --- a/packages/babel-plugin-proposal-function-bind/package.json +++ b/packages/babel-plugin-proposal-function-bind/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-proposal-function-bind", - "version": "7.10.4", + "version": "7.10.5", "description": "Compile function bind operator to ES5", "repository": { "type": "git", @@ -23,7 +23,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "workspace:^7.10.4", + "@babel/core": "workspace:^7.10.5", "@babel/helper-plugin-test-runner": "workspace:^7.10.4" } } diff --git a/packages/babel-plugin-proposal-function-bind/src/index.js b/packages/babel-plugin-proposal-function-bind/src/index.js index ea62953863e5..0dea27804a15 100644 --- a/packages/babel-plugin-proposal-function-bind/src/index.js +++ b/packages/babel-plugin-proposal-function-bind/src/index.js @@ -7,7 +7,7 @@ export default declare(api => { function getTempId(scope) { let id = scope.path.getData("functionBind"); - if (id) return id; + if (id) return t.cloneNode(id); id = scope.generateDeclaredUidIdentifier("context"); return scope.path.setData("functionBind", id); @@ -35,7 +35,7 @@ export default declare(api => { bind.callee.object, ); } - return tempId; + return t.cloneNode(tempId); } return { diff --git a/packages/babel-plugin-proposal-logical-assignment-operators/package.json b/packages/babel-plugin-proposal-logical-assignment-operators/package.json index ab2a91cfb8b7..9264047ca4d6 100644 --- a/packages/babel-plugin-proposal-logical-assignment-operators/package.json +++ b/packages/babel-plugin-proposal-logical-assignment-operators/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-proposal-logical-assignment-operators", - "version": "7.10.4", + "version": "7.11.0", "description": "Transforms logical assignment operators into short-circuited assignments", "repository": { "type": "git", @@ -23,7 +23,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "workspace:^7.10.4", + "@babel/core": "workspace:^7.11.0", "@babel/helper-plugin-test-runner": "workspace:^7.10.4", "@babel/plugin-proposal-nullish-coalescing-operator": "workspace:^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" diff --git a/packages/babel-plugin-proposal-logical-assignment-operators/src/index.js b/packages/babel-plugin-proposal-logical-assignment-operators/src/index.js index 813dcd761f7c..65b0f3caeb2e 100644 --- a/packages/babel-plugin-proposal-logical-assignment-operators/src/index.js +++ b/packages/babel-plugin-proposal-logical-assignment-operators/src/index.js @@ -13,7 +13,8 @@ export default declare(api => { AssignmentExpression(path) { const { node, scope } = path; const { operator, left, right } = node; - if (operator !== "||=" && operator !== "&&=" && operator !== "??=") { + const operatorTrunc = operator.slice(0, -1); + if (!t.LOGICAL_OPERATORS.includes(operatorTrunc)) { return; } @@ -41,7 +42,7 @@ export default declare(api => { path.replaceWith( t.logicalExpression( - operator.slice(0, -1), + operatorTrunc, lhs, t.assignmentExpression("=", left, right), ), diff --git a/packages/babel-plugin-proposal-object-rest-spread/package.json b/packages/babel-plugin-proposal-object-rest-spread/package.json index 5f664d551fce..5be74ecf7907 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/package.json +++ b/packages/babel-plugin-proposal-object-rest-spread/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-proposal-object-rest-spread", - "version": "7.10.4", + "version": "7.11.0", "description": "Compile object rest and spread to ES5", "repository": { "type": "git", @@ -24,7 +24,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "workspace:^7.10.4", + "@babel/core": "workspace:^7.11.0", "@babel/helper-plugin-test-runner": "workspace:^7.10.4" } } diff --git a/packages/babel-plugin-proposal-object-rest-spread/src/index.js b/packages/babel-plugin-proposal-object-rest-spread/src/index.js index 173dd794f69a..e1f9b7d51016 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/src/index.js +++ b/packages/babel-plugin-proposal-object-rest-spread/src/index.js @@ -596,7 +596,7 @@ export default declare((api, opts) => { exp = t.callExpression(t.cloneNode(helper), [ exp, // If we have static props, we need to insert an empty object - // becuase the odd arguments are copied with [[Get]], not + // because the odd arguments are copied with [[Get]], not // [[GetOwnProperty]] ...(hadProps ? [t.objectExpression([]), obj] : []), ]); diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-spread-loose-builtins/no-object-assign-exec/exec.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-spread-loose-builtins/no-object-assign-exec/exec.js index b8efc6d372e1..40fdaabb0ecc 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-spread-loose-builtins/no-object-assign-exec/exec.js +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-spread-loose-builtins/no-object-assign-exec/exec.js @@ -1,27 +1,25 @@ "use strict"; -const NOSET = `NOSET${__filename}`; -const NOWRITE = `NOWRITE${__filename}`; -Object.defineProperty(Object.prototype, NOSET, { +Object.defineProperty(Object.prototype, 'NOSET', { get(value) { // noop }, }); -Object.defineProperty(Object.prototype, NOWRITE, { +Object.defineProperty(Object.prototype, 'NOWRITE', { writable: false, value: 'abc', }); -const obj = { [NOSET]: 123 }; +const obj = { 'NOSET': 123 }; // this won't work as expected if transformed as Object.assign (or equivalent) // because those trigger object setters (spread don't) expect(() => { const objSpread = { ...obj }; }).toThrow(); -const obj2 = { [NOWRITE]: 456 }; -// this throws `TypeError: Cannot assign to read only property 'NOWRITE'` +const obj2 = { 'NOWRITE': 456 }; +// this throws `TypeError: Cannot assign to read only property 'NOWRITE'` // if transformed as Object.assign (or equivalent) because those use *assignment* for creating properties // (spread defines them) expect(() => { diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-spread-loose/no-object-assign-exec/exec.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-spread-loose/no-object-assign-exec/exec.js index b8efc6d372e1..4d937710e367 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-spread-loose/no-object-assign-exec/exec.js +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-spread-loose/no-object-assign-exec/exec.js @@ -1,27 +1,24 @@ "use strict"; -const NOSET = `NOSET${__filename}`; -const NOWRITE = `NOWRITE${__filename}`; - -Object.defineProperty(Object.prototype, NOSET, { +Object.defineProperty(Object.prototype, 'NOSET', { get(value) { // noop }, }); -Object.defineProperty(Object.prototype, NOWRITE, { +Object.defineProperty(Object.prototype, 'NOWRITE', { writable: false, value: 'abc', }); -const obj = { [NOSET]: 123 }; +const obj = { 'NOSET': 123 }; // this won't work as expected if transformed as Object.assign (or equivalent) // because those trigger object setters (spread don't) expect(() => { const objSpread = { ...obj }; }).toThrow(); -const obj2 = { [NOWRITE]: 456 }; -// this throws `TypeError: Cannot assign to read only property 'NOWRITE'` +const obj2 = { 'NOWRITE': 456 }; +// this throws `TypeError: Cannot assign to read only property 'NOWRITE'` // if transformed as Object.assign (or equivalent) because those use *assignment* for creating properties // (spread defines them) expect(() => { diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-spread/no-object-assign-exec/exec.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-spread/no-object-assign-exec/exec.js index e358e69cfeee..2fbdb3cb1d65 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-spread/no-object-assign-exec/exec.js +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-spread/no-object-assign-exec/exec.js @@ -1,31 +1,27 @@ "use strict"; -const NOSET = `NOSET${__filename}`; -const NOWRITE = `NOWRITE${__filename}`; - -Object.defineProperty(Object.prototype, NOSET, { - set(value) { +Object.defineProperty(Object.prototype, 'NOSET', { + get(value) { // noop }, }); -Object.defineProperty(Object.prototype, NOWRITE, { +Object.defineProperty(Object.prototype, 'NOWRITE', { writable: false, value: 'abc', }); -const obj = { [NOSET]: 123 }; +const obj = { NOSET: 123 }; // this wouldn't work as expected if transformed as Object.assign (or equivalent) // because those trigger object setters (spread don't) const objSpread = { ...obj }; +expect(objSpread).toHaveProperty('NOSET', 123); -const obj2 = { NOSET: 123, [NOWRITE]: 456 }; +const obj2 = { NOWRITE: 456 }; // this line would throw `TypeError: Cannot assign to read only property 'NOWRITE'` // if transformed as Object.assign (or equivalent) because those use *assignment* for creating properties // (spread defines them) const obj2Spread = { ...obj2 }; - -expect(objSpread).toEqual(obj); -expect(obj2Spread).toEqual(obj2); +expect(obj2Spread).toHaveProperty('NOWRITE', 456); const KEY = Symbol('key'); const obj3Spread = { ...{ get foo () { return 'bar' } }, [KEY]: 'symbol' }; diff --git a/packages/babel-plugin-proposal-optional-chaining/package.json b/packages/babel-plugin-proposal-optional-chaining/package.json index 26e4c1eaec8e..1d45a1359b2b 100644 --- a/packages/babel-plugin-proposal-optional-chaining/package.json +++ b/packages/babel-plugin-proposal-optional-chaining/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-proposal-optional-chaining", - "version": "7.10.4", + "version": "7.11.0", "description": "Transform optional chaining operators into a series of nil checks", "repository": { "type": "git", @@ -17,13 +17,14 @@ ], "dependencies": { "@babel/helper-plugin-utils": "workspace:^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "workspace:^7.11.0", "@babel/plugin-syntax-optional-chaining": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "workspace:^7.10.4", + "@babel/core": "workspace:^7.11.0", "@babel/helper-plugin-test-runner": "workspace:^7.10.4", "@babel/plugin-transform-block-scoping": "workspace:^7.10.4" } diff --git a/packages/babel-plugin-proposal-optional-chaining/src/index.js b/packages/babel-plugin-proposal-optional-chaining/src/index.js index a1f03bf94c95..f3d32be4338a 100644 --- a/packages/babel-plugin-proposal-optional-chaining/src/index.js +++ b/packages/babel-plugin-proposal-optional-chaining/src/index.js @@ -1,4 +1,8 @@ import { declare } from "@babel/helper-plugin-utils"; +import { + isTransparentExprWrapper, + skipTransparentExprWrappers, +} from "@babel/helper-skip-transparent-expression-wrappers"; import syntaxOptionalChaining from "@babel/plugin-syntax-optional-chaining"; import { types as t } from "@babel/core"; @@ -8,6 +12,7 @@ export default declare((api, options) => { const { loose = false } = options; function isSimpleMemberExpression(expression) { + expression = skipTransparentExprWrappers(expression); return ( t.isIdentifier(expression) || t.isSuper(expression) || @@ -24,16 +29,16 @@ export default declare((api, options) => { visitor: { "OptionalCallExpression|OptionalMemberExpression"(path) { const { scope } = path; - // maybeParenthesized points to the outermost parenthesizedExpression + // maybeWrapped points to the outermost transparent expression wrapper // or the path itself - let maybeParenthesized = path; + let maybeWrapped = path; const parentPath = path.findParent(p => { - if (!p.isParenthesizedExpression()) return true; - maybeParenthesized = p; + if (!isTransparentExprWrapper(p)) return true; + maybeWrapped = p; }); let isDeleteOperation = false; const parentIsCall = - parentPath.isCallExpression({ callee: maybeParenthesized.node }) && + parentPath.isCallExpression({ callee: maybeWrapped.node }) && // note that the first condition must implies that `path.optional` is `true`, // otherwise the parentPath should be an OptionalCallExpressioin path.isOptionalMemberExpression(); @@ -43,9 +48,7 @@ export default declare((api, options) => { let optionalPath = path; while ( optionalPath.isOptionalMemberExpression() || - optionalPath.isOptionalCallExpression() || - optionalPath.isParenthesizedExpression() || - optionalPath.isTSNonNullExpression() + optionalPath.isOptionalCallExpression() ) { const { node } = optionalPath; if (node.optional) { @@ -54,13 +57,14 @@ export default declare((api, options) => { if (optionalPath.isOptionalMemberExpression()) { optionalPath.node.type = "MemberExpression"; - optionalPath = optionalPath.get("object"); + optionalPath = skipTransparentExprWrappers( + optionalPath.get("object"), + ); } else if (optionalPath.isOptionalCallExpression()) { optionalPath.node.type = "CallExpression"; - optionalPath = optionalPath.get("callee"); - } else { - // unwrap TSNonNullExpression/ParenthesizedExpression if needed - optionalPath = optionalPath.get("expression"); + optionalPath = skipTransparentExprWrappers( + optionalPath.get("callee"), + ); } } @@ -74,28 +78,40 @@ export default declare((api, options) => { const isCall = t.isCallExpression(node); const replaceKey = isCall ? "callee" : "object"; - const chain = node[replaceKey]; + + const chainWithTypes = node[replaceKey]; + let chain = chainWithTypes; + + while (isTransparentExprWrapper(chain)) { + chain = chain.expression; + } let ref; let check; - if (loose && isCall && isSimpleMemberExpression(chain)) { + if (isCall && t.isIdentifier(chain, { name: "eval" })) { + check = ref = chain; + // `eval?.()` is an indirect eval call transformed to `(0,eval)()` + node[replaceKey] = t.sequenceExpression([t.numericLiteral(0), ref]); + } else if (loose && isCall && isSimpleMemberExpression(chain)) { // If we are using a loose transform (avoiding a Function#call) and we are at the call, // we can avoid a needless memoize. We only do this if the callee is a simple member // expression, to avoid multiple calls to nested call expressions. - check = ref = chain; + check = ref = chainWithTypes; } else { ref = scope.maybeGenerateMemoised(chain); if (ref) { check = t.assignmentExpression( "=", t.cloneNode(ref), - // Here `chain` MUST NOT be cloned because it could be updated - // when generating the memoised context of a call espression - chain, + // Here `chainWithTypes` MUST NOT be cloned because it could be + // updated when generating the memoised context of a call + // expression + chainWithTypes, ); + node[replaceKey] = ref; } else { - check = ref = chain; + check = ref = chainWithTypes; } } @@ -105,7 +121,7 @@ export default declare((api, options) => { if (loose && isSimpleMemberExpression(chain)) { // To avoid a Function#call, we can instead re-grab the property from the context object. // `a.?b.?()` translates roughly to `_a.b != null && _a.b()` - node.callee = chain; + node.callee = chainWithTypes; } else { // Otherwise, we need to memoize the context object, and change the call into a Function#call. // `a.?b.?()` translates roughly to `(_b = _a.b) != null && _b.call(_a)` @@ -133,7 +149,9 @@ export default declare((api, options) => { // i.e. `?.b` in `(a?.b.c)()` if (i === 0 && parentIsCall) { // `(a?.b)()` to `(a == null ? undefined : a.b.bind(a))()` - const { object } = replacement; + const object = skipTransparentExprWrappers( + replacementPath.get("object"), + ).node; let baseRef; if (!loose || !isSimpleMemberExpression(object)) { // memoize the context object in non-loose mode @@ -176,7 +194,9 @@ export default declare((api, options) => { ), ); - replacementPath = replacementPath.get("alternate"); + replacementPath = skipTransparentExprWrappers( + replacementPath.get("alternate"), + ); } }, }, diff --git a/packages/babel-plugin-proposal-optional-chaining/test/fixtures/general/optional-eval-call-loose/input.js b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/general/optional-eval-call-loose/input.js new file mode 100644 index 000000000000..731610528ac4 --- /dev/null +++ b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/general/optional-eval-call-loose/input.js @@ -0,0 +1,22 @@ +var foo; + +/* indirect eval calls */ +eval?.(foo); + +(eval)?.(foo); + +eval?.()(); + +eval?.().foo; + +/* direct eval calls */ + +eval()?.(); + +eval()?.foo; + +/* plain function calls */ + +foo.eval?.(foo); + +eval.foo?.(foo); diff --git a/packages/babel-plugin-proposal-optional-chaining/test/fixtures/general/optional-eval-call-loose/options.json b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/general/optional-eval-call-loose/options.json new file mode 100644 index 000000000000..39ea3f99c7ff --- /dev/null +++ b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/general/optional-eval-call-loose/options.json @@ -0,0 +1,3 @@ +{ + "plugins": [["proposal-optional-chaining", { "loose": true }]] +} diff --git a/packages/babel-plugin-proposal-optional-chaining/test/fixtures/general/optional-eval-call-loose/output.js b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/general/optional-eval-call-loose/output.js new file mode 100644 index 000000000000..11a20e703be4 --- /dev/null +++ b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/general/optional-eval-call-loose/output.js @@ -0,0 +1,17 @@ +var _eval, _eval2; + +var foo; +/* indirect eval calls */ + +eval == null ? void 0 : (0, eval)(foo); +eval == null ? void 0 : (0, eval)(foo); +eval == null ? void 0 : (0, eval)()(); +eval == null ? void 0 : (0, eval)().foo; +/* direct eval calls */ + +(_eval = eval()) == null ? void 0 : _eval(); +(_eval2 = eval()) == null ? void 0 : _eval2.foo; +/* plain function calls */ + +foo.eval == null ? void 0 : foo.eval(foo); +eval.foo == null ? void 0 : eval.foo(foo); diff --git a/packages/babel-plugin-proposal-optional-chaining/test/fixtures/general/optional-eval-call/input.js b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/general/optional-eval-call/input.js new file mode 100644 index 000000000000..731610528ac4 --- /dev/null +++ b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/general/optional-eval-call/input.js @@ -0,0 +1,22 @@ +var foo; + +/* indirect eval calls */ +eval?.(foo); + +(eval)?.(foo); + +eval?.()(); + +eval?.().foo; + +/* direct eval calls */ + +eval()?.(); + +eval()?.foo; + +/* plain function calls */ + +foo.eval?.(foo); + +eval.foo?.(foo); diff --git a/packages/babel-plugin-proposal-optional-chaining/test/fixtures/general/optional-eval-call/output.js b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/general/optional-eval-call/output.js new file mode 100644 index 000000000000..2bb22ae870b0 --- /dev/null +++ b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/general/optional-eval-call/output.js @@ -0,0 +1,17 @@ +var _eval, _eval2, _foo$eval, _eval$foo; + +var foo; +/* indirect eval calls */ + +eval === null || eval === void 0 ? void 0 : (0, eval)(foo); +eval === null || eval === void 0 ? void 0 : (0, eval)(foo); +eval === null || eval === void 0 ? void 0 : (0, eval)()(); +eval === null || eval === void 0 ? void 0 : (0, eval)().foo; +/* direct eval calls */ + +(_eval = eval()) === null || _eval === void 0 ? void 0 : _eval(); +(_eval2 = eval()) === null || _eval2 === void 0 ? void 0 : _eval2.foo; +/* plain function calls */ + +(_foo$eval = foo.eval) === null || _foo$eval === void 0 ? void 0 : _foo$eval.call(foo, foo); +(_eval$foo = eval.foo) === null || _eval$foo === void 0 ? void 0 : _eval$foo.call(eval, foo); diff --git a/packages/babel-plugin-proposal-optional-chaining/test/fixtures/regression/10959-transform-optional-chaining/output.js b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/regression/10959-transform-optional-chaining/output.js index 5bcddf99c677..06ce1ed5c674 100644 --- a/packages/babel-plugin-proposal-optional-chaining/test/fixtures/regression/10959-transform-optional-chaining/output.js +++ b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/regression/10959-transform-optional-chaining/output.js @@ -1,10 +1,10 @@ -var _a, _a2, _a3, _b, _a4, _ref, _a5, _c, _a6, _a7; +var _a, _a2, _a3, _b, _a4, _a4$b, _a5, _c, _a6, _a7; (_a = a) === null || _a === void 0 ? void 0 : _a.b!.c; (_a2 = a) === null || _a2 === void 0 ? void 0 : _a2.b!.c.d; (_a3 = a) === null || _a3 === void 0 ? void 0 : _a3.b.c!.d; (_b = a!.b) === null || _b === void 0 ? void 0 : _b.c; -(_a4 = a) === null || _a4 === void 0 ? void 0 : (_ref = _a4.b!) === null || _ref === void 0 ? void 0 : _ref.c; +(_a4 = a) === null || _a4 === void 0 ? void 0 : (_a4$b = _a4.b!) === null || _a4$b === void 0 ? void 0 : _a4$b.c; (_a5 = a) === null || _a5 === void 0 ? void 0 : (_c = _a5.b!.c) === null || _c === void 0 ? void 0 : _c.c; ((_a6 = a) === null || _a6 === void 0 ? void 0 : _a6.b)!.c; ((_a7 = a) === null || _a7 === void 0 ? void 0 : _a7.b)!.c; diff --git a/packages/babel-plugin-proposal-optional-chaining/test/fixtures/regression/10959-transform-ts-and-optional-chaining/output.js b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/regression/10959-transform-ts-and-optional-chaining/output.js index 8af9f8dc0f23..56db11f31615 100644 --- a/packages/babel-plugin-proposal-optional-chaining/test/fixtures/regression/10959-transform-ts-and-optional-chaining/output.js +++ b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/regression/10959-transform-ts-and-optional-chaining/output.js @@ -1,10 +1,10 @@ -var _a, _a2, _a3, _b, _a4, _ref, _a5, _c, _a6, _a7; +var _a, _a2, _a3, _b, _a4, _a4$b, _a5, _c, _a6, _a7; (_a = a) === null || _a === void 0 ? void 0 : _a.b.c; (_a2 = a) === null || _a2 === void 0 ? void 0 : _a2.b.c.d; (_a3 = a) === null || _a3 === void 0 ? void 0 : _a3.b.c.d; (_b = a.b) === null || _b === void 0 ? void 0 : _b.c; -(_a4 = a) === null || _a4 === void 0 ? void 0 : (_ref = _a4.b) === null || _ref === void 0 ? void 0 : _ref.c; +(_a4 = a) === null || _a4 === void 0 ? void 0 : (_a4$b = _a4.b) === null || _a4$b === void 0 ? void 0 : _a4$b.c; (_a5 = a) === null || _a5 === void 0 ? void 0 : (_c = _a5.b.c) === null || _c === void 0 ? void 0 : _c.c; ((_a6 = a) === null || _a6 === void 0 ? void 0 : _a6.b).c; ((_a7 = a) === null || _a7 === void 0 ? void 0 : _a7.b).c; diff --git a/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/options.json b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/options.json new file mode 100644 index 000000000000..43d8f4d114cc --- /dev/null +++ b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["proposal-optional-chaining"] +} diff --git a/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-call-context/input.ts b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-call-context/input.ts new file mode 100644 index 000000000000..45e75935cbab --- /dev/null +++ b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-call-context/input.ts @@ -0,0 +1 @@ +(a.b as any)?.() diff --git a/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-call-context/options.json b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-call-context/options.json new file mode 100644 index 000000000000..3d509031920b --- /dev/null +++ b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-call-context/options.json @@ -0,0 +1,10 @@ +{ + "plugins": [ + [ + "syntax-typescript" + ], + [ + "proposal-optional-chaining" + ] + ] +} diff --git a/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-call-context/output.js b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-call-context/output.js new file mode 100644 index 000000000000..bbb88cd031aa --- /dev/null +++ b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-call-context/output.js @@ -0,0 +1,3 @@ +var _a$b, _a; + +(_a$b = ((_a = a).b as any)) === null || _a$b === void 0 ? void 0 : _a$b.call(_a); diff --git a/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-function-call-loose/input.ts b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-function-call-loose/input.ts new file mode 100644 index 000000000000..bbb299ce47a9 --- /dev/null +++ b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-function-call-loose/input.ts @@ -0,0 +1 @@ +(((foo as A).bar) as B)?.(foo.bar, false) diff --git a/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-function-call-loose/options.json b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-function-call-loose/options.json new file mode 100644 index 000000000000..873ed97e39f7 --- /dev/null +++ b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-function-call-loose/options.json @@ -0,0 +1,13 @@ +{ + "plugins": [ + [ + "syntax-typescript" + ], + [ + "proposal-optional-chaining", + { + "loose": true + } + ] + ] +} diff --git a/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-function-call-loose/output.js b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-function-call-loose/output.js new file mode 100644 index 000000000000..93a8b5c45d88 --- /dev/null +++ b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-function-call-loose/output.js @@ -0,0 +1,3 @@ +var _bar, _ref; + +(_bar = ((_ref = (foo as A)).bar as B)) == null ? void 0 : _bar.call(_ref, foo.bar, false); diff --git a/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-member-expression/input.ts b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-member-expression/input.ts new file mode 100644 index 000000000000..fe8740240481 --- /dev/null +++ b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-member-expression/input.ts @@ -0,0 +1 @@ +(a?.b as ExampleType)?.c as ExampleType2 diff --git a/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-member-expression/options.json b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-member-expression/options.json new file mode 100644 index 000000000000..3d509031920b --- /dev/null +++ b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-member-expression/options.json @@ -0,0 +1,10 @@ +{ + "plugins": [ + [ + "syntax-typescript" + ], + [ + "proposal-optional-chaining" + ] + ] +} diff --git a/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-member-expression/output.js b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-member-expression/output.js new file mode 100644 index 000000000000..8839b068263f --- /dev/null +++ b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-member-expression/output.js @@ -0,0 +1,3 @@ +var _a, _a$b; + +(((_a = a) === null || _a === void 0 ? void 0 : (_a$b = (_a.b as ExampleType)) === null || _a$b === void 0 ? void 0 : _a$b.c) as ExampleType2); diff --git a/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-parenthesized-expression-member-call/input.ts b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-parenthesized-expression-member-call/input.ts new file mode 100644 index 000000000000..db9e53a2762a --- /dev/null +++ b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-parenthesized-expression-member-call/input.ts @@ -0,0 +1 @@ +((o?.Foo.m) as ExampleType)() diff --git a/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-parenthesized-expression-member-call/options.json b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-parenthesized-expression-member-call/options.json new file mode 100644 index 000000000000..00511863bbd0 --- /dev/null +++ b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-parenthesized-expression-member-call/options.json @@ -0,0 +1,10 @@ +{ + "plugins": [ + [ + "syntax-typescript" + ], + [ + "proposal-optional-chaining" + ] + ] +} diff --git a/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-parenthesized-expression-member-call/output.js b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-parenthesized-expression-member-call/output.js new file mode 100644 index 000000000000..ca86081c2b97 --- /dev/null +++ b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-parenthesized-expression-member-call/output.js @@ -0,0 +1,3 @@ +var _o, _o$Foo; + +(((_o = o) === null || _o === void 0 ? void 0 : (_o$Foo = _o.Foo).m.bind(_o$Foo)) as ExampleType)(); diff --git a/packages/babel-plugin-proposal-partial-application/package.json b/packages/babel-plugin-proposal-partial-application/package.json index 151154aad817..ac0ac8e3d124 100644 --- a/packages/babel-plugin-proposal-partial-application/package.json +++ b/packages/babel-plugin-proposal-partial-application/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-proposal-partial-application", - "version": "7.10.4", + "version": "7.10.5", "description": "Introduces a new ? token in an argument list which allows for partially applying an argument list to a call expression", "repository": { "type": "git", @@ -23,7 +23,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "workspace:^7.10.4", + "@babel/core": "workspace:^7.10.5", "@babel/helper-plugin-test-runner": "workspace:^7.10.4" } } diff --git a/packages/babel-plugin-proposal-partial-application/src/index.js b/packages/babel-plugin-proposal-partial-application/src/index.js index 8bd32c72c6f7..d9b18598b334 100644 --- a/packages/babel-plugin-proposal-partial-application/src/index.js +++ b/packages/babel-plugin-proposal-partial-application/src/index.js @@ -97,7 +97,7 @@ export default declare(api => { "=", t.cloneNode(functionLVal), t.memberExpression( - receiverLVal, + t.cloneNode(receiverLVal), node.callee.property, false, false, @@ -105,19 +105,19 @@ export default declare(api => { ), ...argsInitializers, t.functionExpression( - node.callee.property, + t.cloneNode(node.callee.property), placeholdersParams, t.blockStatement( [ t.returnStatement( t.callExpression( t.memberExpression( - functionLVal, + t.cloneNode(functionLVal), t.identifier("call"), false, false, ), - [receiverLVal, ...args], + [t.cloneNode(receiverLVal), ...args], ), ), ], @@ -132,10 +132,14 @@ export default declare(api => { t.assignmentExpression("=", t.cloneNode(functionLVal), node.callee), ...argsInitializers, t.functionExpression( - node.callee, + t.cloneNode(node.callee), placeholdersParams, t.blockStatement( - [t.returnStatement(t.callExpression(functionLVal, args))], + [ + t.returnStatement( + t.callExpression(t.cloneNode(functionLVal), args), + ), + ], [], ), false, diff --git a/packages/babel-plugin-proposal-pipeline-operator/package.json b/packages/babel-plugin-proposal-pipeline-operator/package.json index aa15649e1451..669ed4cc2e25 100644 --- a/packages/babel-plugin-proposal-pipeline-operator/package.json +++ b/packages/babel-plugin-proposal-pipeline-operator/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-proposal-pipeline-operator", - "version": "7.10.4", + "version": "7.10.5", "description": "Transform pipeline operator into call expressions", "repository": { "type": "git", @@ -23,7 +23,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "workspace:^7.10.4", + "@babel/core": "workspace:^7.10.5", "@babel/helper-plugin-test-runner": "workspace:^7.10.4" } } diff --git a/packages/babel-plugin-proposal-pipeline-operator/src/buildOptimizedSequenceExpression.js b/packages/babel-plugin-proposal-pipeline-operator/src/buildOptimizedSequenceExpression.js index 2d0d3f23ea8f..f44ddf7cb843 100644 --- a/packages/babel-plugin-proposal-pipeline-operator/src/buildOptimizedSequenceExpression.js +++ b/packages/babel-plugin-proposal-pipeline-operator/src/buildOptimizedSequenceExpression.js @@ -30,7 +30,7 @@ const buildOptimizedSequenceExpression = ({ assign, call, path }) => { call.callee = evalSequence; - path.scope.push({ id: placeholderNode }); + path.scope.push({ id: t.cloneNode(placeholderNode) }); return t.sequenceExpression([assign, call]); } @@ -40,7 +40,7 @@ const buildOptimizedSequenceExpression = ({ assign, call, path }) => { return t.sequenceExpression([pipelineLeft, calledExpression.body]); } - path.scope.push({ id: placeholderNode }); + path.scope.push({ id: t.cloneNode(placeholderNode) }); if (param) { path.get("right").scope.rename(param.name, placeholderNode.name); diff --git a/packages/babel-plugin-proposal-pipeline-operator/src/smartVisitor.js b/packages/babel-plugin-proposal-pipeline-operator/src/smartVisitor.js index 750d9767ddeb..4b41ffabba31 100644 --- a/packages/babel-plugin-proposal-pipeline-operator/src/smartVisitor.js +++ b/packages/babel-plugin-proposal-pipeline-operator/src/smartVisitor.js @@ -2,7 +2,7 @@ import { types as t } from "@babel/core"; const updateTopicReferenceVisitor = { PipelinePrimaryTopicReference(path) { - path.replaceWith(this.topicId); + path.replaceWith(t.cloneNode(this.topicId)); }, PipelineTopicExpression(path) { path.skip(); diff --git a/packages/babel-plugin-syntax-decimal/.npmignore b/packages/babel-plugin-syntax-decimal/.npmignore new file mode 100644 index 000000000000..f9806945836e --- /dev/null +++ b/packages/babel-plugin-syntax-decimal/.npmignore @@ -0,0 +1,3 @@ +src +test +*.log diff --git a/packages/babel-plugin-syntax-decimal/README.md b/packages/babel-plugin-syntax-decimal/README.md new file mode 100644 index 000000000000..b0efd10dff31 --- /dev/null +++ b/packages/babel-plugin-syntax-decimal/README.md @@ -0,0 +1,19 @@ +# @babel/plugin-syntax-decimal + +> Allow parsing of decimal + +See our website [@babel/plugin-syntax-decimal](https://babeljs.io/docs/en/next/babel-plugin-syntax-decimal.html) for more information. + +## Install + +Using npm: + +```sh +npm install --save-dev @babel/plugin-syntax-decimal +``` + +or using yarn: + +```sh +yarn add @babel/plugin-syntax-decimal --dev +``` diff --git a/packages/babel-plugin-syntax-decimal/package.json b/packages/babel-plugin-syntax-decimal/package.json new file mode 100644 index 000000000000..6d8c7a9275db --- /dev/null +++ b/packages/babel-plugin-syntax-decimal/package.json @@ -0,0 +1,27 @@ +{ + "name": "@babel/plugin-syntax-decimal", + "version": "7.11.0", + "description": "Allow parsing of decimal", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel.git", + "directory": "packages/babel-plugin-syntax-decimal" + }, + "license": "MIT", + "publishConfig": { + "access": "public" + }, + "main": "lib/index.js", + "exports": { + ".": "./lib/index.js" + }, + "keywords": [ + "babel-plugin" + ], + "dependencies": { + "@babel/helper-plugin-utils": "workspace:^7.10.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } +} diff --git a/packages/babel-plugin-syntax-decimal/src/index.js b/packages/babel-plugin-syntax-decimal/src/index.js new file mode 100644 index 000000000000..6e7562d73e5e --- /dev/null +++ b/packages/babel-plugin-syntax-decimal/src/index.js @@ -0,0 +1,13 @@ +import { declare } from "@babel/helper-plugin-utils"; + +export default declare(api => { + api.assertVersion(7); + + return { + name: "syntax-decimal", + + manipulateOptions(opts, parserOpts) { + parserOpts.plugins.push("decimal"); + }, + }; +}); diff --git a/packages/babel-plugin-transform-block-scoping/package.json b/packages/babel-plugin-transform-block-scoping/package.json index 55761b709168..1fc45ba0925c 100644 --- a/packages/babel-plugin-transform-block-scoping/package.json +++ b/packages/babel-plugin-transform-block-scoping/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-block-scoping", - "version": "7.10.4", + "version": "7.11.1", "description": "Compile ES2015 block scoping (const and let) to ES5", "repository": { "type": "git", @@ -13,8 +13,7 @@ }, "main": "lib/index.js", "dependencies": { - "@babel/helper-plugin-utils": "workspace:^7.10.4", - "lodash": "^4.17.13" + "@babel/helper-plugin-utils": "workspace:^7.10.4" }, "keywords": [ "babel-plugin" @@ -23,7 +22,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "workspace:^7.10.4", + "@babel/core": "workspace:^7.11.1", "@babel/helper-plugin-test-runner": "workspace:^7.10.4" } } diff --git a/packages/babel-plugin-transform-block-scoping/src/index.js b/packages/babel-plugin-transform-block-scoping/src/index.js index 78ef881b71cb..3a9576a525fe 100644 --- a/packages/babel-plugin-transform-block-scoping/src/index.js +++ b/packages/babel-plugin-transform-block-scoping/src/index.js @@ -2,8 +2,6 @@ import { declare } from "@babel/helper-plugin-utils"; import type NodePath from "@babel/traverse"; import type Scope from "@babel/traverse"; import { visitor as tdzVisitor } from "./tdz"; -import values from "lodash/values"; -import extend from "lodash/extend"; import { traverse, template, types as t } from "@babel/core"; const DONE = new WeakSet(); @@ -35,7 +33,7 @@ export default declare((api, opts) => { const decl = node.declarations[i]; const assign = t.assignmentExpression( "=", - decl.id, + t.cloneNode(decl.id), decl.init || scope.buildUndefinedNode(), ); assign._ignoreBlockScopingTDZ = true; @@ -195,7 +193,7 @@ const letReferenceBlockVisitor = traverse.visitors.merge([ const letReferenceFunctionVisitor = traverse.visitors.merge([ { ReferencedIdentifier(path, state) { - const ref = state.letReferences[path.node.name]; + const ref = state.letReferences.get(path.node.name); // not a part of our scope if (!ref) return; @@ -250,7 +248,7 @@ const continuationVisitor = { if (path.isAssignmentExpression() || path.isUpdateExpression()) { for (const name of Object.keys(path.getBindingIdentifiers())) { if ( - state.outsideReferences[name] !== + state.outsideReferences.get(name) !== path.scope.getBindingIdentifier(name) ) { continue; @@ -359,9 +357,9 @@ class BlockScoping { this.blockPath = blockPath; this.block = blockPath.node; - this.outsideLetReferences = Object.create(null); + this.outsideLetReferences = new Map(); this.hasLetReferences = false; - this.letReferences = Object.create(null); + this.letReferences = new Map(); this.body = []; if (loopPath) { @@ -447,8 +445,8 @@ class BlockScoping { blockScope.getFunctionParent() || blockScope.getProgramParent(); const letRefs = this.letReferences; - for (const key of Object.keys(letRefs)) { - const ref = letRefs[key]; + for (const key of letRefs.keys()) { + const ref = letRefs.get(key); const binding = blockScope.getBinding(ref.name); if (!binding) continue; if (binding.kind === "let" || binding.kind === "const") { @@ -476,10 +474,10 @@ class BlockScoping { // those in upper scopes and then if they do, generate a uid // for them and replace all references with it - for (const key of Object.keys(letRefs)) { + for (const key of letRefs.keys()) { // just an Identifier node we collected in `getLetReferences` // this is the defining identifier of a declaration - const ref = letRefs[key]; + const ref = letRefs.get(key); // todo: could skip this if the colliding binding is in another function if (scope.parentHasBinding(key) || scope.hasGlobal(key)) { @@ -496,8 +494,8 @@ class BlockScoping { } } - for (const key of Object.keys(outsideLetRefs)) { - const ref = letRefs[key]; + for (const key of outsideLetRefs.keys()) { + const ref = letRefs.get(key); // check for collisions with a for loop's init variable and the enclosing scope's bindings // https://github.com/babel/babel/issues/8498 if (isInLoop(this.blockPath) && blockPathScope.hasOwnBinding(key)) { @@ -519,20 +517,21 @@ class BlockScoping { // remap loop heads with colliding variables if (this.loop) { - for (const name of Object.keys(outsideRefs)) { - const id = outsideRefs[name]; + // nb: clone outsideRefs keys since the map is modified within the loop + for (const name of Array.from(outsideRefs.keys())) { + const id = outsideRefs.get(name); if ( this.scope.hasGlobal(id.name) || this.scope.parentHasBinding(id.name) ) { - delete outsideRefs[id.name]; - delete this.letReferences[id.name]; + outsideRefs.delete(id.name); + this.letReferences.delete(id.name); this.scope.rename(id.name); - this.letReferences[id.name] = id; - outsideRefs[id.name] = id; + this.letReferences.set(id.name, id); + outsideRefs.set(id.name, id); } } } @@ -545,7 +544,7 @@ class BlockScoping { this.hoistVarDeclarations(); // turn outsideLetReferences into an array - const args = values(outsideRefs).map(id => t.cloneNode(id)); + const args = Array.from(outsideRefs.values(), node => t.cloneNode(node)); const params = args.map(id => t.cloneNode(id)); const isSwitch = this.blockPath.isSwitchStatement(); @@ -702,7 +701,10 @@ class BlockScoping { const init = this.loop.left || this.loop.init; if (isBlockScoped(init)) { declarators.push(init); - extend(this.outsideLetReferences, t.getBindingIdentifiers(init)); + const names = t.getBindingIdentifiers(init); + for (const name of Object.keys(names)) { + this.outsideLetReferences.set(name, names[name]); + } } } @@ -751,7 +753,9 @@ class BlockScoping { // declaration, rather than (for example) mistakenly including the // parameters of a function declaration. Fixes #4880. const keys = t.getBindingIdentifiers(declar, false, true); - extend(this.letReferences, keys); + for (const key of Object.keys(keys)) { + this.letReferences.set(key, keys[key]); + } this.hasLetReferences = true; } @@ -844,55 +848,26 @@ class BlockScoping { buildHas(ret: string) { const body = this.body; - - let retCheck; const has = this.has; - const cases = []; - - if (has.hasReturn) { - // typeof ret === "object" - retCheck = buildRetCheck({ - RETURN: t.identifier(ret), - }); - } if (has.hasBreakContinue) { for (const key of Object.keys(has.map)) { - cases.push(t.switchCase(t.stringLiteral(key), [has.map[key]])); - } - - if (has.hasReturn) { - cases.push(t.switchCase(null, [retCheck])); - } - - if (cases.length === 1) { - const single = cases[0]; body.push( t.ifStatement( - t.binaryExpression("===", t.identifier(ret), single.test), - single.consequent[0], + t.binaryExpression("===", t.identifier(ret), t.stringLiteral(key)), + has.map[key], ), ); - } else { - if (this.loop) { - // https://github.com/babel/babel/issues/998 - for (let i = 0; i < cases.length; i++) { - const caseConsequent = cases[i].consequent[0]; - if (t.isBreakStatement(caseConsequent) && !caseConsequent.label) { - if (!this.loopLabel) { - this.loopLabel = this.scope.generateUidIdentifier("loop"); - } - caseConsequent.label = t.cloneNode(this.loopLabel); - } - } - } - - body.push(t.switchStatement(t.identifier(ret), cases)); - } - } else { - if (has.hasReturn) { - body.push(retCheck); } } + + // typeof ret === "object" + if (has.hasReturn) { + body.push( + buildRetCheck({ + RETURN: t.identifier(ret), + }), + ); + } } } diff --git a/packages/babel-plugin-transform-block-scoping/src/tdz.js b/packages/babel-plugin-transform-block-scoping/src/tdz.js index 0588e2a276d1..3d17a3028e6b 100644 --- a/packages/babel-plugin-transform-block-scoping/src/tdz.js +++ b/packages/babel-plugin-transform-block-scoping/src/tdz.js @@ -20,7 +20,7 @@ function buildTDZAssert(node, state) { } function isReference(node, scope, state) { - const declared = state.letReferences[node.name]; + const declared = state.letReferences.get(node.name); if (!declared) return false; // declared node is different in this scope diff --git a/packages/babel-plugin-transform-block-scoping/test/fixtures/general/for-break-continue-closure/exec.js b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/for-break-continue-closure/exec.js new file mode 100644 index 000000000000..4ee56e9409d7 --- /dev/null +++ b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/for-break-continue-closure/exec.js @@ -0,0 +1,15 @@ +expect(() => { + for (const a of [1]) { + switch (true) { + case true: { + const b = 1; + () => b; + if (true) break; + continue; + } + case false: { + throw new Error("unreachable"); + } + } + } +}).not.toThrow(); diff --git a/packages/babel-plugin-transform-block-scoping/test/fixtures/general/for-break-continue-closure/input.js b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/for-break-continue-closure/input.js new file mode 100644 index 000000000000..98cd9d4a488f --- /dev/null +++ b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/for-break-continue-closure/input.js @@ -0,0 +1,13 @@ +for (const a of [1]) { + switch (true) { + case true: { + const b = 1; + () => b; + if (true) break; + continue; + } + case false: { + throw new Error("unreachable"); + } + } +} diff --git a/packages/babel-plugin-transform-block-scoping/test/fixtures/general/for-break-continue-closure/output.js b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/for-break-continue-closure/output.js new file mode 100644 index 000000000000..f39eb1b3642f --- /dev/null +++ b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/for-break-continue-closure/output.js @@ -0,0 +1,25 @@ +for (var a of [1]) { + switch (true) { + case true: + { + var _ret = function () { + var b = 1; + + (function () { + return b; + }); + + if (true) return "break"; + return "continue"; + }(); + + if (_ret === "break") break; + if (_ret === "continue") continue; + } + + case false: + { + throw new Error("unreachable"); + } + } +} diff --git a/packages/babel-plugin-transform-block-scoping/test/fixtures/general/for-break-continue-return/output.js b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/for-break-continue-return/output.js index 765124078779..c73fecc8943b 100644 --- a/packages/babel-plugin-transform-block-scoping/test/fixtures/general/for-break-continue-return/output.js +++ b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/for-break-continue-return/output.js @@ -1,5 +1,5 @@ (function () { - var _loop2 = function (i) { + var _loop = function (i) { fns.push(function () { return i; }); @@ -15,18 +15,11 @@ } }; - _loop: for (var i in nums) { - var _ret = _loop2(i); + for (var i in nums) { + var _ret = _loop(i); - switch (_ret) { - case "continue": - continue; - - case "break": - break _loop; - - default: - if (typeof _ret === "object") return _ret.v; - } + if (_ret === "continue") continue; + if (_ret === "break") break; + if (typeof _ret === "object") return _ret.v; } })(); diff --git a/packages/babel-plugin-transform-block-scoping/test/fixtures/general/issue-10339/exec.js b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/issue-10339/exec.js index 9fea95129bb4..f8b3f6b3699f 100644 --- a/packages/babel-plugin-transform-block-scoping/test/fixtures/general/issue-10339/exec.js +++ b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/issue-10339/exec.js @@ -1,12 +1,12 @@ -const code = multiline([ - "for (const {foo, ...bar} of { bar: [] }) {", - "() => foo;", - "const [qux] = bar;", - "try {} catch (e) {", - "let quux = qux;", - "}", - "}" -]); +const code = ` + for (const {foo, ...bar} of { bar: [] }) { + () => foo; + const [qux] = bar; + try {} catch (e) { + let quux = qux; + } + } +`; let programPath; let forOfPath; @@ -15,7 +15,7 @@ let functionPath; transform(code, { configFile: false, plugins: [ - "../../../../lib", + __dirname + "/../../../../lib", { post({ path }) { programPath = path; diff --git a/packages/babel-plugin-transform-block-scoping/test/fixtures/general/superswitch/output.js b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/superswitch/output.js index 80b21eba9cdc..4fa75b17916e 100644 --- a/packages/babel-plugin-transform-block-scoping/test/fixtures/general/superswitch/output.js +++ b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/superswitch/output.js @@ -18,13 +18,8 @@ function foo() { return "break"; }(); - switch (_ret) { - case "break": - break; - - default: - if (typeof _ret === "object") return _ret.v; - } + if (_ret === "break") break; + if (typeof _ret === "object") return _ret.v; } } } diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set/call-semantics-not-defined-on-parent/exec.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set/call-semantics-not-defined-on-parent/exec.js index 8ff77f141106..6e826647d0c3 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set/call-semantics-not-defined-on-parent/exec.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set/call-semantics-not-defined-on-parent/exec.js @@ -16,6 +16,6 @@ const obj = new Obj(); expect(() => { obj.call(); - // Asser that this throws, but that it's not + // Assert that this throws, but that it's not // Obj.p.test's error that is thrown }).toThrowError(TypeError) diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set/call-semantics-not-defined-on-parent/input.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set/call-semantics-not-defined-on-parent/input.js index 8ff77f141106..6e826647d0c3 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set/call-semantics-not-defined-on-parent/input.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set/call-semantics-not-defined-on-parent/input.js @@ -16,6 +16,6 @@ const obj = new Obj(); expect(() => { obj.call(); - // Asser that this throws, but that it's not + // Assert that this throws, but that it's not // Obj.p.test's error that is thrown }).toThrowError(TypeError) diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set/call-semantics-not-defined-on-parent/output.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set/call-semantics-not-defined-on-parent/output.js index 02de2a67244b..cac6975c65f6 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set/call-semantics-not-defined-on-parent/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set/call-semantics-not-defined-on-parent/output.js @@ -56,6 +56,6 @@ let Obj = /*#__PURE__*/function (_Base) { const obj = new Obj(); expect(() => { - obj.call(); // Asser that this throws, but that it's not + obj.call(); // Assert that this throws, but that it's not // Obj.p.test's error that is thrown }).toThrowError(TypeError); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set/call-semantics-setter-defined-on-parent/exec.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set/call-semantics-setter-defined-on-parent/exec.js index 184778853f1f..9b74ae7319b7 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set/call-semantics-setter-defined-on-parent/exec.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set/call-semantics-setter-defined-on-parent/exec.js @@ -19,6 +19,6 @@ const obj = new Obj(); expect(() => { obj.call(); - // Asser that this throws, but that it's not + // Assert that this throws, but that it's not // a gobbledygook error that is thrown }).toThrowError(TypeError) diff --git a/packages/babel-plugin-transform-classes/test/fixtures/regression/8499/exec.js b/packages/babel-plugin-transform-classes/test/fixtures/regression/8499/exec.js index 1a5d146d5e17..143ef440d8cb 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/regression/8499/exec.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/regression/8499/exec.js @@ -1,26 +1,15 @@ -const oldReflect = this.Reflect; -const oldHTMLElement = this.HTMLElement; +// Pretend that `Reflect.construct` isn't supported. +global.Reflect = undefined; -try { - // Pretend that `Reflect.construct` isn't supported. - this.Reflect = undefined; +global.HTMLElement = function() { + // Here, `this.HTMLElement` is this function, not the original HTMLElement + // constructor. `this.constructor` should be this function too, but isn't. + constructor = this.constructor; +}; - this.HTMLElement = function() { - // Here, `this.HTMLElement` is this function, not the original HTMLElement - // constructor. `this.constructor` should be this function too, but isn't. - constructor = this.constructor; - }; - - var constructor; - - class CustomElement extends HTMLElement {}; - new CustomElement(); - - expect(constructor).toBe(CustomElement); -} finally { - // Restore original env - this.Reflect = oldReflect; - this.HTMLElement = oldHTMLElement; -} +var constructor; +class CustomElement extends HTMLElement {} +new CustomElement(); +expect(constructor).toBe(CustomElement); diff --git a/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/array-symbol-unsupported/exec.js b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/array-symbol-unsupported/exec.js index ea73919662e2..4ee3b0499b95 100644 --- a/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/array-symbol-unsupported/exec.js +++ b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/array-symbol-unsupported/exec.js @@ -1,13 +1,9 @@ var a = (() => [1, 2, 3])(); // Simulate old environment -let _Symbol = Symbol; -Symbol = void 0; -try { - var [first, ...rest] = a; +global.Symbol = void 0; - expect(first).toBe(1); - expect(rest).toEqual([2, 3]); -} finally { - Symbol = _Symbol; -} +var [first, ...rest] = a; + +expect(first).toBe(1); +expect(rest).toEqual([2, 3]); diff --git a/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/non-iterable/exec.js b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/non-iterable/exec.js index e0bac050d60a..d110d3077940 100644 --- a/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/non-iterable/exec.js +++ b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/non-iterable/exec.js @@ -8,15 +8,8 @@ expect( () => [foo, bar] = {} ).toThrow(/destructure non-iterable/); -// Simulate old browser -let _Symbol = Symbol; -Symbol = void 0; -try { +global.Symbol = void 0; - expect( - () => [foo, bar] = {} - ).toThrow(/destructure non-iterable/); - -} finally { - Symbol = _Symbol; -} +expect( + () => [foo, bar] = {} +).toThrow(/destructure non-iterable/); diff --git a/packages/babel-plugin-transform-modules-amd/package.json b/packages/babel-plugin-transform-modules-amd/package.json index ecd006bef075..faf6ff56c34d 100644 --- a/packages/babel-plugin-transform-modules-amd/package.json +++ b/packages/babel-plugin-transform-modules-amd/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-modules-amd", - "version": "7.10.4", + "version": "7.10.5", "description": "This plugin transforms ES2015 modules to AMD", "repository": { "type": "git", @@ -13,7 +13,7 @@ }, "main": "lib/index.js", "dependencies": { - "@babel/helper-module-transforms": "workspace:^7.10.4", + "@babel/helper-module-transforms": "workspace:^7.10.5", "@babel/helper-plugin-utils": "workspace:^7.10.4", "babel-plugin-dynamic-import-node": "^2.3.3" }, @@ -24,7 +24,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "workspace:^7.10.4", + "@babel/core": "workspace:^7.10.5", "@babel/helper-plugin-test-runner": "workspace:^7.10.4" } } diff --git a/packages/babel-plugin-transform-modules-amd/src/index.js b/packages/babel-plugin-transform-modules-amd/src/index.js index b69d8025be5d..7ea2b150f04b 100644 --- a/packages/babel-plugin-transform-modules-amd/src/index.js +++ b/packages/babel-plugin-transform-modules-amd/src/index.js @@ -71,8 +71,8 @@ export default declare((api, options) => { new Promise((${resolveId}, ${rejectId}) => ${requireId}( [${getImportSource(t, path.node)}], - imported => ${resolveId}(${result}), - ${rejectId} + imported => ${t.cloneNode(resolveId)}(${result}), + ${t.cloneNode(rejectId)} ) )`, ); @@ -84,7 +84,7 @@ export default declare((api, options) => { if (requireId) { injectWrapper( path, - buildAnonymousWrapper({ REQUIRE: requireId }), + buildAnonymousWrapper({ REQUIRE: t.cloneNode(requireId) }), ); } return; @@ -94,7 +94,7 @@ export default declare((api, options) => { const importNames = []; if (requireId) { amdArgs.push(t.stringLiteral("require")); - importNames.push(requireId); + importNames.push(t.cloneNode(requireId)); } let moduleName = getModuleName(this.file.opts, options); diff --git a/packages/babel-plugin-transform-modules-systemjs/package.json b/packages/babel-plugin-transform-modules-systemjs/package.json index 0219753c945d..0149d44733e2 100644 --- a/packages/babel-plugin-transform-modules-systemjs/package.json +++ b/packages/babel-plugin-transform-modules-systemjs/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-modules-systemjs", - "version": "7.10.4", + "version": "7.10.5", "description": "This plugin transforms ES2015 modules to SystemJS", "repository": { "type": "git", @@ -14,7 +14,7 @@ "main": "lib/index.js", "dependencies": { "@babel/helper-hoist-variables": "workspace:^7.10.4", - "@babel/helper-module-transforms": "workspace:^7.10.4", + "@babel/helper-module-transforms": "workspace:^7.10.5", "@babel/helper-plugin-utils": "workspace:^7.10.4", "babel-plugin-dynamic-import-node": "^2.3.3" }, @@ -25,7 +25,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "workspace:^7.10.4", + "@babel/core": "workspace:^7.10.5", "@babel/helper-plugin-test-runner": "workspace:^7.10.4", "@babel/plugin-syntax-dynamic-import": "^7.8.0" } diff --git a/packages/babel-plugin-transform-modules-systemjs/src/index.js b/packages/babel-plugin-transform-modules-systemjs/src/index.js index 0a4dfe74a72a..3431c5f45e6b 100644 --- a/packages/babel-plugin-transform-modules-systemjs/src/index.js +++ b/packages/babel-plugin-transform-modules-systemjs/src/index.js @@ -233,8 +233,8 @@ export default declare((api, options) => { } }, exit(path, state) { - const undefinedIdent = path.scope.buildUndefinedNode(); - const exportIdent = path.scope.generateUid("export"); + const scope = path.scope; + const exportIdent = scope.generateUid("export"); const contextIdent = state.contextIdent; const exportMap = Object.create(null); @@ -285,7 +285,7 @@ export default declare((api, options) => { beforeBody.push(path.node); removedPaths.push(path); } else if (path.isClassDeclaration()) { - variableIds.push(path.node.id); + variableIds.push(t.cloneNode(path.node.id)); path.replaceWith( t.expressionStatement( t.assignmentExpression( @@ -299,7 +299,7 @@ export default declare((api, options) => { const source = path.node.source.value; pushModule(source, "imports", path.node.specifiers); for (const name of Object.keys(path.getBindingIdentifiers())) { - path.scope.removeBinding(name); + scope.removeBinding(name); variableIds.push(t.identifier(name)); } path.remove(); @@ -312,8 +312,8 @@ export default declare((api, options) => { if (declar.isClassDeclaration()) { if (id) { exportNames.push("default"); - exportValues.push(undefinedIdent); - variableIds.push(id); + exportValues.push(scope.buildUndefinedNode()); + variableIds.push(t.cloneNode(id)); addExportName(id.name, "default"); path.replaceWith( t.expressionStatement( @@ -360,8 +360,8 @@ export default declare((api, options) => { } else if (path.isClass()) { const name = declar.node.id.name; exportNames.push(name); - exportValues.push(undefinedIdent); - variableIds.push(declar.node.id); + exportValues.push(scope.buildUndefinedNode()); + variableIds.push(t.cloneNode(declar.node.id)); path.replaceWith( t.expressionStatement( t.assignmentExpression( @@ -389,9 +389,7 @@ export default declare((api, options) => { const nodes = []; for (const specifier of specifiers) { - const binding = path.scope.getBinding( - specifier.local.name, - ); + const binding = scope.getBinding(specifier.local.name); // hoisted function export if ( binding && @@ -426,7 +424,7 @@ export default declare((api, options) => { modules.forEach(function (specifiers) { let setterBody = []; - const target = path.scope.generateUid(specifiers.key); + const target = scope.generateUid(specifiers.key); for (let specifier of specifiers.imports) { if (t.isImportNamespaceSpecifier(specifier)) { @@ -510,7 +508,7 @@ export default declare((api, options) => { variableIds.push(id); if (!hasInit) { exportNames.push(name); - exportValues.push(undefinedIdent); + exportValues.push(scope.buildUndefinedNode()); } }, null, @@ -540,7 +538,7 @@ export default declare((api, options) => { path.traverse(reassignmentVisitor, { exports: exportMap, buildCall: buildExportCall, - scope: path.scope, + scope, }); for (const path of removedPaths) { diff --git a/packages/babel-plugin-transform-parameters/package.json b/packages/babel-plugin-transform-parameters/package.json index 8b7753b7948f..9e9df4811bf9 100644 --- a/packages/babel-plugin-transform-parameters/package.json +++ b/packages/babel-plugin-transform-parameters/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-parameters", - "version": "7.10.4", + "version": "7.10.5", "description": "Compile ES2015 default and rest parameters to ES5", "repository": { "type": "git", @@ -23,7 +23,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "workspace:^7.10.4", + "@babel/core": "workspace:^7.10.5", "@babel/helper-plugin-test-runner": "workspace:^7.10.4" } } diff --git a/packages/babel-plugin-transform-parameters/src/params.js b/packages/babel-plugin-transform-parameters/src/params.js index 51901e1a26ba..4608a225af45 100644 --- a/packages/babel-plugin-transform-parameters/src/params.js +++ b/packages/babel-plugin-transform-parameters/src/params.js @@ -229,6 +229,6 @@ function buildScopeIIFE(shadowedParams, body) { } return t.returnStatement( - t.callExpression(t.arrowFunctionExpression(params, body), params), + t.callExpression(t.arrowFunctionExpression(params, body), args), ); } diff --git a/packages/babel-plugin-transform-proto-to-assign/package.json b/packages/babel-plugin-transform-proto-to-assign/package.json index 6f5a9e37f4c6..fd4f394ce111 100644 --- a/packages/babel-plugin-transform-proto-to-assign/package.json +++ b/packages/babel-plugin-transform-proto-to-assign/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-proto-to-assign", - "version": "7.10.4", + "version": "7.10.5", "description": "Babel plugin for turning __proto__ into a shallow property clone", "repository": { "type": "git", @@ -17,13 +17,13 @@ ], "dependencies": { "@babel/helper-plugin-utils": "workspace:^7.10.4", - "lodash": "^4.17.13" + "lodash": "^4.17.19" }, "peerDependencies": { "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "workspace:^7.10.4", + "@babel/core": "workspace:^7.10.5", "@babel/helper-plugin-test-runner": "workspace:^7.10.4" } } diff --git a/packages/babel-plugin-transform-react-jsx-source/package.json b/packages/babel-plugin-transform-react-jsx-source/package.json index d5f9d8e6057d..05d8892b42d3 100644 --- a/packages/babel-plugin-transform-react-jsx-source/package.json +++ b/packages/babel-plugin-transform-react-jsx-source/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-react-jsx-source", - "version": "7.10.4", + "version": "7.10.5", "description": "Add a __source prop to all JSX Elements", "repository": { "type": "git", @@ -23,7 +23,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "workspace:^7.10.4", + "@babel/core": "workspace:^7.10.5", "@babel/helper-plugin-test-runner": "workspace:^7.10.4" } } diff --git a/packages/babel-plugin-transform-react-jsx-source/src/index.js b/packages/babel-plugin-transform-react-jsx-source/src/index.js index fe258bb87f84..d68649955df0 100644 --- a/packages/babel-plugin-transform-react-jsx-source/src/index.js +++ b/packages/babel-plugin-transform-react-jsx-source/src/index.js @@ -82,7 +82,7 @@ export default declare(api => { } const trace = makeTrace( - state.fileNameIdentifier, + t.cloneNode(state.fileNameIdentifier), location.start.line, location.start.column, ); diff --git a/packages/babel-plugin-transform-react-jsx-source/test/fixtures/react-source/basic-sample/exec.js b/packages/babel-plugin-transform-react-jsx-source/test/fixtures/react-source/basic-sample/exec.js index c3bb77823870..21bf1293f132 100644 --- a/packages/babel-plugin-transform-react-jsx-source/test/fixtures/react-source/basic-sample/exec.js +++ b/packages/babel-plugin-transform-react-jsx-source/test/fixtures/react-source/basic-sample/exec.js @@ -3,13 +3,13 @@ var actual = transform( Object.assign({}, opts, { filename: '/fake/path/mock.js' }) ).code; -var expected = multiline([ - 'var _jsxFileName = "/fake/path/mock.js";', - 'var x = ;', -]); +var expected = ` +var _jsxFileName = "/fake/path/mock.js"; +var x = ; +`.trim(); expect(actual).toBe(expected); diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/should-escape-xhtml-jsxtext/output.mjs b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/should-escape-xhtml-jsxtext/output.mjs index 74025e452257..90c49b2f0c23 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/should-escape-xhtml-jsxtext/output.mjs +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/should-escape-xhtml-jsxtext/output.mjs @@ -23,7 +23,7 @@ _jsx("div", { /*#__PURE__*/ _jsx("div", { - children: "w \xA0 w" + children: "w   w" }); /*#__PURE__*/ @@ -33,7 +33,7 @@ _jsx("div", { /*#__PURE__*/ _jsx("div", { - children: "this should parse as nbsp: \xA0 " + children: "this should parse as nbsp:   " }); /*#__PURE__*/ diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/should-not-strip-nbsp-even-coupled-with-other-whitespace/output.mjs b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/should-not-strip-nbsp-even-coupled-with-other-whitespace/output.mjs index 86f0e9eaecea..be58bf3abadb 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/should-not-strip-nbsp-even-coupled-with-other-whitespace/output.mjs +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/should-not-strip-nbsp-even-coupled-with-other-whitespace/output.mjs @@ -2,5 +2,5 @@ import { jsx as _jsx } from "react/jsx-runtime"; /*#__PURE__*/ _jsx("div", { - children: "\xA0 " + children: "  " }); diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/should-not-strip-tags-with-a-single-child-of-nbsp/output.mjs b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/should-not-strip-tags-with-a-single-child-of-nbsp/output.mjs index 6a0ea18e16cc..280c01a5bff8 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/should-not-strip-tags-with-a-single-child-of-nbsp/output.mjs +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/should-not-strip-tags-with-a-single-child-of-nbsp/output.mjs @@ -2,5 +2,5 @@ import { jsx as _jsx } from "react/jsx-runtime"; /*#__PURE__*/ _jsx("div", { - children: "\xA0" + children: " " }); diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/weird-symbols/output.mjs b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/weird-symbols/output.mjs index 65cfda12fc6a..6e9e18e678b3 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/weird-symbols/output.mjs +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/weird-symbols/output.mjs @@ -3,7 +3,7 @@ import { jsxs as _jsxs } from "react/jsx-runtime"; class MobileHomeActivityTaskPriorityIcon extends React.PureComponent { render() { return /*#__PURE__*/_jsxs(Text, { - children: ["\xA0", this.props.value, "\xA0"] + children: [" ", this.props.value, " "] }); } diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/should-escape-xhtml-jsxtext/output.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/should-escape-xhtml-jsxtext/output.js index 208e24cee0bf..7ff69133cf7d 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/should-escape-xhtml-jsxtext/output.js +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/should-escape-xhtml-jsxtext/output.js @@ -13,13 +13,13 @@ React.createElement("div", null, "w & w"); React.createElement("div", null, "w & w"); /*#__PURE__*/ -React.createElement("div", null, "w \xA0 w"); +React.createElement("div", null, "w   w"); /*#__PURE__*/ React.createElement("div", null, "this should not parse as unicode: \\u00a0"); /*#__PURE__*/ -React.createElement("div", null, "this should parse as nbsp: \xA0 "); +React.createElement("div", null, "this should parse as nbsp:   "); /*#__PURE__*/ React.createElement("div", null, "this should parse as unicode: ", '\u00a0 '); diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/should-not-strip-nbsp-even-coupled-with-other-whitespace/output.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/should-not-strip-nbsp-even-coupled-with-other-whitespace/output.js index 3985d6e82655..b164cc535ffe 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/should-not-strip-nbsp-even-coupled-with-other-whitespace/output.js +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/should-not-strip-nbsp-even-coupled-with-other-whitespace/output.js @@ -1,4 +1,4 @@ /** @jsxRuntime classic */ /*#__PURE__*/ -React.createElement("div", null, "\xA0 "); +React.createElement("div", null, "  "); diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/should-not-strip-tags-with-a-single-child-of-nbsp/output.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/should-not-strip-tags-with-a-single-child-of-nbsp/output.js index 0be067277050..a52719410cd8 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/should-not-strip-tags-with-a-single-child-of-nbsp/output.js +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/should-not-strip-tags-with-a-single-child-of-nbsp/output.js @@ -1,4 +1,4 @@ /** @jsxRuntime classic */ /*#__PURE__*/ -React.createElement("div", null, "\xA0"); +React.createElement("div", null, " "); diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/weird-symbols/output.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/weird-symbols/output.js index 3f5b87cb2239..fc7354a19b01 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/weird-symbols/output.js +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/weird-symbols/output.js @@ -1,7 +1,7 @@ /** @jsxRuntime classic */ class MobileHomeActivityTaskPriorityIcon extends React.PureComponent { render() { - return /*#__PURE__*/React.createElement(Text, null, "\xA0", this.props.value, "\xA0"); + return /*#__PURE__*/React.createElement(Text, null, " ", this.props.value, " "); } } diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-escape-xhtml-jsxtext/output.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-escape-xhtml-jsxtext/output.js index 1edc53edeb27..ae41ad80cc9b 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-escape-xhtml-jsxtext/output.js +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-escape-xhtml-jsxtext/output.js @@ -11,13 +11,13 @@ React.createElement("div", null, "w & w"); React.createElement("div", null, "w & w"); /*#__PURE__*/ -React.createElement("div", null, "w \xA0 w"); +React.createElement("div", null, "w   w"); /*#__PURE__*/ React.createElement("div", null, "this should not parse as unicode: \\u00a0"); /*#__PURE__*/ -React.createElement("div", null, "this should parse as nbsp: \xA0 "); +React.createElement("div", null, "this should parse as nbsp:   "); /*#__PURE__*/ React.createElement("div", null, "this should parse as unicode: ", '\u00a0 '); diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-not-strip-nbsp-even-coupled-with-other-whitespace/output.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-not-strip-nbsp-even-coupled-with-other-whitespace/output.js index a8114f7ca5d4..28eca4e49db7 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-not-strip-nbsp-even-coupled-with-other-whitespace/output.js +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-not-strip-nbsp-even-coupled-with-other-whitespace/output.js @@ -1,2 +1,2 @@ /*#__PURE__*/ -React.createElement("div", null, "\xA0 "); +React.createElement("div", null, "  "); diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-not-strip-tags-with-a-single-child-of-nbsp/output.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-not-strip-tags-with-a-single-child-of-nbsp/output.js index b01dbe6b0816..283b0a0d8f23 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-not-strip-tags-with-a-single-child-of-nbsp/output.js +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-not-strip-tags-with-a-single-child-of-nbsp/output.js @@ -1,2 +1,2 @@ /*#__PURE__*/ -React.createElement("div", null, "\xA0"); +React.createElement("div", null, " "); diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/weird-symbols/output.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/weird-symbols/output.js index 3f5b87cb2239..fc7354a19b01 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/weird-symbols/output.js +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/weird-symbols/output.js @@ -1,7 +1,7 @@ /** @jsxRuntime classic */ class MobileHomeActivityTaskPriorityIcon extends React.PureComponent { render() { - return /*#__PURE__*/React.createElement(Text, null, "\xA0", this.props.value, "\xA0"); + return /*#__PURE__*/React.createElement(Text, null, " ", this.props.value, " "); } } diff --git a/packages/babel-plugin-transform-runtime/package.json b/packages/babel-plugin-transform-runtime/package.json index 1ac0ab62dc0c..74908d1ecfb6 100644 --- a/packages/babel-plugin-transform-runtime/package.json +++ b/packages/babel-plugin-transform-runtime/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-runtime", - "version": "7.10.4", + "version": "7.11.0", "description": "Externalise references to helpers and builtins, automatically polyfilling your code without polluting globals", "repository": { "type": "git", @@ -22,19 +22,21 @@ "dependencies": { "@babel/helper-module-imports": "workspace:^7.10.4", "@babel/helper-plugin-utils": "workspace:^7.10.4", + "resolve": "^1.8.1", "semver": "^5.5.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "workspace:^7.10.4", + "@babel/core": "workspace:^7.11.0", "@babel/helper-plugin-test-runner": "workspace:^7.10.4", "@babel/helpers": "workspace:^7.10.4", "@babel/plugin-transform-typeof-symbol": "workspace:^7.10.4", - "@babel/preset-env": "workspace:^7.10.4", - "@babel/runtime": "workspace:^7.10.4", + "@babel/preset-env": "workspace:^7.11.0", + "@babel/runtime": "workspace:^7.11.0", + "@babel/runtime-corejs3": "workspace:^7.11.0", "@babel/template": "workspace:^7.10.4", - "@babel/types": "workspace:^7.10.4" + "@babel/types": "workspace:^7.11.0" } } diff --git a/packages/babel-plugin-transform-runtime/src/index.js b/packages/babel-plugin-transform-runtime/src/index.js index 1ddfd4cb7e9c..b20199b8f38a 100644 --- a/packages/babel-plugin-transform-runtime/src/index.js +++ b/packages/babel-plugin-transform-runtime/src/index.js @@ -305,12 +305,16 @@ export default declare((api, options, dirname) => { context2 = t.cloneNode(object); } else { context1 = path.scope.generateDeclaredUidIdentifier("context"); - context2 = t.assignmentExpression("=", context1, object); + context2 = t.assignmentExpression( + "=", + t.cloneNode(context1), + object, + ); } node.callee = t.memberExpression( t.callExpression( this.addDefaultImport( - `${moduleName}/${corejsRoot}/instance/${InstanceProperties[propertyName].path}`, + `${modulePath}/${corejsRoot}/instance/${InstanceProperties[propertyName].path}`, `${propertyName}InstanceProperty`, ), [context2], @@ -378,7 +382,7 @@ export default declare((api, options, dirname) => { path.replaceWith( t.callExpression( this.addDefaultImport( - `${moduleName}/core-js/get-iterator-method`, + `${modulePath}/core-js/get-iterator-method`, "getIteratorMethod", ), [object], @@ -405,7 +409,7 @@ export default declare((api, options, dirname) => { path.replaceWith( t.callExpression( this.addDefaultImport( - `${moduleName}/${corejsRoot}/instance/${InstanceProperties[propertyName].path}`, + `${modulePath}/${corejsRoot}/instance/${InstanceProperties[propertyName].path}`, `${propertyName}InstanceProperty`, ), [object], diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-proposals/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-proposals/input.js new file mode 100644 index 000000000000..e75e32a6cb37 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-proposals/input.js @@ -0,0 +1,8 @@ +Array.map; +function* makeIterator() { + yield 1; + yield 2; +} +for (const itItem of makeIterator()) { + console.log(itItem); +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-proposals/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-proposals/options.json new file mode 100644 index 000000000000..9e14f2a7c2c2 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-proposals/options.json @@ -0,0 +1,7 @@ +{ + "presets": ["env"], + "plugins": [ + ["transform-runtime", { "absoluteRuntime": true, "corejs": { "version": 3, "proposals": true } }], + ["external-helpers", { "helperVersion": "7.100.0" }] + ] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-proposals/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-proposals/output.js new file mode 100644 index 000000000000..6ce2d805f7b2 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-proposals/output.js @@ -0,0 +1,41 @@ +var _regeneratorRuntime = require("/packages/babel-runtime-corejs3/regenerator"); + +var _mapInstanceProperty = require("/packages/babel-runtime-corejs3/core-js/instance/map"); + +var _marked = /*#__PURE__*/_regeneratorRuntime.mark(makeIterator); + +_mapInstanceProperty(Array); + +function makeIterator() { + return _regeneratorRuntime.wrap(function makeIterator$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return 1; + + case 2: + _context.next = 4; + return 2; + + case 4: + case "end": + return _context.stop(); + } + } + }, _marked); +} + +var _iterator = babelHelpers.createForOfIteratorHelper(makeIterator()), + _step; + +try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var itItem = _step.value; + console.log(itItem); + } +} catch (err) { + _iterator.e(err); +} finally { + _iterator.f(); +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-stable/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-stable/input.js new file mode 100644 index 000000000000..e75e32a6cb37 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-stable/input.js @@ -0,0 +1,8 @@ +Array.map; +function* makeIterator() { + yield 1; + yield 2; +} +for (const itItem of makeIterator()) { + console.log(itItem); +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-stable/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-stable/options.json new file mode 100644 index 000000000000..71281fc3d3c4 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-stable/options.json @@ -0,0 +1,7 @@ +{ + "presets": ["env"], + "plugins": [ + ["transform-runtime", { "absoluteRuntime": true, "corejs": { "version": 3, "proposals": false } }], + ["external-helpers", { "helperVersion": "7.100.0" }] + ] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-stable/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-stable/output.js new file mode 100644 index 000000000000..436be8baaefe --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-stable/output.js @@ -0,0 +1,41 @@ +var _regeneratorRuntime = require("/packages/babel-runtime-corejs3/regenerator"); + +var _mapInstanceProperty = require("/packages/babel-runtime-corejs3/core-js-stable/instance/map"); + +var _marked = /*#__PURE__*/_regeneratorRuntime.mark(makeIterator); + +_mapInstanceProperty(Array); + +function makeIterator() { + return _regeneratorRuntime.wrap(function makeIterator$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return 1; + + case 2: + _context.next = 4; + return 2; + + case 4: + case "end": + return _context.stop(); + } + } + }, _marked); +} + +var _iterator = babelHelpers.createForOfIteratorHelper(makeIterator()), + _step; + +try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var itItem = _step.value; + console.log(itItem); + } +} catch (err) { + _iterator.e(err); +} finally { + _iterator.f(); +} diff --git a/packages/babel-plugin-transform-spread/package.json b/packages/babel-plugin-transform-spread/package.json index 3af3d2f9f077..5518a5009d07 100644 --- a/packages/babel-plugin-transform-spread/package.json +++ b/packages/babel-plugin-transform-spread/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-spread", - "version": "7.10.4", + "version": "7.11.0", "description": "Compile ES2015 spread to ES5", "repository": { "type": "git", @@ -16,13 +16,14 @@ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "workspace:^7.10.4" + "@babel/helper-plugin-utils": "workspace:^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "workspace:^7.11.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "workspace:^7.10.4", + "@babel/core": "workspace:^7.11.0", "@babel/helper-plugin-test-runner": "workspace:^7.10.4" } } diff --git a/packages/babel-plugin-transform-spread/src/index.js b/packages/babel-plugin-transform-spread/src/index.js index f320d50884d3..dcd933a1fa7e 100644 --- a/packages/babel-plugin-transform-spread/src/index.js +++ b/packages/babel-plugin-transform-spread/src/index.js @@ -1,4 +1,5 @@ import { declare } from "@babel/helper-plugin-utils"; +import { skipTransparentExprWrappers } from "@babel/helper-skip-transparent-expression-wrappers"; import { types as t } from "@babel/core"; export default declare((api, options) => { @@ -94,7 +95,8 @@ export default declare((api, options) => { const args = node.arguments; if (!hasSpread(args)) return; - const calleePath = path.get("callee"); + const calleePath = skipTransparentExprWrappers(path.get("callee")); + if (calleePath.isSuper()) return; let contextLiteral = scope.buildUndefinedNode(); @@ -120,7 +122,7 @@ export default declare((api, options) => { node.arguments.push(first); } - const callee = node.callee; + const callee = calleePath.node; if (calleePath.isMemberExpression()) { const temp = scope.maybeGenerateMemoised(callee.object); @@ -130,11 +132,11 @@ export default declare((api, options) => { } else { contextLiteral = t.cloneNode(callee.object); } - t.appendToMemberExpression(callee, t.identifier("apply")); - } else { - node.callee = t.memberExpression(node.callee, t.identifier("apply")); } + // We use the original callee here, to preserve any types/parentheses + node.callee = t.memberExpression(node.callee, t.identifier("apply")); + if (t.isSuper(contextLiteral)) { contextLiteral = t.thisExpression(); } diff --git a/packages/babel-plugin-transform-spread/test/fixtures/call-context/flow-type-cast/input.ts b/packages/babel-plugin-transform-spread/test/fixtures/call-context/flow-type-cast/input.ts new file mode 100644 index 000000000000..8874581acdfa --- /dev/null +++ b/packages/babel-plugin-transform-spread/test/fixtures/call-context/flow-type-cast/input.ts @@ -0,0 +1 @@ +(a.b: any)(...args) diff --git a/packages/babel-plugin-transform-spread/test/fixtures/call-context/flow-type-cast/options.json b/packages/babel-plugin-transform-spread/test/fixtures/call-context/flow-type-cast/options.json new file mode 100644 index 000000000000..34154ac6a6a5 --- /dev/null +++ b/packages/babel-plugin-transform-spread/test/fixtures/call-context/flow-type-cast/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["external-helpers", "transform-spread", "syntax-flow"] +} diff --git a/packages/babel-plugin-transform-spread/test/fixtures/call-context/flow-type-cast/output.js b/packages/babel-plugin-transform-spread/test/fixtures/call-context/flow-type-cast/output.js new file mode 100644 index 000000000000..c912da78ec7d --- /dev/null +++ b/packages/babel-plugin-transform-spread/test/fixtures/call-context/flow-type-cast/output.js @@ -0,0 +1,3 @@ +var _a; + +((_a = a).b: any).apply(_a, babelHelpers.toConsumableArray(args)); diff --git a/packages/babel-plugin-transform-spread/test/fixtures/call-context/options.json b/packages/babel-plugin-transform-spread/test/fixtures/call-context/options.json new file mode 100644 index 000000000000..e9f2daf0be9f --- /dev/null +++ b/packages/babel-plugin-transform-spread/test/fixtures/call-context/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["external-helpers", "transform-spread", "transform-parameters"] +} diff --git a/packages/babel-plugin-transform-spread/test/fixtures/call-context/parenthesized-expressions/input.js b/packages/babel-plugin-transform-spread/test/fixtures/call-context/parenthesized-expressions/input.js new file mode 100644 index 000000000000..9467f61f0957 --- /dev/null +++ b/packages/babel-plugin-transform-spread/test/fixtures/call-context/parenthesized-expressions/input.js @@ -0,0 +1 @@ +(a.b)(...args) diff --git a/packages/babel-plugin-transform-spread/test/fixtures/call-context/parenthesized-expressions/options.json b/packages/babel-plugin-transform-spread/test/fixtures/call-context/parenthesized-expressions/options.json new file mode 100644 index 000000000000..2931a52b5b3f --- /dev/null +++ b/packages/babel-plugin-transform-spread/test/fixtures/call-context/parenthesized-expressions/options.json @@ -0,0 +1,5 @@ +{ + "parserOpts": { + "createParenthesizedExpressions": true + } +} diff --git a/packages/babel-plugin-transform-spread/test/fixtures/call-context/parenthesized-expressions/output.js b/packages/babel-plugin-transform-spread/test/fixtures/call-context/parenthesized-expressions/output.js new file mode 100644 index 000000000000..f0a0a9b7819f --- /dev/null +++ b/packages/babel-plugin-transform-spread/test/fixtures/call-context/parenthesized-expressions/output.js @@ -0,0 +1,3 @@ +var _a; + +((_a = a).b).apply(_a, babelHelpers.toConsumableArray(args)); diff --git a/packages/babel-plugin-transform-spread/test/fixtures/call-context/ts-type-cast/input.ts b/packages/babel-plugin-transform-spread/test/fixtures/call-context/ts-type-cast/input.ts new file mode 100644 index 000000000000..354578c62526 --- /dev/null +++ b/packages/babel-plugin-transform-spread/test/fixtures/call-context/ts-type-cast/input.ts @@ -0,0 +1 @@ +( a.b)(...args) diff --git a/packages/babel-plugin-transform-spread/test/fixtures/call-context/ts-type-cast/options.json b/packages/babel-plugin-transform-spread/test/fixtures/call-context/ts-type-cast/options.json new file mode 100644 index 000000000000..32fc1d8b1569 --- /dev/null +++ b/packages/babel-plugin-transform-spread/test/fixtures/call-context/ts-type-cast/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["external-helpers", "transform-spread", "syntax-typescript"] +} diff --git a/packages/babel-plugin-transform-spread/test/fixtures/call-context/ts-type-cast/output.js b/packages/babel-plugin-transform-spread/test/fixtures/call-context/ts-type-cast/output.js new file mode 100644 index 000000000000..8644e7401390 --- /dev/null +++ b/packages/babel-plugin-transform-spread/test/fixtures/call-context/ts-type-cast/output.js @@ -0,0 +1,3 @@ +var _a; + +( (_a = a).b).apply(_a, babelHelpers.toConsumableArray(args)); diff --git a/packages/babel-plugin-transform-spread/test/fixtures/regression/11400/input.ts b/packages/babel-plugin-transform-spread/test/fixtures/regression/11400/input.ts new file mode 100644 index 000000000000..2bf46926aef3 --- /dev/null +++ b/packages/babel-plugin-transform-spread/test/fixtures/regression/11400/input.ts @@ -0,0 +1 @@ +(dog.bark as any)(...args) diff --git a/packages/babel-plugin-transform-spread/test/fixtures/regression/11400/options.json b/packages/babel-plugin-transform-spread/test/fixtures/regression/11400/options.json new file mode 100644 index 000000000000..52dd0fd384e3 --- /dev/null +++ b/packages/babel-plugin-transform-spread/test/fixtures/regression/11400/options.json @@ -0,0 +1,7 @@ +{ + "presets": [ + [ + "typescript" + ] + ] +} diff --git a/packages/babel-plugin-transform-spread/test/fixtures/regression/11400/output.js b/packages/babel-plugin-transform-spread/test/fixtures/regression/11400/output.js new file mode 100644 index 000000000000..d3814197145a --- /dev/null +++ b/packages/babel-plugin-transform-spread/test/fixtures/regression/11400/output.js @@ -0,0 +1,3 @@ +var _dog; + +(_dog = dog).bark.apply(_dog, babelHelpers.toConsumableArray(args)); diff --git a/packages/babel-plugin-transform-spread/test/fixtures/spread/array-symbol-unsupported/exec.js b/packages/babel-plugin-transform-spread/test/fixtures/spread/array-symbol-unsupported/exec.js index 93ad0b7a1e33..0d320afa2e35 100644 --- a/packages/babel-plugin-transform-spread/test/fixtures/spread/array-symbol-unsupported/exec.js +++ b/packages/babel-plugin-transform-spread/test/fixtures/spread/array-symbol-unsupported/exec.js @@ -1,10 +1,6 @@ var a = (() => [2, 3])(); // Simulate old environment -let _Symbol = Symbol; -Symbol = void 0; -try { - expect([1, ...a]).toEqual([1, 2, 3]); -} finally { - Symbol = _Symbol; -} +global.Symbol = void 0; + +expect([1, ...a]).toEqual([1, 2, 3]); diff --git a/packages/babel-plugin-transform-spread/test/fixtures/spread/non-iterable/exec.js b/packages/babel-plugin-transform-spread/test/fixtures/spread/non-iterable/exec.js index 0ff7a4876673..f00f0ae0cfcf 100644 --- a/packages/babel-plugin-transform-spread/test/fixtures/spread/non-iterable/exec.js +++ b/packages/babel-plugin-transform-spread/test/fixtures/spread/non-iterable/exec.js @@ -5,6 +5,6 @@ expect(() => [...undefined]).toThrow(/spread non-iterable/); expect(() => [...o]).toThrow(/spread non-iterable/); // Simulate old browser -Symbol = void 0; +global.Symbol = void 0; expect(() => [...o]).toThrow(/spread non-iterable/); diff --git a/packages/babel-plugin-transform-template-literals/package.json b/packages/babel-plugin-transform-template-literals/package.json index 684eeb35aaa7..671951e99ffb 100644 --- a/packages/babel-plugin-transform-template-literals/package.json +++ b/packages/babel-plugin-transform-template-literals/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-template-literals", - "version": "7.10.4", + "version": "7.10.5", "description": "Compile ES2015 template literals to ES5", "repository": { "type": "git", @@ -23,7 +23,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "workspace:^7.10.4", + "@babel/core": "workspace:^7.10.5", "@babel/helper-plugin-test-runner": "workspace:^7.10.4" } } diff --git a/packages/babel-plugin-transform-template-literals/src/index.js b/packages/babel-plugin-transform-template-literals/src/index.js index 9ddbf5c9d3fc..abdf7087f8fc 100644 --- a/packages/babel-plugin-transform-template-literals/src/index.js +++ b/packages/babel-plugin-transform-template-literals/src/index.js @@ -87,9 +87,9 @@ export default declare((api, options) => { const lazyLoad = template.ast` function ${templateObject}() { const data = ${t.callExpression(helperId, callExpressionInput)}; - ${templateObject} = function() { return data }; + ${t.cloneNode(templateObject)} = function() { return data }; return data; - } + } `; scope.path.unshiftContainer("body", lazyLoad); diff --git a/packages/babel-plugin-transform-typescript/package.json b/packages/babel-plugin-transform-typescript/package.json index 47e4c5514947..eb912f7831fe 100644 --- a/packages/babel-plugin-transform-typescript/package.json +++ b/packages/babel-plugin-transform-typescript/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-typescript", - "version": "7.10.4", + "version": "7.11.0", "description": "Transform TypeScript into ES.next", "repository": { "type": "git", @@ -17,7 +17,7 @@ "typescript" ], "dependencies": { - "@babel/helper-create-class-features-plugin": "workspace:^7.10.4", + "@babel/helper-create-class-features-plugin": "workspace:^7.10.5", "@babel/helper-plugin-utils": "workspace:^7.10.4", "@babel/plugin-syntax-typescript": "workspace:^7.10.4" }, @@ -25,7 +25,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "workspace:^7.10.4", + "@babel/core": "workspace:^7.11.0", "@babel/helper-plugin-test-runner": "workspace:^7.10.4" } } diff --git a/packages/babel-plugin-transform-typescript/src/index.js b/packages/babel-plugin-transform-typescript/src/index.js index e3d08a15e891..7d5b01584b5c 100644 --- a/packages/babel-plugin-transform-typescript/src/index.js +++ b/packages/babel-plugin-transform-typescript/src/index.js @@ -79,6 +79,7 @@ export default declare( if (node.optional) node.optional = null; if (node.typeAnnotation) node.typeAnnotation = null; if (node.definite) node.definite = null; + if (node.declare) node.declare = null; }, method({ node }) { if (node.accessibility) node.accessibility = null; @@ -120,7 +121,8 @@ export default declare( ); } - return template.statement.ast`this.${id} = ${id}`; + return template.statement.ast` + this.${t.cloneNode(id)} = ${t.cloneNode(id)}`; }); injectInitialization(classPath, path, assigns); @@ -405,6 +407,10 @@ export default declare( path.node.typeParameters = null; }, + OptionalCallExpression(path) { + path.node.typeParameters = null; + }, + NewExpression(path) { path.node.typeParameters = null; }, diff --git a/packages/babel-plugin-transform-typescript/src/namespace.js b/packages/babel-plugin-transform-typescript/src/namespace.js index 32d53447a80a..be3b51c949cd 100644 --- a/packages/babel-plugin-transform-typescript/src/namespace.js +++ b/packages/babel-plugin-transform-typescript/src/namespace.js @@ -156,16 +156,16 @@ function handleNested(path, t, node, parentExport) { let fallthroughValue = t.objectExpression([]); if (parentExport) { + const memberExpr = t.memberExpression(parentExport, realName); fallthroughValue = template.expression.ast` - ${parentExport}.${realName} || ( - ${parentExport}.${realName} = ${fallthroughValue} - ) + ${t.cloneNode(memberExpr)} || + (${t.cloneNode(memberExpr)} = ${fallthroughValue}) `; } return template.statement.ast` (function (${t.identifier(name)}) { ${namespaceTopLevel} - })(${realName} || (${realName} = ${fallthroughValue})); + })(${realName} || (${t.cloneNode(realName)} = ${fallthroughValue})); `; } diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/catch-clause/param-type/input.ts b/packages/babel-plugin-transform-typescript/test/fixtures/catch-clause/param-type/input.ts new file mode 100644 index 000000000000..0aa11053c6ee --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/catch-clause/param-type/input.ts @@ -0,0 +1 @@ +try {} catch (e: any) {} diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/catch-clause/param-type/options.json b/packages/babel-plugin-transform-typescript/test/fixtures/catch-clause/param-type/options.json new file mode 100644 index 000000000000..d5e8a7e4201b --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/catch-clause/param-type/options.json @@ -0,0 +1,4 @@ +{ + "plugins": ["transform-typescript"], + "sourceType": "module" +} diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/catch-clause/param-type/output.mjs b/packages/babel-plugin-transform-typescript/test/fixtures/catch-clause/param-type/output.mjs new file mode 100644 index 000000000000..0ead89004c5c --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/catch-clause/param-type/output.mjs @@ -0,0 +1 @@ +try {} catch (e) {} diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/class/declare/input.ts b/packages/babel-plugin-transform-typescript/test/fixtures/class/declare/input.ts index 7ab37b71fb39..396b74629b04 100644 --- a/packages/babel-plugin-transform-typescript/test/fixtures/class/declare/input.ts +++ b/packages/babel-plugin-transform-typescript/test/fixtures/class/declare/input.ts @@ -1,3 +1,4 @@ class A { declare x; -} \ No newline at end of file + @foo declare y: string; +} diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/class/declare/options.json b/packages/babel-plugin-transform-typescript/test/fixtures/class/declare/options.json index 5c79172a6082..43bd3d375961 100644 --- a/packages/babel-plugin-transform-typescript/test/fixtures/class/declare/options.json +++ b/packages/babel-plugin-transform-typescript/test/fixtures/class/declare/options.json @@ -1,3 +1,6 @@ { - "plugins": ["transform-typescript"] + "plugins": [ + "transform-typescript", + ["syntax-decorators", { "legacy": true }] + ] } diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/class/declare/output.js b/packages/babel-plugin-transform-typescript/test/fixtures/class/declare/output.js index a869c2849526..04c54f970bb2 100644 --- a/packages/babel-plugin-transform-typescript/test/fixtures/class/declare/output.js +++ b/packages/babel-plugin-transform-typescript/test/fixtures/class/declare/output.js @@ -1 +1,4 @@ -class A {} +class A { + @foo + y; +} diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/class/decorated-declare-properties/input.ts b/packages/babel-plugin-transform-typescript/test/fixtures/class/decorated-declare-properties/input.ts new file mode 100644 index 000000000000..5f0bc188e6e8 --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/class/decorated-declare-properties/input.ts @@ -0,0 +1,3 @@ +class Foo { + @decorator declare bar: string; +} diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/class/decorated-declare-properties/options.json b/packages/babel-plugin-transform-typescript/test/fixtures/class/decorated-declare-properties/options.json new file mode 100644 index 000000000000..8f17a067939d --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/class/decorated-declare-properties/options.json @@ -0,0 +1,7 @@ +{ + "plugins": [ + ["transform-typescript", { "allowDeclareFields": true }], + ["proposal-decorators", { "legacy": true }], + ["proposal-class-properties"] + ] +} diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/class/decorated-declare-properties/output.js b/packages/babel-plugin-transform-typescript/test/fixtures/class/decorated-declare-properties/output.js new file mode 100644 index 000000000000..f0e0fb4d9f64 --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/class/decorated-declare-properties/output.js @@ -0,0 +1,21 @@ +var _class, _descriptor, _temp; + +function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; } + +function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); } + +let Foo = (_class = (_temp = class Foo { + constructor() { + _initializerDefineProperty(this, "bar", _descriptor, this); + } + +}, _temp), (_descriptor = _applyDecoratedDescriptor(_class.prototype, "bar", [decorator], { + configurable: true, + enumerable: true, + writable: true, + initializer: null +})), _class); diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/imports/parameter-decorators/plugin.js b/packages/babel-plugin-transform-typescript/test/fixtures/imports/parameter-decorators/plugin.js index a066043915fa..834f2517801f 100644 --- a/packages/babel-plugin-transform-typescript/test/fixtures/imports/parameter-decorators/plugin.js +++ b/packages/babel-plugin-transform-typescript/test/fixtures/imports/parameter-decorators/plugin.js @@ -25,7 +25,7 @@ exports.default = function(_ref) { .forEach(function(decorator) { resultantDecorator = types.callExpression( decorator.expression, - [resultantDecorator || types.Identifier(paramUidName)] + [resultantDecorator || types.identifier(paramUidName)] ); }); @@ -40,12 +40,12 @@ exports.default = function(_ref) { "body", types.variableDeclaration("var", [ types.variableDeclarator( - types.Identifier(decoratedParamUidName), + types.identifier(decoratedParamUidName), resultantDecorator ), ]) ); - param.replaceWith(types.Identifier(paramUidName)); + param.replaceWith(types.identifier(paramUidName)); } }); }, diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/type-arguments/optional-call/input.ts b/packages/babel-plugin-transform-typescript/test/fixtures/type-arguments/optional-call/input.ts new file mode 100644 index 000000000000..362521c1ed9e --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/type-arguments/optional-call/input.ts @@ -0,0 +1 @@ +x?.f(); \ No newline at end of file diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/type-arguments/optional-call/output.js b/packages/babel-plugin-transform-typescript/test/fixtures/type-arguments/optional-call/output.js new file mode 100644 index 000000000000..720f644dbc3a --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/type-arguments/optional-call/output.js @@ -0,0 +1 @@ +x?.f(); \ No newline at end of file diff --git a/packages/babel-preset-env/CONTRIBUTING.md b/packages/babel-preset-env/CONTRIBUTING.md index b17d1f453b73..53fc57b64b54 100644 --- a/packages/babel-preset-env/CONTRIBUTING.md +++ b/packages/babel-preset-env/CONTRIBUTING.md @@ -51,13 +51,13 @@ const es = { } ``` -If you wan to transform a new built-in by `useBuiltIns: 'usage'`, add mapping to related `core-js` modules to [this file](https://github.com/babel/babel/blob/main/packages/babel-preset-env/polyfills/corejs2/built-in-definitions.js). +If you want to transform a new built-in by `useBuiltIns: 'usage'`, add mapping to related `core-js` modules to [this file](https://github.com/babel/babel/blob/main/packages/babel-preset-env/polyfills/corejs2/built-in-definitions.js). ### Update data for `core-js@3` polyfilling Just update the version of [`core-js-compat`](https://github.com/zloirock/core-js/tree/main/packages/core-js-compat) in dependencies. -If you wan to transform a new built-in by `useBuiltIns: 'usage'`, add mapping to related [`core-js`](https://github.com/zloirock/core-js/tree/main/packages/core-js/modules) modules to [this file](https://github.com/babel/babel/blob/main/packages/babel-preset-env/polyfills/corejs3/built-in-definitions.js). +If you want to transform a new built-in by `useBuiltIns: 'usage'`, add mapping to related [`core-js`](https://github.com/zloirock/core-js/tree/main/packages/core-js/modules) modules to [this file](https://github.com/babel/babel/blob/main/packages/babel-preset-env/polyfills/corejs3/built-in-definitions.js). If you want to mark a new proposal as shipped, add it to [this list](https://github.com/babel/babel/blob/main/packages/babel-preset-env/polyfills/corejs3/shipped-proposals.js). diff --git a/packages/babel-preset-env/data/shipped-proposals.js b/packages/babel-preset-env/data/shipped-proposals.js index 34c13c0d73b4..95ca9b119225 100644 --- a/packages/babel-preset-env/data/shipped-proposals.js +++ b/packages/babel-preset-env/data/shipped-proposals.js @@ -4,7 +4,6 @@ const proposalPlugins = new Set([ "proposal-class-properties", - "proposal-numeric-separator", "proposal-private-methods" ]); diff --git a/packages/babel-preset-env/package.json b/packages/babel-preset-env/package.json index 4fdacdd11e0f..a8ee2663d449 100644 --- a/packages/babel-preset-env/package.json +++ b/packages/babel-preset-env/package.json @@ -1,6 +1,6 @@ { "name": "@babel/preset-env", - "version": "7.10.4", + "version": "7.11.0", "description": "A Babel preset for each environment.", "author": "Henry Zhu ", "homepage": "https://babeljs.io/", @@ -15,25 +15,29 @@ }, "main": "lib/index.js", "dependencies": { - "@babel/compat-data": "workspace:^7.10.4", + "@babel/compat-data": "workspace:^7.11.0", "@babel/helper-compilation-targets": "workspace:^7.10.4", "@babel/helper-module-imports": "workspace:^7.10.4", "@babel/helper-plugin-utils": "workspace:^7.10.4", "@babel/plugin-proposal-async-generator-functions": "workspace:^7.10.4", "@babel/plugin-proposal-class-properties": "workspace:^7.10.4", "@babel/plugin-proposal-dynamic-import": "workspace:^7.10.4", + "@babel/plugin-proposal-export-namespace-from": "workspace:^7.10.4", "@babel/plugin-proposal-json-strings": "workspace:^7.10.4", + "@babel/plugin-proposal-logical-assignment-operators": "workspace:^7.11.0", "@babel/plugin-proposal-nullish-coalescing-operator": "workspace:^7.10.4", "@babel/plugin-proposal-numeric-separator": "workspace:^7.10.4", - "@babel/plugin-proposal-object-rest-spread": "workspace:^7.10.4", + "@babel/plugin-proposal-object-rest-spread": "workspace:^7.11.0", "@babel/plugin-proposal-optional-catch-binding": "workspace:^7.10.4", - "@babel/plugin-proposal-optional-chaining": "workspace:^7.10.4", + "@babel/plugin-proposal-optional-chaining": "workspace:^7.11.0", "@babel/plugin-proposal-private-methods": "workspace:^7.10.4", "@babel/plugin-proposal-unicode-property-regex": "workspace:^7.10.4", "@babel/plugin-syntax-async-generators": "^7.8.0", "@babel/plugin-syntax-class-properties": "workspace:^7.10.4", "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-logical-assignment-operators": "workspace:^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", "@babel/plugin-syntax-numeric-separator": "workspace:^7.10.4", "@babel/plugin-syntax-object-rest-spread": "^7.8.0", @@ -66,14 +70,14 @@ "@babel/plugin-transform-regenerator": "workspace:^7.10.4", "@babel/plugin-transform-reserved-words": "workspace:^7.10.4", "@babel/plugin-transform-shorthand-properties": "workspace:^7.10.4", - "@babel/plugin-transform-spread": "workspace:^7.10.4", + "@babel/plugin-transform-spread": "workspace:^7.11.0", "@babel/plugin-transform-sticky-regex": "workspace:^7.10.4", "@babel/plugin-transform-template-literals": "workspace:^7.10.4", "@babel/plugin-transform-typeof-symbol": "workspace:^7.10.4", "@babel/plugin-transform-unicode-escapes": "workspace:^7.10.4", "@babel/plugin-transform-unicode-regex": "workspace:^7.10.4", "@babel/preset-modules": "^0.1.3", - "@babel/types": "workspace:^7.10.4", + "@babel/types": "workspace:^7.11.0", "browserslist": "^4.12.0", "core-js-compat": "^3.6.2", "invariant": "^2.2.2", @@ -85,7 +89,7 @@ }, "devDependencies": { "@babel/cli": "workspace:^7.10.4", - "@babel/core": "workspace:^7.10.4", + "@babel/core": "workspace:^7.11.0", "@babel/helper-fixtures": "workspace:^7.10.4", "@babel/helper-plugin-test-runner": "workspace:^7.10.4", "@babel/plugin-syntax-dynamic-import": "^7.2.0" diff --git a/packages/babel-preset-env/src/available-plugins.js b/packages/babel-preset-env/src/available-plugins.js index 939199ae987d..99a09ac1ee2b 100644 --- a/packages/babel-preset-env/src/available-plugins.js +++ b/packages/babel-preset-env/src/available-plugins.js @@ -4,7 +4,9 @@ import syntaxAsyncGenerators from "@babel/plugin-syntax-async-generators"; import syntaxClassProperties from "@babel/plugin-syntax-class-properties"; import syntaxDynamicImport from "@babel/plugin-syntax-dynamic-import"; +import syntaxExportNamespaceFrom from "@babel/plugin-syntax-export-namespace-from"; import syntaxJsonStrings from "@babel/plugin-syntax-json-strings"; +import syntaxLogicalAssignmentOperators from "@babel/plugin-syntax-logical-assignment-operators"; import syntaxNullishCoalescingOperator from "@babel/plugin-syntax-nullish-coalescing-operator"; import syntaxNumericSeparator from "@babel/plugin-syntax-numeric-separator"; import syntaxObjectRestSpread from "@babel/plugin-syntax-object-rest-spread"; @@ -14,7 +16,9 @@ import syntaxTopLevelAwait from "@babel/plugin-syntax-top-level-await"; import proposalAsyncGeneratorFunctions from "@babel/plugin-proposal-async-generator-functions"; import proposalClassProperties from "@babel/plugin-proposal-class-properties"; import proposalDynamicImport from "@babel/plugin-proposal-dynamic-import"; +import proposalExportNamespaceFrom from "@babel/plugin-proposal-export-namespace-from"; import proposalJsonStrings from "@babel/plugin-proposal-json-strings"; +import proposalLogicalAssignmentOperators from "@babel/plugin-proposal-logical-assignment-operators"; import proposalNullishCoalescingOperator from "@babel/plugin-proposal-nullish-coalescing-operator"; import proposalNumericSeparator from "@babel/plugin-proposal-numeric-separator"; import proposalObjectRestSpread from "@babel/plugin-proposal-object-rest-spread"; @@ -72,7 +76,9 @@ export default { "proposal-async-generator-functions": proposalAsyncGeneratorFunctions, "proposal-class-properties": proposalClassProperties, "proposal-dynamic-import": proposalDynamicImport, + "proposal-export-namespace-from": proposalExportNamespaceFrom, "proposal-json-strings": proposalJsonStrings, + "proposal-logical-assignment-operators": proposalLogicalAssignmentOperators, "proposal-nullish-coalescing-operator": proposalNullishCoalescingOperator, "proposal-numeric-separator": proposalNumericSeparator, "proposal-object-rest-spread": proposalObjectRestSpread, @@ -83,7 +89,9 @@ export default { "syntax-async-generators": syntaxAsyncGenerators, "syntax-class-properties": syntaxClassProperties, "syntax-dynamic-import": syntaxDynamicImport, + "syntax-export-namespace-from": syntaxExportNamespaceFrom, "syntax-json-strings": syntaxJsonStrings, + "syntax-logical-assignment-operators": syntaxLogicalAssignmentOperators, "syntax-nullish-coalescing-operator": syntaxNullishCoalescingOperator, "syntax-numeric-separator": syntaxNumericSeparator, "syntax-object-rest-spread": syntaxObjectRestSpread, diff --git a/packages/babel-preset-env/src/index.js b/packages/babel-preset-env/src/index.js index 4f18479ac79c..67c6716e067f 100644 --- a/packages/babel-preset-env/src/index.js +++ b/packages/babel-preset-env/src/index.js @@ -97,14 +97,16 @@ export const getModulesPluginNames = ({ transformations, shouldTransformESM, shouldTransformDynamicImport, + shouldTransformExportNamespaceFrom, shouldParseTopLevelAwait, -}: { +}: {| modules: ModuleOption, transformations: ModuleTransformationsType, shouldTransformESM: boolean, shouldTransformDynamicImport: boolean, + shouldTransformExportNamespaceFrom: boolean, shouldParseTopLevelAwait: boolean, -}) => { +|}) => { const modulesPluginNames = []; if (modules !== false && transformations[modules]) { if (shouldTransformESM) { @@ -130,6 +132,12 @@ export const getModulesPluginNames = ({ modulesPluginNames.push("syntax-dynamic-import"); } + if (shouldTransformExportNamespaceFrom) { + modulesPluginNames.push("proposal-export-namespace-from"); + } else { + modulesPluginNames.push("syntax-export-namespace-from"); + } + if (shouldParseTopLevelAwait) { modulesPluginNames.push("syntax-top-level-await"); } @@ -196,6 +204,10 @@ function supportsDynamicImport(caller) { return !!caller?.supportsDynamicImport; } +function supportsExportNamespaceFrom(caller) { + return !!caller?.supportsExportNamespaceFrom; +} + function supportsTopLevelAwait(caller) { return !!caller?.supportsTopLevelAwait; } @@ -243,6 +255,15 @@ export default declare((api, opts) => { const transformTargets = forceAllTransforms ? {} : targets; + const compatData = getPluginList(shippedProposals, bugfixes); + const shouldSkipExportNamespaceFrom = + (modules === "auto" && api.caller?.(supportsExportNamespaceFrom)) || + (modules === false && + !isRequired("proposal-export-namespace-from", transformTargets, { + compatData, + includes: include.plugins, + excludes: exclude.plugins, + })); const modulesPluginNames = getModulesPluginNames({ modules, transformations: moduleTransformations, @@ -251,11 +272,12 @@ export default declare((api, opts) => { shouldTransformESM: modules !== "auto" || !api.caller?.(supportsStaticESM), shouldTransformDynamicImport: modules !== "auto" || !api.caller?.(supportsDynamicImport), + shouldTransformExportNamespaceFrom: !shouldSkipExportNamespaceFrom, shouldParseTopLevelAwait: !api.caller || api.caller(supportsTopLevelAwait), }); const pluginNames = filterItems( - getPluginList(shippedProposals, bugfixes), + compatData, include.plugins, exclude.plugins, transformTargets, diff --git a/packages/babel-preset-env/src/normalize-options.js b/packages/babel-preset-env/src/normalize-options.js index 3dd235be01ff..9f5588868242 100644 --- a/packages/babel-preset-env/src/normalize-options.js +++ b/packages/babel-preset-env/src/normalize-options.js @@ -31,7 +31,7 @@ const validateTopLevelOptions = (options: Options) => { const allPluginsList = Object.keys(pluginsList); -// NOTE: Since module plugins are handled seperatly compared to other plugins (via the "modules" option) it +// NOTE: Since module plugins are handled separately compared to other plugins (via the "modules" option) it // should only be possible to exclude and not include module plugins, otherwise it's possible that preset-env // will add a module plugin twice. const modulePlugins = [ diff --git a/packages/babel-preset-env/test/fixtures/bugfixes/_esmodules-no-bugfixes/stdout.txt b/packages/babel-preset-env/test/fixtures/bugfixes/_esmodules-no-bugfixes/stdout.txt index 7dd3383636d1..55f1575fea0c 100644 --- a/packages/babel-preset-env/test/fixtures/bugfixes/_esmodules-no-bugfixes/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/bugfixes/_esmodules-no-bugfixes/stdout.txt @@ -7,6 +7,7 @@ Using targets: "edge": "16", "firefox": "60", "ios": "10.3", + "node": "13.2", "opera": "48", "safari": "10.1", "samsung": "8.2" @@ -15,8 +16,10 @@ Using targets: Using modules transform: auto Using plugins: - proposal-nullish-coalescing-operator { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } - proposal-optional-chaining { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } + proposal-numeric-separator { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } + proposal-logical-assignment-operators { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"48", "safari":"10.1", "samsung":"8.2" } + proposal-nullish-coalescing-operator { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"48", "safari":"10.1", "samsung":"8.2" } + proposal-optional-chaining { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"48", "safari":"10.1", "samsung":"8.2" } proposal-json-strings { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } proposal-optional-catch-binding { "android":"61", "chrome":"61", "edge":"16", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } transform-parameters { "edge":"16" } @@ -30,7 +33,8 @@ Using plugins: transform-function-name { "edge":"16" } transform-unicode-regex { "ios":"10.3", "safari":"10.1" } transform-block-scoping { "ios":"10.3", "safari":"10.1" } - transform-modules-commonjs { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } - proposal-dynamic-import { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } + proposal-export-namespace-from { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } + transform-modules-commonjs { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"48", "safari":"10.1", "samsung":"8.2" } + proposal-dynamic-import { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"48", "safari":"10.1", "samsung":"8.2" } Using polyfills: No polyfills were added, since the `useBuiltIns` option was not set. diff --git a/packages/babel-preset-env/test/fixtures/bugfixes/_esmodules/stdout.txt b/packages/babel-preset-env/test/fixtures/bugfixes/_esmodules/stdout.txt index 3f19ec611846..6f41b1655a54 100644 --- a/packages/babel-preset-env/test/fixtures/bugfixes/_esmodules/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/bugfixes/_esmodules/stdout.txt @@ -7,6 +7,7 @@ Using targets: "edge": "16", "firefox": "60", "ios": "10.3", + "node": "13.2", "opera": "48", "safari": "10.1", "samsung": "8.2" @@ -15,8 +16,10 @@ Using targets: Using modules transform: auto Using plugins: - proposal-nullish-coalescing-operator { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } - proposal-optional-chaining { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } + proposal-numeric-separator { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } + proposal-logical-assignment-operators { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"48", "safari":"10.1", "samsung":"8.2" } + proposal-nullish-coalescing-operator { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"48", "safari":"10.1", "samsung":"8.2" } + proposal-optional-chaining { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"48", "safari":"10.1", "samsung":"8.2" } proposal-json-strings { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } proposal-optional-catch-binding { "android":"61", "chrome":"61", "edge":"16", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } proposal-async-generator-functions { "android":"61", "chrome":"61", "edge":"16", "ios":"10.3", "opera":"48", "safari":"10.1" } @@ -25,13 +28,14 @@ Using plugins: proposal-unicode-property-regex { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } transform-named-capturing-groups-regex { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } transform-unicode-regex { "ios":"10.3", "safari":"10.1" } - bugfix/transform-async-arrows-in-class { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } - bugfix/transform-edge-default-parameters { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } - bugfix/transform-edge-function-name { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } - bugfix/transform-safari-block-shadowing { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } - bugfix/transform-safari-for-shadowing { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } - bugfix/transform-tagged-template-caching { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } - transform-modules-commonjs { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } - proposal-dynamic-import { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } + proposal-export-namespace-from { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } + bugfix/transform-async-arrows-in-class { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"48", "safari":"10.1", "samsung":"8.2" } + bugfix/transform-edge-default-parameters { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"48", "safari":"10.1", "samsung":"8.2" } + bugfix/transform-edge-function-name { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"48", "safari":"10.1", "samsung":"8.2" } + bugfix/transform-safari-block-shadowing { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"48", "safari":"10.1", "samsung":"8.2" } + bugfix/transform-safari-for-shadowing { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"48", "safari":"10.1", "samsung":"8.2" } + bugfix/transform-tagged-template-caching { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"48", "safari":"10.1", "samsung":"8.2" } + transform-modules-commonjs { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"48", "safari":"10.1", "samsung":"8.2" } + proposal-dynamic-import { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"48", "safari":"10.1", "samsung":"8.2" } Using polyfills: No polyfills were added, since the `useBuiltIns` option was not set. diff --git a/packages/babel-preset-env/test/fixtures/bugfixes/edge-default-params-chrome-40/stdout.txt b/packages/babel-preset-env/test/fixtures/bugfixes/edge-default-params-chrome-40/stdout.txt index 42b3c0122d78..e8f6552456e0 100644 --- a/packages/babel-preset-env/test/fixtures/bugfixes/edge-default-params-chrome-40/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/bugfixes/edge-default-params-chrome-40/stdout.txt @@ -8,6 +8,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "chrome":"40" } + proposal-logical-assignment-operators { "chrome":"40" } proposal-nullish-coalescing-operator { "chrome":"40" } proposal-optional-chaining { "chrome":"40" } proposal-json-strings { "chrome":"40" } @@ -37,6 +39,7 @@ Using plugins: transform-block-scoping { "chrome":"40" } transform-new-target { "chrome":"40" } transform-regenerator { "chrome":"40" } + proposal-export-namespace-from { "chrome":"40" } transform-modules-commonjs { "chrome":"40" } proposal-dynamic-import { "chrome":"40" } diff --git a/packages/babel-preset-env/test/fixtures/bugfixes/edge-default-params-chrome-70/stdout.txt b/packages/babel-preset-env/test/fixtures/bugfixes/edge-default-params-chrome-70/stdout.txt index 0cc2b0ed9d8e..e05c238fd23a 100644 --- a/packages/babel-preset-env/test/fixtures/bugfixes/edge-default-params-chrome-70/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/bugfixes/edge-default-params-chrome-70/stdout.txt @@ -8,12 +8,15 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "chrome":"70" } + proposal-logical-assignment-operators { "chrome":"70" } proposal-nullish-coalescing-operator { "chrome":"70" } proposal-optional-chaining { "chrome":"70" } syntax-json-strings { "chrome":"70" } syntax-optional-catch-binding { "chrome":"70" } syntax-async-generators { "chrome":"70" } syntax-object-rest-spread { "chrome":"70" } + proposal-export-namespace-from { "chrome":"70" } transform-modules-commonjs { "chrome":"70" } proposal-dynamic-import { "chrome":"70" } diff --git a/packages/babel-preset-env/test/fixtures/bugfixes/edge-default-params-edge-14/stdout.txt b/packages/babel-preset-env/test/fixtures/bugfixes/edge-default-params-edge-14/stdout.txt index 7a388e0ae02c..61993d66977a 100644 --- a/packages/babel-preset-env/test/fixtures/bugfixes/edge-default-params-edge-14/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/bugfixes/edge-default-params-edge-14/stdout.txt @@ -8,6 +8,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "edge":"14" } + proposal-logical-assignment-operators { "edge":"14" } proposal-nullish-coalescing-operator { "edge":"14" } proposal-optional-chaining { "edge":"14" } proposal-json-strings { "edge":"14" } @@ -21,6 +23,7 @@ Using plugins: transform-async-to-generator { "edge":"14" } transform-for-of { "edge":"14" } transform-destructuring { "edge":"14" } + proposal-export-namespace-from { "edge":"14" } bugfix/transform-edge-function-name { "edge":"14" } transform-modules-commonjs { "edge":"14" } proposal-dynamic-import { "edge":"14" } diff --git a/packages/babel-preset-env/test/fixtures/bugfixes/edge-default-params-edge-15/stdout.txt b/packages/babel-preset-env/test/fixtures/bugfixes/edge-default-params-edge-15/stdout.txt index 9510c3518847..9f6eca76d949 100644 --- a/packages/babel-preset-env/test/fixtures/bugfixes/edge-default-params-edge-15/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/bugfixes/edge-default-params-edge-15/stdout.txt @@ -8,6 +8,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "edge":"15" } + proposal-logical-assignment-operators { "edge":"15" } proposal-nullish-coalescing-operator { "edge":"15" } proposal-optional-chaining { "edge":"15" } proposal-json-strings { "edge":"15" } @@ -17,6 +19,7 @@ Using plugins: transform-dotall-regex { "edge":"15" } proposal-unicode-property-regex { "edge":"15" } transform-named-capturing-groups-regex { "edge":"15" } + proposal-export-namespace-from { "edge":"15" } bugfix/transform-edge-default-parameters { "edge":"15" } bugfix/transform-edge-function-name { "edge":"15" } transform-modules-commonjs { "edge":"15" } diff --git a/packages/babel-preset-env/test/fixtures/bugfixes/edge-default-params-edge-17-no-bugfixes/stdout.txt b/packages/babel-preset-env/test/fixtures/bugfixes/edge-default-params-edge-17-no-bugfixes/stdout.txt index 954199e544e4..6a1702d4e5eb 100644 --- a/packages/babel-preset-env/test/fixtures/bugfixes/edge-default-params-edge-17-no-bugfixes/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/bugfixes/edge-default-params-edge-17-no-bugfixes/stdout.txt @@ -8,6 +8,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "edge":"17" } + proposal-logical-assignment-operators { "edge":"17" } proposal-nullish-coalescing-operator { "edge":"17" } proposal-optional-chaining { "edge":"17" } proposal-json-strings { "edge":"17" } @@ -19,6 +21,7 @@ Using plugins: proposal-unicode-property-regex { "edge":"17" } transform-named-capturing-groups-regex { "edge":"17" } transform-function-name { "edge":"17" } + proposal-export-namespace-from { "edge":"17" } transform-modules-commonjs { "edge":"17" } proposal-dynamic-import { "edge":"17" } diff --git a/packages/babel-preset-env/test/fixtures/bugfixes/edge-default-params-edge-17/stdout.txt b/packages/babel-preset-env/test/fixtures/bugfixes/edge-default-params-edge-17/stdout.txt index b728cabff9da..6938b18f9878 100644 --- a/packages/babel-preset-env/test/fixtures/bugfixes/edge-default-params-edge-17/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/bugfixes/edge-default-params-edge-17/stdout.txt @@ -8,6 +8,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "edge":"17" } + proposal-logical-assignment-operators { "edge":"17" } proposal-nullish-coalescing-operator { "edge":"17" } proposal-optional-chaining { "edge":"17" } proposal-json-strings { "edge":"17" } @@ -17,6 +19,7 @@ Using plugins: transform-dotall-regex { "edge":"17" } proposal-unicode-property-regex { "edge":"17" } transform-named-capturing-groups-regex { "edge":"17" } + proposal-export-namespace-from { "edge":"17" } bugfix/transform-edge-default-parameters { "edge":"17" } bugfix/transform-edge-function-name { "edge":"17" } transform-modules-commonjs { "edge":"17" } diff --git a/packages/babel-preset-env/test/fixtures/bugfixes/edge-default-params-edge-18/stdout.txt b/packages/babel-preset-env/test/fixtures/bugfixes/edge-default-params-edge-18/stdout.txt index 30bcc97de1ee..dc34004f080f 100644 --- a/packages/babel-preset-env/test/fixtures/bugfixes/edge-default-params-edge-18/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/bugfixes/edge-default-params-edge-18/stdout.txt @@ -8,6 +8,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "edge":"18" } + proposal-logical-assignment-operators { "edge":"18" } proposal-nullish-coalescing-operator { "edge":"18" } proposal-optional-chaining { "edge":"18" } proposal-json-strings { "edge":"18" } @@ -17,6 +19,7 @@ Using plugins: transform-dotall-regex { "edge":"18" } proposal-unicode-property-regex { "edge":"18" } transform-named-capturing-groups-regex { "edge":"18" } + proposal-export-namespace-from { "edge":"18" } bugfix/transform-edge-function-name { "edge":"18" } transform-modules-commonjs { "edge":"18" } proposal-dynamic-import { "edge":"18" } diff --git a/packages/babel-preset-env/test/fixtures/bugfixes/edge-function-name-edge-14-no-bugfixes/stdout.txt b/packages/babel-preset-env/test/fixtures/bugfixes/edge-function-name-edge-14-no-bugfixes/stdout.txt index ac366c8a1cdb..9ab2f94fa377 100644 --- a/packages/babel-preset-env/test/fixtures/bugfixes/edge-function-name-edge-14-no-bugfixes/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/bugfixes/edge-function-name-edge-14-no-bugfixes/stdout.txt @@ -8,6 +8,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "edge":"14" } + proposal-logical-assignment-operators { "edge":"14" } proposal-nullish-coalescing-operator { "edge":"14" } proposal-optional-chaining { "edge":"14" } proposal-json-strings { "edge":"14" } @@ -22,6 +24,7 @@ Using plugins: transform-function-name { "edge":"14" } transform-for-of { "edge":"14" } transform-destructuring { "edge":"14" } + proposal-export-namespace-from { "edge":"14" } transform-modules-commonjs { "edge":"14" } proposal-dynamic-import { "edge":"14" } diff --git a/packages/babel-preset-env/test/fixtures/bugfixes/edge-function-name-edge-14/stdout.txt b/packages/babel-preset-env/test/fixtures/bugfixes/edge-function-name-edge-14/stdout.txt index 7a388e0ae02c..61993d66977a 100644 --- a/packages/babel-preset-env/test/fixtures/bugfixes/edge-function-name-edge-14/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/bugfixes/edge-function-name-edge-14/stdout.txt @@ -8,6 +8,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "edge":"14" } + proposal-logical-assignment-operators { "edge":"14" } proposal-nullish-coalescing-operator { "edge":"14" } proposal-optional-chaining { "edge":"14" } proposal-json-strings { "edge":"14" } @@ -21,6 +23,7 @@ Using plugins: transform-async-to-generator { "edge":"14" } transform-for-of { "edge":"14" } transform-destructuring { "edge":"14" } + proposal-export-namespace-from { "edge":"14" } bugfix/transform-edge-function-name { "edge":"14" } transform-modules-commonjs { "edge":"14" } proposal-dynamic-import { "edge":"14" } diff --git a/packages/babel-preset-env/test/fixtures/bugfixes/edge-function-name-edge-15/stdout.txt b/packages/babel-preset-env/test/fixtures/bugfixes/edge-function-name-edge-15/stdout.txt index 9510c3518847..9f6eca76d949 100644 --- a/packages/babel-preset-env/test/fixtures/bugfixes/edge-function-name-edge-15/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/bugfixes/edge-function-name-edge-15/stdout.txt @@ -8,6 +8,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "edge":"15" } + proposal-logical-assignment-operators { "edge":"15" } proposal-nullish-coalescing-operator { "edge":"15" } proposal-optional-chaining { "edge":"15" } proposal-json-strings { "edge":"15" } @@ -17,6 +19,7 @@ Using plugins: transform-dotall-regex { "edge":"15" } proposal-unicode-property-regex { "edge":"15" } transform-named-capturing-groups-regex { "edge":"15" } + proposal-export-namespace-from { "edge":"15" } bugfix/transform-edge-default-parameters { "edge":"15" } bugfix/transform-edge-function-name { "edge":"15" } transform-modules-commonjs { "edge":"15" } diff --git a/packages/babel-preset-env/test/fixtures/bugfixes/safari-block-scoping-safari-10-no-bugfixes/stdout.txt b/packages/babel-preset-env/test/fixtures/bugfixes/safari-block-scoping-safari-10-no-bugfixes/stdout.txt index 6425e78aaaf7..720eb9ca60a2 100644 --- a/packages/babel-preset-env/test/fixtures/bugfixes/safari-block-scoping-safari-10-no-bugfixes/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/bugfixes/safari-block-scoping-safari-10-no-bugfixes/stdout.txt @@ -8,6 +8,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "safari":"10" } + proposal-logical-assignment-operators { "safari":"10" } proposal-nullish-coalescing-operator { "safari":"10" } proposal-optional-chaining { "safari":"10" } proposal-json-strings { "safari":"10" } @@ -22,6 +24,7 @@ Using plugins: transform-template-literals { "safari":"10" } transform-unicode-regex { "safari":"10" } transform-block-scoping { "safari":"10" } + proposal-export-namespace-from { "safari":"10" } transform-modules-commonjs { "safari":"10" } proposal-dynamic-import { "safari":"10" } diff --git a/packages/babel-preset-env/test/fixtures/bugfixes/safari-block-scoping-safari-10/stdout.txt b/packages/babel-preset-env/test/fixtures/bugfixes/safari-block-scoping-safari-10/stdout.txt index 779d34b4ba24..39fdf1a27996 100644 --- a/packages/babel-preset-env/test/fixtures/bugfixes/safari-block-scoping-safari-10/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/bugfixes/safari-block-scoping-safari-10/stdout.txt @@ -8,6 +8,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "safari":"10" } + proposal-logical-assignment-operators { "safari":"10" } proposal-nullish-coalescing-operator { "safari":"10" } proposal-optional-chaining { "safari":"10" } proposal-json-strings { "safari":"10" } @@ -20,6 +22,7 @@ Using plugins: transform-async-to-generator { "safari":"10" } transform-exponentiation-operator { "safari":"10" } transform-unicode-regex { "safari":"10" } + proposal-export-namespace-from { "safari":"10" } bugfix/transform-safari-block-shadowing { "safari":"10" } bugfix/transform-safari-for-shadowing { "safari":"10" } bugfix/transform-tagged-template-caching { "safari":"10" } diff --git a/packages/babel-preset-env/test/fixtures/bugfixes/safari-block-scoping-safari-11/stdout.txt b/packages/babel-preset-env/test/fixtures/bugfixes/safari-block-scoping-safari-11/stdout.txt index e9cfcb3dd8b2..5c62c644a4df 100644 --- a/packages/babel-preset-env/test/fixtures/bugfixes/safari-block-scoping-safari-11/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/bugfixes/safari-block-scoping-safari-11/stdout.txt @@ -8,6 +8,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "safari":"11" } + proposal-logical-assignment-operators { "safari":"11" } proposal-nullish-coalescing-operator { "safari":"11" } proposal-optional-chaining { "safari":"11" } proposal-json-strings { "safari":"11" } @@ -18,6 +20,7 @@ Using plugins: proposal-unicode-property-regex { "safari":"11" } transform-named-capturing-groups-regex { "safari":"11" } transform-unicode-regex { "safari":"11" } + proposal-export-namespace-from { "safari":"11" } bugfix/transform-tagged-template-caching { "safari":"11" } transform-modules-commonjs { "safari":"11" } proposal-dynamic-import { "safari":"11" } diff --git a/packages/babel-preset-env/test/fixtures/bugfixes/safari-block-scoping-safari-9/stdout.txt b/packages/babel-preset-env/test/fixtures/bugfixes/safari-block-scoping-safari-9/stdout.txt index c1dd2f892833..d83019ad8877 100644 --- a/packages/babel-preset-env/test/fixtures/bugfixes/safari-block-scoping-safari-9/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/bugfixes/safari-block-scoping-safari-9/stdout.txt @@ -8,6 +8,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "safari":"9" } + proposal-logical-assignment-operators { "safari":"9" } proposal-nullish-coalescing-operator { "safari":"9" } proposal-optional-chaining { "safari":"9" } proposal-json-strings { "safari":"9" } @@ -31,6 +33,7 @@ Using plugins: transform-block-scoping { "safari":"9" } transform-new-target { "safari":"9" } transform-regenerator { "safari":"9" } + proposal-export-namespace-from { "safari":"9" } bugfix/transform-tagged-template-caching { "safari":"9" } transform-modules-commonjs { "safari":"9" } proposal-dynamic-import { "safari":"9" } diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-browserslist-config-ignore/stdout.txt b/packages/babel-preset-env/test/fixtures/corejs3/usage-browserslist-config-ignore/stdout.txt index 20ac22e7bc73..8a05983c158c 100644 --- a/packages/babel-preset-env/test/fixtures/corejs3/usage-browserslist-config-ignore/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-browserslist-config-ignore/stdout.txt @@ -7,6 +7,7 @@ Using targets: "edge": "16", "firefox": "60", "ios": "10.3", + "node": "13.2", "opera": "48", "safari": "10.1", "samsung": "8.2" @@ -15,8 +16,10 @@ Using targets: Using modules transform: false Using plugins: - proposal-nullish-coalescing-operator { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } - proposal-optional-chaining { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } + proposal-numeric-separator { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } + proposal-logical-assignment-operators { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"48", "safari":"10.1", "samsung":"8.2" } + proposal-nullish-coalescing-operator { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"48", "safari":"10.1", "samsung":"8.2" } + proposal-optional-chaining { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"48", "safari":"10.1", "samsung":"8.2" } proposal-json-strings { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } proposal-optional-catch-binding { "android":"61", "chrome":"61", "edge":"16", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } transform-parameters { "edge":"16" } @@ -30,7 +33,8 @@ Using plugins: transform-function-name { "edge":"16" } transform-unicode-regex { "ios":"10.3", "safari":"10.1" } transform-block-scoping { "ios":"10.3", "safari":"10.1" } - syntax-dynamic-import { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } + proposal-export-namespace-from { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } + syntax-dynamic-import { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"48", "safari":"10.1", "samsung":"8.2" } Using polyfills with `usage` option: diff --git a/packages/babel-preset-env/test/fixtures/debug/browserslist-env/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/browserslist-env/stdout.txt index c3f8c841eabc..898343c6bd4f 100644 --- a/packages/babel-preset-env/test/fixtures/debug/browserslist-env/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/browserslist-env/stdout.txt @@ -8,6 +8,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "ie":"11" } + proposal-logical-assignment-operators { "ie":"11" } proposal-nullish-coalescing-operator { "ie":"11" } proposal-optional-chaining { "ie":"11" } proposal-json-strings { "ie":"11" } @@ -39,6 +41,7 @@ Using plugins: transform-typeof-symbol { "ie":"11" } transform-new-target { "ie":"11" } transform-regenerator { "ie":"11" } + proposal-export-namespace-from { "ie":"11" } transform-modules-commonjs { "ie":"11" } proposal-dynamic-import { "ie":"11" } diff --git a/packages/babel-preset-env/test/fixtures/debug/browserslists-android-3/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/browserslists-android-3/stdout.txt index 5d2646157074..e4d3f42c15aa 100644 --- a/packages/babel-preset-env/test/fixtures/debug/browserslists-android-3/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/browserslists-android-3/stdout.txt @@ -8,6 +8,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "android":"3" } + proposal-logical-assignment-operators { "android":"3" } proposal-nullish-coalescing-operator { "android":"3" } proposal-optional-chaining { "android":"3" } proposal-json-strings { "android":"3" } @@ -43,6 +45,7 @@ Using plugins: transform-member-expression-literals { "android":"3" } transform-property-literals { "android":"3" } transform-reserved-words { "android":"3" } + proposal-export-namespace-from { "android":"3" } transform-modules-commonjs { "android":"3" } proposal-dynamic-import { "android":"3" } diff --git a/packages/babel-preset-env/test/fixtures/debug/browserslists-defaults-not-ie/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/browserslists-defaults-not-ie/stdout.txt index fe465acd41eb..7eae3b2e1545 100644 --- a/packages/babel-preset-env/test/fixtures/debug/browserslists-defaults-not-ie/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/browserslists-defaults-not-ie/stdout.txt @@ -2,7 +2,7 @@ Using targets: { - "android": "80", + "android": "81", "chrome": "80", "edge": "18", "firefox": "68", @@ -15,6 +15,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "edge":"18", "firefox":"68", "ios":"12.2", "samsung":"10.1" } + proposal-logical-assignment-operators { "android":"81", "chrome":"80", "edge":"18", "firefox":"68", "ios":"12.2", "opera":"67", "safari":"13", "samsung":"10.1" } proposal-nullish-coalescing-operator { "edge":"18", "firefox":"68", "ios":"12.2", "safari":"13", "samsung":"10.1" } proposal-optional-chaining { "edge":"18", "firefox":"68", "ios":"12.2", "safari":"13", "samsung":"10.1" } proposal-json-strings { "edge":"18" } @@ -26,7 +28,8 @@ Using plugins: transform-named-capturing-groups-regex { "edge":"18", "firefox":"68" } transform-template-literals { "ios":"12.2" } transform-function-name { "edge":"18" } - transform-modules-commonjs { "android":"80", "chrome":"80", "edge":"18", "firefox":"68", "ios":"12.2", "opera":"67", "safari":"13", "samsung":"10.1" } - proposal-dynamic-import { "android":"80", "chrome":"80", "edge":"18", "firefox":"68", "ios":"12.2", "opera":"67", "safari":"13", "samsung":"10.1" } + proposal-export-namespace-from { "edge":"18", "firefox":"68", "ios":"12.2", "safari":"13", "samsung":"10.1" } + transform-modules-commonjs { "android":"81", "chrome":"80", "edge":"18", "firefox":"68", "ios":"12.2", "opera":"67", "safari":"13", "samsung":"10.1" } + proposal-dynamic-import { "android":"81", "chrome":"80", "edge":"18", "firefox":"68", "ios":"12.2", "opera":"67", "safari":"13", "samsung":"10.1" } Using polyfills: No polyfills were added, since the `useBuiltIns` option was not set. diff --git a/packages/babel-preset-env/test/fixtures/debug/browserslists-defaults/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/browserslists-defaults/stdout.txt index e3f3af7200b7..f58db8062dbc 100644 --- a/packages/babel-preset-env/test/fixtures/debug/browserslists-defaults/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/browserslists-defaults/stdout.txt @@ -2,7 +2,7 @@ Using targets: { - "android": "80", + "android": "81", "chrome": "80", "edge": "18", "firefox": "68", @@ -16,6 +16,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "edge":"18", "firefox":"68", "ie":"11", "ios":"12.2", "samsung":"10.1" } + proposal-logical-assignment-operators { "android":"81", "chrome":"80", "edge":"18", "firefox":"68", "ie":"11", "ios":"12.2", "opera":"67", "safari":"13", "samsung":"10.1" } proposal-nullish-coalescing-operator { "edge":"18", "firefox":"68", "ie":"11", "ios":"12.2", "safari":"13", "samsung":"10.1" } proposal-optional-chaining { "edge":"18", "firefox":"68", "ie":"11", "ios":"12.2", "safari":"13", "samsung":"10.1" } proposal-json-strings { "edge":"18", "ie":"11" } @@ -47,7 +49,8 @@ Using plugins: transform-typeof-symbol { "ie":"11" } transform-new-target { "ie":"11" } transform-regenerator { "ie":"11" } - transform-modules-commonjs { "android":"80", "chrome":"80", "edge":"18", "firefox":"68", "ie":"11", "ios":"12.2", "opera":"67", "safari":"13", "samsung":"10.1" } - proposal-dynamic-import { "android":"80", "chrome":"80", "edge":"18", "firefox":"68", "ie":"11", "ios":"12.2", "opera":"67", "safari":"13", "samsung":"10.1" } + proposal-export-namespace-from { "edge":"18", "firefox":"68", "ie":"11", "ios":"12.2", "safari":"13", "samsung":"10.1" } + transform-modules-commonjs { "android":"81", "chrome":"80", "edge":"18", "firefox":"68", "ie":"11", "ios":"12.2", "opera":"67", "safari":"13", "samsung":"10.1" } + proposal-dynamic-import { "android":"81", "chrome":"80", "edge":"18", "firefox":"68", "ie":"11", "ios":"12.2", "opera":"67", "safari":"13", "samsung":"10.1" } Using polyfills: No polyfills were added, since the `useBuiltIns` option was not set. diff --git a/packages/babel-preset-env/test/fixtures/debug/browserslists-last-2-versions-not-ie/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/browserslists-last-2-versions-not-ie/stdout.txt index ded0e0bb3396..fd213a29df35 100644 --- a/packages/babel-preset-env/test/fixtures/debug/browserslists-last-2-versions-not-ie/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/browserslists-last-2-versions-not-ie/stdout.txt @@ -2,9 +2,9 @@ Using targets: { - "android": "80", - "chrome": "80", - "edge": "80", + "android": "81", + "chrome": "81", + "edge": "81", "firefox": "75", "ios": "13.3", "opera": "67", @@ -15,16 +15,19 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "samsung":"10.1" } + proposal-logical-assignment-operators { "android":"81", "chrome":"81", "edge":"81", "firefox":"75", "ios":"13.3", "opera":"67", "safari":"13", "samsung":"10.1" } proposal-nullish-coalescing-operator { "ios":"13.3", "safari":"13", "samsung":"10.1" } proposal-optional-chaining { "ios":"13.3", "safari":"13", "samsung":"10.1" } - syntax-json-strings { "android":"80", "chrome":"80", "edge":"80", "firefox":"75", "ios":"13.3", "opera":"67", "safari":"13", "samsung":"10.1" } - syntax-optional-catch-binding { "android":"80", "chrome":"80", "edge":"80", "firefox":"75", "ios":"13.3", "opera":"67", "safari":"13", "samsung":"10.1" } - syntax-async-generators { "android":"80", "chrome":"80", "edge":"80", "firefox":"75", "ios":"13.3", "opera":"67", "safari":"13", "samsung":"10.1" } - syntax-object-rest-spread { "android":"80", "chrome":"80", "edge":"80", "firefox":"75", "ios":"13.3", "opera":"67", "safari":"13", "samsung":"10.1" } + syntax-json-strings { "android":"81", "chrome":"81", "edge":"81", "firefox":"75", "ios":"13.3", "opera":"67", "safari":"13", "samsung":"10.1" } + syntax-optional-catch-binding { "android":"81", "chrome":"81", "edge":"81", "firefox":"75", "ios":"13.3", "opera":"67", "safari":"13", "samsung":"10.1" } + syntax-async-generators { "android":"81", "chrome":"81", "edge":"81", "firefox":"75", "ios":"13.3", "opera":"67", "safari":"13", "samsung":"10.1" } + syntax-object-rest-spread { "android":"81", "chrome":"81", "edge":"81", "firefox":"75", "ios":"13.3", "opera":"67", "safari":"13", "samsung":"10.1" } transform-dotall-regex { "firefox":"75" } proposal-unicode-property-regex { "firefox":"75" } transform-named-capturing-groups-regex { "firefox":"75" } - transform-modules-commonjs { "android":"80", "chrome":"80", "edge":"80", "firefox":"75", "ios":"13.3", "opera":"67", "safari":"13", "samsung":"10.1" } - proposal-dynamic-import { "android":"80", "chrome":"80", "edge":"80", "firefox":"75", "ios":"13.3", "opera":"67", "safari":"13", "samsung":"10.1" } + proposal-export-namespace-from { "firefox":"75", "ios":"13.3", "safari":"13", "samsung":"10.1" } + transform-modules-commonjs { "android":"81", "chrome":"81", "edge":"81", "firefox":"75", "ios":"13.3", "opera":"67", "safari":"13", "samsung":"10.1" } + proposal-dynamic-import { "android":"81", "chrome":"81", "edge":"81", "firefox":"75", "ios":"13.3", "opera":"67", "safari":"13", "samsung":"10.1" } Using polyfills: No polyfills were added, since the `useBuiltIns` option was not set. diff --git a/packages/babel-preset-env/test/fixtures/debug/corejs-without-usebuiltins/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/corejs-without-usebuiltins/stdout.txt index e38340b582aa..4e9aa05982c7 100644 --- a/packages/babel-preset-env/test/fixtures/debug/corejs-without-usebuiltins/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/corejs-without-usebuiltins/stdout.txt @@ -8,6 +8,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator {} + proposal-logical-assignment-operators {} proposal-nullish-coalescing-operator {} proposal-optional-chaining {} proposal-json-strings {} @@ -43,6 +45,7 @@ Using plugins: transform-member-expression-literals {} transform-property-literals {} transform-reserved-words {} + proposal-export-namespace-from {} transform-modules-commonjs {} proposal-dynamic-import {} diff --git a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-all-chrome-71/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-all-chrome-71/stdout.txt index 8e968656d58d..9426e1b9317e 100644 --- a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-all-chrome-71/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-all-chrome-71/stdout.txt @@ -8,15 +8,17 @@ Using targets: Using modules transform: auto Using plugins: - proposal-numeric-separator { "chrome":"71" } proposal-class-properties { "chrome":"71" } proposal-private-methods { "chrome":"71" } + proposal-numeric-separator { "chrome":"71" } + proposal-logical-assignment-operators { "chrome":"71" } proposal-nullish-coalescing-operator { "chrome":"71" } proposal-optional-chaining { "chrome":"71" } syntax-json-strings { "chrome":"71" } syntax-optional-catch-binding { "chrome":"71" } syntax-async-generators { "chrome":"71" } syntax-object-rest-spread { "chrome":"71" } + proposal-export-namespace-from { "chrome":"71" } transform-modules-commonjs { "chrome":"71" } proposal-dynamic-import { "chrome":"71" } diff --git a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-all/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-all/stdout.txt index e2839423b735..fcd4ef066506 100644 --- a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-all/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-all/stdout.txt @@ -6,9 +6,10 @@ Using targets: Using modules transform: auto Using plugins: - proposal-numeric-separator {} proposal-class-properties {} proposal-private-methods {} + proposal-numeric-separator {} + proposal-logical-assignment-operators {} proposal-nullish-coalescing-operator {} proposal-optional-chaining {} proposal-json-strings {} @@ -44,6 +45,7 @@ Using plugins: transform-member-expression-literals {} transform-property-literals {} transform-reserved-words {} + proposal-export-namespace-from {} transform-modules-commonjs {} proposal-dynamic-import {} diff --git a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-android/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-android/stdout.txt index 2598ed3ad41d..5238af8b0a56 100644 --- a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-android/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-android/stdout.txt @@ -8,6 +8,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "android":"4" } + proposal-logical-assignment-operators { "android":"4" } proposal-nullish-coalescing-operator { "android":"4" } proposal-optional-chaining { "android":"4" } proposal-json-strings { "android":"4" } @@ -41,6 +43,7 @@ Using plugins: transform-new-target { "android":"4" } transform-regenerator { "android":"4" } transform-reserved-words { "android":"4" } + proposal-export-namespace-from { "android":"4" } transform-modules-commonjs { "android":"4" } proposal-dynamic-import { "android":"4" } diff --git a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-babel-polyfill/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-babel-polyfill/stdout.txt index 6e1869e102e8..0efbbce4ca9e 100644 --- a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-babel-polyfill/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-babel-polyfill/stdout.txt @@ -6,9 +6,10 @@ Using targets: Using modules transform: auto Using plugins: - proposal-numeric-separator {} proposal-class-properties {} proposal-private-methods {} + proposal-numeric-separator {} + proposal-logical-assignment-operators {} proposal-nullish-coalescing-operator {} proposal-optional-chaining {} proposal-json-strings {} @@ -44,6 +45,7 @@ Using plugins: transform-member-expression-literals {} transform-property-literals {} transform-reserved-words {} + proposal-export-namespace-from {} transform-modules-commonjs {} proposal-dynamic-import {} diff --git a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-electron/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-electron/stdout.txt index 579c0bbddc0c..f8d01520ab9a 100644 --- a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-electron/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-electron/stdout.txt @@ -15,6 +15,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "electron":"0.36" } + proposal-logical-assignment-operators { "electron":"0.36" } proposal-nullish-coalescing-operator { "electron":"0.36" } proposal-optional-chaining { "electron":"0.36" } proposal-json-strings { "electron":"0.36" } @@ -34,6 +36,7 @@ Using plugins: transform-destructuring { "electron":"0.36" } transform-block-scoping { "electron":"0.36" } transform-regenerator { "electron":"0.36" } + proposal-export-namespace-from { "electron":"0.36" } transform-modules-commonjs { "electron":"0.36" } proposal-dynamic-import { "electron":"0.36" } diff --git a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-es-chrome-71/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-es-chrome-71/stdout.txt index fb530d67d5f6..d759d177a9be 100644 --- a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-es-chrome-71/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-es-chrome-71/stdout.txt @@ -8,15 +8,17 @@ Using targets: Using modules transform: auto Using plugins: - proposal-numeric-separator { "chrome":"71" } proposal-class-properties { "chrome":"71" } proposal-private-methods { "chrome":"71" } + proposal-numeric-separator { "chrome":"71" } + proposal-logical-assignment-operators { "chrome":"71" } proposal-nullish-coalescing-operator { "chrome":"71" } proposal-optional-chaining { "chrome":"71" } syntax-json-strings { "chrome":"71" } syntax-optional-catch-binding { "chrome":"71" } syntax-async-generators { "chrome":"71" } syntax-object-rest-spread { "chrome":"71" } + proposal-export-namespace-from { "chrome":"71" } transform-modules-commonjs { "chrome":"71" } proposal-dynamic-import { "chrome":"71" } diff --git a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-es-proposals-chrome-71/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-es-proposals-chrome-71/stdout.txt index 74af31dbbc93..5f3495cac1b5 100644 --- a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-es-proposals-chrome-71/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-es-proposals-chrome-71/stdout.txt @@ -8,15 +8,17 @@ Using targets: Using modules transform: auto Using plugins: - proposal-numeric-separator { "chrome":"71" } proposal-class-properties { "chrome":"71" } proposal-private-methods { "chrome":"71" } + proposal-numeric-separator { "chrome":"71" } + proposal-logical-assignment-operators { "chrome":"71" } proposal-nullish-coalescing-operator { "chrome":"71" } proposal-optional-chaining { "chrome":"71" } syntax-json-strings { "chrome":"71" } syntax-optional-catch-binding { "chrome":"71" } syntax-async-generators { "chrome":"71" } syntax-object-rest-spread { "chrome":"71" } + proposal-export-namespace-from { "chrome":"71" } transform-modules-commonjs { "chrome":"71" } proposal-dynamic-import { "chrome":"71" } diff --git a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-es-proposals/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-es-proposals/stdout.txt index 577d9c5ae884..c7451e2bc054 100644 --- a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-es-proposals/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-es-proposals/stdout.txt @@ -6,9 +6,10 @@ Using targets: Using modules transform: auto Using plugins: - proposal-numeric-separator {} proposal-class-properties {} proposal-private-methods {} + proposal-numeric-separator {} + proposal-logical-assignment-operators {} proposal-nullish-coalescing-operator {} proposal-optional-chaining {} proposal-json-strings {} @@ -44,6 +45,7 @@ Using plugins: transform-member-expression-literals {} transform-property-literals {} transform-reserved-words {} + proposal-export-namespace-from {} transform-modules-commonjs {} proposal-dynamic-import {} diff --git a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-es/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-es/stdout.txt index 30af4f73802b..eb3dcd27ecff 100644 --- a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-es/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-es/stdout.txt @@ -6,9 +6,10 @@ Using targets: Using modules transform: auto Using plugins: - proposal-numeric-separator {} proposal-class-properties {} proposal-private-methods {} + proposal-numeric-separator {} + proposal-logical-assignment-operators {} proposal-nullish-coalescing-operator {} proposal-optional-chaining {} proposal-json-strings {} @@ -44,6 +45,7 @@ Using plugins: transform-member-expression-literals {} transform-property-literals {} transform-reserved-words {} + proposal-export-namespace-from {} transform-modules-commonjs {} proposal-dynamic-import {} diff --git a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-force-all-transforms/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-force-all-transforms/stdout.txt index 621510c0caa6..de53cfae68fc 100644 --- a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-force-all-transforms/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-force-all-transforms/stdout.txt @@ -8,6 +8,8 @@ Using targets: Using modules transform: false Using plugins: + proposal-numeric-separator { "chrome":"55" } + proposal-logical-assignment-operators { "chrome":"55" } proposal-nullish-coalescing-operator { "chrome":"55" } proposal-optional-chaining { "chrome":"55" } proposal-json-strings { "chrome":"55" } @@ -43,6 +45,7 @@ Using plugins: transform-member-expression-literals {} transform-property-literals {} transform-reserved-words {} + proposal-export-namespace-from { "chrome":"55" } syntax-dynamic-import { "chrome":"55" } Using polyfills with `entry` option: diff --git a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-no-import/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-no-import/stdout.txt index d0765709ed86..32cb32835499 100644 --- a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-no-import/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-no-import/stdout.txt @@ -8,6 +8,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "node":"6" } + proposal-logical-assignment-operators { "node":"6" } proposal-nullish-coalescing-operator { "node":"6" } proposal-optional-chaining { "node":"6" } proposal-json-strings { "node":"6" } @@ -22,6 +24,7 @@ Using plugins: transform-function-name { "node":"6" } transform-for-of { "node":"6" } transform-destructuring { "node":"6" } + proposal-export-namespace-from { "node":"6" } transform-modules-commonjs { "node":"6" } proposal-dynamic-import { "node":"6" } diff --git a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-proposals-chrome-71/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-proposals-chrome-71/stdout.txt index e68ee42d02c5..d2ec61e12aa5 100644 --- a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-proposals-chrome-71/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-proposals-chrome-71/stdout.txt @@ -8,12 +8,15 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "chrome":"71" } + proposal-logical-assignment-operators { "chrome":"71" } proposal-nullish-coalescing-operator { "chrome":"71" } proposal-optional-chaining { "chrome":"71" } syntax-json-strings { "chrome":"71" } syntax-optional-catch-binding { "chrome":"71" } syntax-async-generators { "chrome":"71" } syntax-object-rest-spread { "chrome":"71" } + proposal-export-namespace-from { "chrome":"71" } transform-modules-commonjs { "chrome":"71" } proposal-dynamic-import { "chrome":"71" } diff --git a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-proposals/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-proposals/stdout.txt index 5be4733d347c..cea01d65568b 100644 --- a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-proposals/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-proposals/stdout.txt @@ -6,6 +6,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator {} + proposal-logical-assignment-operators {} proposal-nullish-coalescing-operator {} proposal-optional-chaining {} proposal-json-strings {} @@ -41,6 +43,7 @@ Using plugins: transform-member-expression-literals {} transform-property-literals {} transform-reserved-words {} + proposal-export-namespace-from {} transform-modules-commonjs {} proposal-dynamic-import {} diff --git a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-runtime-only-chrome-71/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-runtime-only-chrome-71/stdout.txt index 59897d90fb9f..cbe85abc6148 100644 --- a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-runtime-only-chrome-71/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-runtime-only-chrome-71/stdout.txt @@ -8,15 +8,17 @@ Using targets: Using modules transform: auto Using plugins: - proposal-numeric-separator { "chrome":"71" } proposal-class-properties { "chrome":"71" } proposal-private-methods { "chrome":"71" } + proposal-numeric-separator { "chrome":"71" } + proposal-logical-assignment-operators { "chrome":"71" } proposal-nullish-coalescing-operator { "chrome":"71" } proposal-optional-chaining { "chrome":"71" } syntax-json-strings { "chrome":"71" } syntax-optional-catch-binding { "chrome":"71" } syntax-async-generators { "chrome":"71" } syntax-object-rest-spread { "chrome":"71" } + proposal-export-namespace-from { "chrome":"71" } transform-modules-commonjs { "chrome":"71" } proposal-dynamic-import { "chrome":"71" } diff --git a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-runtime-only/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-runtime-only/stdout.txt index 8e822ee48c6e..448fd024481e 100644 --- a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-runtime-only/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-runtime-only/stdout.txt @@ -8,15 +8,17 @@ Using targets: Using modules transform: auto Using plugins: - proposal-numeric-separator { "chrome":"71" } proposal-class-properties { "chrome":"71" } proposal-private-methods { "chrome":"71" } + proposal-numeric-separator { "chrome":"71" } + proposal-logical-assignment-operators { "chrome":"71" } proposal-nullish-coalescing-operator { "chrome":"71" } proposal-optional-chaining { "chrome":"71" } syntax-json-strings { "chrome":"71" } syntax-optional-catch-binding { "chrome":"71" } syntax-async-generators { "chrome":"71" } syntax-object-rest-spread { "chrome":"71" } + proposal-export-namespace-from { "chrome":"71" } transform-modules-commonjs { "chrome":"71" } proposal-dynamic-import { "chrome":"71" } diff --git a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-specific-entries-chrome-71/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-specific-entries-chrome-71/stdout.txt index 4d28007cce1b..46603c51245d 100644 --- a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-specific-entries-chrome-71/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-specific-entries-chrome-71/stdout.txt @@ -8,15 +8,17 @@ Using targets: Using modules transform: auto Using plugins: - proposal-numeric-separator { "chrome":"71" } proposal-class-properties { "chrome":"71" } proposal-private-methods { "chrome":"71" } + proposal-numeric-separator { "chrome":"71" } + proposal-logical-assignment-operators { "chrome":"71" } proposal-nullish-coalescing-operator { "chrome":"71" } proposal-optional-chaining { "chrome":"71" } syntax-json-strings { "chrome":"71" } syntax-optional-catch-binding { "chrome":"71" } syntax-async-generators { "chrome":"71" } syntax-object-rest-spread { "chrome":"71" } + proposal-export-namespace-from { "chrome":"71" } transform-modules-commonjs { "chrome":"71" } proposal-dynamic-import { "chrome":"71" } diff --git a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-specific-entries/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-specific-entries/stdout.txt index b1e37918f018..735ba6cfe664 100644 --- a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-specific-entries/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-specific-entries/stdout.txt @@ -6,9 +6,10 @@ Using targets: Using modules transform: auto Using plugins: - proposal-numeric-separator {} proposal-class-properties {} proposal-private-methods {} + proposal-numeric-separator {} + proposal-logical-assignment-operators {} proposal-nullish-coalescing-operator {} proposal-optional-chaining {} proposal-json-strings {} @@ -44,6 +45,7 @@ Using plugins: transform-member-expression-literals {} transform-property-literals {} transform-reserved-words {} + proposal-export-namespace-from {} transform-modules-commonjs {} proposal-dynamic-import {} diff --git a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-specific-targets/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-specific-targets/stdout.txt index 72bcc4bcad1d..a6775e4c1760 100644 --- a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-specific-targets/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-specific-targets/stdout.txt @@ -13,6 +13,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + proposal-logical-assignment-operators { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } proposal-nullish-coalescing-operator { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } proposal-optional-chaining { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } proposal-json-strings { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } @@ -45,6 +47,7 @@ Using plugins: transform-typeof-symbol { "ie":"10", "safari":"7" } transform-new-target { "edge":"13", "ie":"10", "ios":"9", "safari":"7" } transform-regenerator { "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } + proposal-export-namespace-from { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } transform-modules-commonjs { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } proposal-dynamic-import { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } diff --git a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-stable-chrome-71/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-stable-chrome-71/stdout.txt index 19f5637cd2b4..dbf6c1d8fba0 100644 --- a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-stable-chrome-71/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-stable-chrome-71/stdout.txt @@ -8,15 +8,17 @@ Using targets: Using modules transform: auto Using plugins: - proposal-numeric-separator { "chrome":"71" } proposal-class-properties { "chrome":"71" } proposal-private-methods { "chrome":"71" } + proposal-numeric-separator { "chrome":"71" } + proposal-logical-assignment-operators { "chrome":"71" } proposal-nullish-coalescing-operator { "chrome":"71" } proposal-optional-chaining { "chrome":"71" } syntax-json-strings { "chrome":"71" } syntax-optional-catch-binding { "chrome":"71" } syntax-async-generators { "chrome":"71" } syntax-object-rest-spread { "chrome":"71" } + proposal-export-namespace-from { "chrome":"71" } transform-modules-commonjs { "chrome":"71" } proposal-dynamic-import { "chrome":"71" } diff --git a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-stable-samsung-8.2/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-stable-samsung-8.2/stdout.txt index 20db6564358a..64de7513aadf 100644 --- a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-stable-samsung-8.2/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-stable-samsung-8.2/stdout.txt @@ -8,9 +8,10 @@ Using targets: Using modules transform: auto Using plugins: - proposal-numeric-separator { "samsung":"8.2" } proposal-class-properties { "samsung":"8.2" } proposal-private-methods { "samsung":"8.2" } + proposal-numeric-separator { "samsung":"8.2" } + proposal-logical-assignment-operators { "samsung":"8.2" } proposal-nullish-coalescing-operator { "samsung":"8.2" } proposal-optional-chaining { "samsung":"8.2" } proposal-json-strings { "samsung":"8.2" } @@ -19,6 +20,7 @@ Using plugins: syntax-object-rest-spread { "samsung":"8.2" } proposal-unicode-property-regex { "samsung":"8.2" } transform-named-capturing-groups-regex { "samsung":"8.2" } + proposal-export-namespace-from { "samsung":"8.2" } transform-modules-commonjs { "samsung":"8.2" } proposal-dynamic-import { "samsung":"8.2" } diff --git a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-stable/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-stable/stdout.txt index 5a2bf8ca1996..a178e13a0a06 100644 --- a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-stable/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-stable/stdout.txt @@ -6,9 +6,10 @@ Using targets: Using modules transform: auto Using plugins: - proposal-numeric-separator {} proposal-class-properties {} proposal-private-methods {} + proposal-numeric-separator {} + proposal-logical-assignment-operators {} proposal-nullish-coalescing-operator {} proposal-optional-chaining {} proposal-json-strings {} @@ -44,6 +45,7 @@ Using plugins: transform-member-expression-literals {} transform-property-literals {} transform-reserved-words {} + proposal-export-namespace-from {} transform-modules-commonjs {} proposal-dynamic-import {} diff --git a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-stage-chrome-71/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-stage-chrome-71/stdout.txt index 5e7c3a6c5dd7..deaea34b845f 100644 --- a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-stage-chrome-71/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-stage-chrome-71/stdout.txt @@ -8,15 +8,17 @@ Using targets: Using modules transform: auto Using plugins: - proposal-numeric-separator { "chrome":"71" } proposal-class-properties { "chrome":"71" } proposal-private-methods { "chrome":"71" } + proposal-numeric-separator { "chrome":"71" } + proposal-logical-assignment-operators { "chrome":"71" } proposal-nullish-coalescing-operator { "chrome":"71" } proposal-optional-chaining { "chrome":"71" } syntax-json-strings { "chrome":"71" } syntax-optional-catch-binding { "chrome":"71" } syntax-async-generators { "chrome":"71" } syntax-object-rest-spread { "chrome":"71" } + proposal-export-namespace-from { "chrome":"71" } transform-modules-commonjs { "chrome":"71" } proposal-dynamic-import { "chrome":"71" } diff --git a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-stage/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-stage/stdout.txt index e2383378f7d9..b51278947e1b 100644 --- a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-stage/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-stage/stdout.txt @@ -6,9 +6,10 @@ Using targets: Using modules transform: auto Using plugins: - proposal-numeric-separator {} proposal-class-properties {} proposal-private-methods {} + proposal-numeric-separator {} + proposal-logical-assignment-operators {} proposal-nullish-coalescing-operator {} proposal-optional-chaining {} proposal-json-strings {} @@ -44,6 +45,7 @@ Using plugins: transform-member-expression-literals {} transform-property-literals {} transform-reserved-words {} + proposal-export-namespace-from {} transform-modules-commonjs {} proposal-dynamic-import {} diff --git a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-versions-decimals/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-versions-decimals/stdout.txt index e0bc3e59b5cf..c51b4f249bcb 100644 --- a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-versions-decimals/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-versions-decimals/stdout.txt @@ -19,6 +19,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } + proposal-logical-assignment-operators { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } proposal-nullish-coalescing-operator { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } proposal-optional-chaining { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } proposal-json-strings { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } @@ -51,6 +53,7 @@ Using plugins: transform-typeof-symbol { "ie":"10" } transform-new-target { "ie":"10" } transform-regenerator { "electron":"0.36", "ie":"10" } + proposal-export-namespace-from { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } transform-modules-commonjs { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } proposal-dynamic-import { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } diff --git a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-versions-strings-minor-3.0/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-versions-strings-minor-3.0/stdout.txt index a791fa8bb25c..496785ee9a62 100644 --- a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-versions-strings-minor-3.0/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-versions-strings-minor-3.0/stdout.txt @@ -10,6 +10,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "chrome":"54", "ie":"10", "node":"6.10" } + proposal-logical-assignment-operators { "chrome":"54", "ie":"10", "node":"6.10" } proposal-nullish-coalescing-operator { "chrome":"54", "ie":"10", "node":"6.10" } proposal-optional-chaining { "chrome":"54", "ie":"10", "node":"6.10" } proposal-json-strings { "chrome":"54", "ie":"10", "node":"6.10" } @@ -42,6 +44,7 @@ Using plugins: transform-typeof-symbol { "ie":"10" } transform-new-target { "ie":"10" } transform-regenerator { "ie":"10" } + proposal-export-namespace-from { "chrome":"54", "ie":"10", "node":"6.10" } transform-modules-commonjs { "chrome":"54", "ie":"10", "node":"6.10" } proposal-dynamic-import { "chrome":"54", "ie":"10", "node":"6.10" } diff --git a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-versions-strings-minor-3.1/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-versions-strings-minor-3.1/stdout.txt index 038f04373173..852333934ea0 100644 --- a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-versions-strings-minor-3.1/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-versions-strings-minor-3.1/stdout.txt @@ -10,6 +10,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "chrome":"54", "ie":"10", "node":"6.10" } + proposal-logical-assignment-operators { "chrome":"54", "ie":"10", "node":"6.10" } proposal-nullish-coalescing-operator { "chrome":"54", "ie":"10", "node":"6.10" } proposal-optional-chaining { "chrome":"54", "ie":"10", "node":"6.10" } proposal-json-strings { "chrome":"54", "ie":"10", "node":"6.10" } @@ -42,6 +44,7 @@ Using plugins: transform-typeof-symbol { "ie":"10" } transform-new-target { "ie":"10" } transform-regenerator { "ie":"10" } + proposal-export-namespace-from { "chrome":"54", "ie":"10", "node":"6.10" } transform-modules-commonjs { "chrome":"54", "ie":"10", "node":"6.10" } proposal-dynamic-import { "chrome":"54", "ie":"10", "node":"6.10" } diff --git a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-versions-strings/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-versions-strings/stdout.txt index 046ba9c43aa8..e797d7dbe540 100644 --- a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-versions-strings/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-versions-strings/stdout.txt @@ -10,6 +10,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "chrome":"54", "ie":"10", "node":"6.10" } + proposal-logical-assignment-operators { "chrome":"54", "ie":"10", "node":"6.10" } proposal-nullish-coalescing-operator { "chrome":"54", "ie":"10", "node":"6.10" } proposal-optional-chaining { "chrome":"54", "ie":"10", "node":"6.10" } proposal-json-strings { "chrome":"54", "ie":"10", "node":"6.10" } @@ -42,6 +44,7 @@ Using plugins: transform-typeof-symbol { "ie":"10" } transform-new-target { "ie":"10" } transform-regenerator { "ie":"10" } + proposal-export-namespace-from { "chrome":"54", "ie":"10", "node":"6.10" } transform-modules-commonjs { "chrome":"54", "ie":"10", "node":"6.10" } proposal-dynamic-import { "chrome":"54", "ie":"10", "node":"6.10" } diff --git a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-web-chrome-71/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-web-chrome-71/stdout.txt index 4ece0a3cf132..b1b7d0718dc5 100644 --- a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-web-chrome-71/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-web-chrome-71/stdout.txt @@ -8,15 +8,17 @@ Using targets: Using modules transform: auto Using plugins: - proposal-numeric-separator { "chrome":"71" } proposal-class-properties { "chrome":"71" } proposal-private-methods { "chrome":"71" } + proposal-numeric-separator { "chrome":"71" } + proposal-logical-assignment-operators { "chrome":"71" } proposal-nullish-coalescing-operator { "chrome":"71" } proposal-optional-chaining { "chrome":"71" } syntax-json-strings { "chrome":"71" } syntax-optional-catch-binding { "chrome":"71" } syntax-async-generators { "chrome":"71" } syntax-object-rest-spread { "chrome":"71" } + proposal-export-namespace-from { "chrome":"71" } transform-modules-commonjs { "chrome":"71" } proposal-dynamic-import { "chrome":"71" } diff --git a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-web/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-web/stdout.txt index 0f980182f166..73635abb829f 100644 --- a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-web/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3-web/stdout.txt @@ -6,9 +6,10 @@ Using targets: Using modules transform: auto Using plugins: - proposal-numeric-separator {} proposal-class-properties {} proposal-private-methods {} + proposal-numeric-separator {} + proposal-logical-assignment-operators {} proposal-nullish-coalescing-operator {} proposal-optional-chaining {} proposal-json-strings {} @@ -44,6 +45,7 @@ Using plugins: transform-member-expression-literals {} transform-property-literals {} transform-reserved-words {} + proposal-export-namespace-from {} transform-modules-commonjs {} proposal-dynamic-import {} diff --git a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3/stdout.txt index bb15384ae70c..2c59258250b2 100644 --- a/packages/babel-preset-env/test/fixtures/debug/entry-corejs3/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/entry-corejs3/stdout.txt @@ -10,6 +10,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "chrome":"54", "ie":"10", "node":"6" } + proposal-logical-assignment-operators { "chrome":"54", "ie":"10", "node":"6" } proposal-nullish-coalescing-operator { "chrome":"54", "ie":"10", "node":"6" } proposal-optional-chaining { "chrome":"54", "ie":"10", "node":"6" } proposal-json-strings { "chrome":"54", "ie":"10", "node":"6" } @@ -42,6 +44,7 @@ Using plugins: transform-typeof-symbol { "ie":"10" } transform-new-target { "ie":"10" } transform-regenerator { "ie":"10" } + proposal-export-namespace-from { "chrome":"54", "ie":"10", "node":"6" } transform-modules-commonjs { "chrome":"54", "ie":"10", "node":"6" } proposal-dynamic-import { "chrome":"54", "ie":"10", "node":"6" } diff --git a/packages/babel-preset-env/test/fixtures/debug/entry-no-corejs-no-import/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/entry-no-corejs-no-import/stdout.txt index f6750e6c31b8..bab734e37c19 100644 --- a/packages/babel-preset-env/test/fixtures/debug/entry-no-corejs-no-import/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/entry-no-corejs-no-import/stdout.txt @@ -8,6 +8,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "node":"6" } + proposal-logical-assignment-operators { "node":"6" } proposal-nullish-coalescing-operator { "node":"6" } proposal-optional-chaining { "node":"6" } proposal-json-strings { "node":"6" } @@ -22,6 +24,7 @@ Using plugins: transform-function-name { "node":"6" } transform-for-of { "node":"6" } transform-destructuring { "node":"6" } + proposal-export-namespace-from { "node":"6" } transform-modules-commonjs { "node":"6" } proposal-dynamic-import { "node":"6" } diff --git a/packages/babel-preset-env/test/fixtures/debug/entry-no-corejs-shippedProposals/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/entry-no-corejs-shippedProposals/stdout.txt index c4dfb78c3672..95194052eb98 100644 --- a/packages/babel-preset-env/test/fixtures/debug/entry-no-corejs-shippedProposals/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/entry-no-corejs-shippedProposals/stdout.txt @@ -6,9 +6,10 @@ Using targets: Using modules transform: auto Using plugins: - proposal-numeric-separator {} proposal-class-properties {} proposal-private-methods {} + proposal-numeric-separator {} + proposal-logical-assignment-operators {} proposal-nullish-coalescing-operator {} proposal-optional-chaining {} proposal-json-strings {} @@ -44,6 +45,7 @@ Using plugins: transform-member-expression-literals {} transform-property-literals {} transform-reserved-words {} + proposal-export-namespace-from {} transform-modules-commonjs {} proposal-dynamic-import {} diff --git a/packages/babel-preset-env/test/fixtures/debug/entry-no-corejs/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/entry-no-corejs/stdout.txt index 18d494d25d49..8d43163d36b9 100644 --- a/packages/babel-preset-env/test/fixtures/debug/entry-no-corejs/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/entry-no-corejs/stdout.txt @@ -10,6 +10,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "chrome":"54", "ie":"10", "node":"6" } + proposal-logical-assignment-operators { "chrome":"54", "ie":"10", "node":"6" } proposal-nullish-coalescing-operator { "chrome":"54", "ie":"10", "node":"6" } proposal-optional-chaining { "chrome":"54", "ie":"10", "node":"6" } proposal-json-strings { "chrome":"54", "ie":"10", "node":"6" } @@ -42,6 +44,7 @@ Using plugins: transform-typeof-symbol { "ie":"10" } transform-new-target { "ie":"10" } transform-regenerator { "ie":"10" } + proposal-export-namespace-from { "chrome":"54", "ie":"10", "node":"6" } transform-modules-commonjs { "chrome":"54", "ie":"10", "node":"6" } proposal-dynamic-import { "chrome":"54", "ie":"10", "node":"6" } diff --git a/packages/babel-preset-env/test/fixtures/debug/plugins-only/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/plugins-only/stdout.txt index d03017f54097..66e78828d9a2 100644 --- a/packages/babel-preset-env/test/fixtures/debug/plugins-only/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/plugins-only/stdout.txt @@ -16,6 +16,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "firefox":"52", "node":"7.4" } + proposal-logical-assignment-operators { "firefox":"52", "node":"7.4" } proposal-nullish-coalescing-operator { "firefox":"52", "node":"7.4" } proposal-optional-chaining { "firefox":"52", "node":"7.4" } proposal-json-strings { "firefox":"52", "node":"7.4" } @@ -30,6 +32,7 @@ Using plugins: transform-for-of { "firefox":"52" } transform-unicode-escapes { "firefox":"52" } transform-destructuring { "firefox":"52" } + proposal-export-namespace-from { "firefox":"52", "node":"7.4" } transform-modules-commonjs { "firefox":"52", "node":"7.4" } proposal-dynamic-import { "firefox":"52", "node":"7.4" } diff --git a/packages/babel-preset-env/test/fixtures/debug/shippedProposals-chrome-80/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/shippedProposals-chrome-80/stdout.txt index 4589851ccb4e..de118c5fbafc 100644 --- a/packages/babel-preset-env/test/fixtures/debug/shippedProposals-chrome-80/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/shippedProposals-chrome-80/stdout.txt @@ -8,9 +8,10 @@ Using targets: Using modules transform: auto Using plugins: - syntax-numeric-separator { "chrome":"80" } proposal-class-properties { "chrome":"80" } proposal-private-methods { "chrome":"80" } + syntax-numeric-separator { "chrome":"80" } + proposal-logical-assignment-operators { "chrome":"80" } syntax-nullish-coalescing-operator { "chrome":"80" } syntax-optional-chaining { "chrome":"80" } syntax-json-strings { "chrome":"80" } @@ -19,5 +20,6 @@ Using plugins: syntax-object-rest-spread { "chrome":"80" } transform-modules-commonjs { "chrome":"80" } proposal-dynamic-import { "chrome":"80" } + proposal-export-namespace-from {} Using polyfills: No polyfills were added, since the `useBuiltIns` option was not set. diff --git a/packages/babel-preset-env/test/fixtures/debug/shippedProposals-chrome-84/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/shippedProposals-chrome-84/stdout.txt index fcaa34179929..32f5d7496709 100644 --- a/packages/babel-preset-env/test/fixtures/debug/shippedProposals-chrome-84/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/shippedProposals-chrome-84/stdout.txt @@ -8,8 +8,9 @@ Using targets: Using modules transform: auto Using plugins: - syntax-numeric-separator { "chrome":"84" } syntax-class-properties { "chrome":"84" } + syntax-numeric-separator { "chrome":"84" } + proposal-logical-assignment-operators { "chrome":"84" } syntax-nullish-coalescing-operator { "chrome":"84" } syntax-optional-chaining { "chrome":"84" } syntax-json-strings { "chrome":"84" } @@ -18,5 +19,6 @@ Using plugins: syntax-object-rest-spread { "chrome":"84" } transform-modules-commonjs { "chrome":"84" } proposal-dynamic-import { "chrome":"84" } + proposal-export-namespace-from {} Using polyfills: No polyfills were added, since the `useBuiltIns` option was not set. diff --git a/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-1/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-1/stdout.txt index b72e59025a8b..3f08c1758034 100644 --- a/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-1/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-1/stdout.txt @@ -10,6 +10,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-logical-assignment-operators { "chrome":"52", "firefox":"50", "ie":"11" } proposal-nullish-coalescing-operator { "chrome":"52", "firefox":"50", "ie":"11" } proposal-optional-chaining { "chrome":"52", "firefox":"50", "ie":"11" } proposal-json-strings { "chrome":"52", "firefox":"50", "ie":"11" } @@ -41,6 +43,7 @@ Using plugins: transform-typeof-symbol { "ie":"11" } transform-new-target { "ie":"11" } transform-regenerator { "firefox":"50", "ie":"11" } + proposal-export-namespace-from { "chrome":"52", "firefox":"50", "ie":"11" } transform-modules-commonjs { "chrome":"52", "firefox":"50", "ie":"11" } proposal-dynamic-import { "chrome":"52", "firefox":"50", "ie":"11" } diff --git a/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-2/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-2/stdout.txt index 64bedff98a21..4083153255c9 100644 --- a/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-2/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-2/stdout.txt @@ -10,6 +10,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-logical-assignment-operators { "chrome":"52", "firefox":"50", "ie":"11" } proposal-nullish-coalescing-operator { "chrome":"52", "firefox":"50", "ie":"11" } proposal-optional-chaining { "chrome":"52", "firefox":"50", "ie":"11" } proposal-json-strings { "chrome":"52", "firefox":"50", "ie":"11" } @@ -41,6 +43,7 @@ Using plugins: transform-typeof-symbol { "ie":"11" } transform-new-target { "ie":"11" } transform-regenerator { "firefox":"50", "ie":"11" } + proposal-export-namespace-from { "chrome":"52", "firefox":"50", "ie":"11" } transform-modules-commonjs { "chrome":"52", "firefox":"50", "ie":"11" } proposal-dynamic-import { "chrome":"52", "firefox":"50", "ie":"11" } diff --git a/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-chrome-71-1/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-chrome-71-1/stdout.txt index 91f9f62e9885..b1dc294de984 100644 --- a/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-chrome-71-1/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-chrome-71-1/stdout.txt @@ -8,12 +8,15 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "chrome":"71" } + proposal-logical-assignment-operators { "chrome":"71" } proposal-nullish-coalescing-operator { "chrome":"71" } proposal-optional-chaining { "chrome":"71" } syntax-json-strings { "chrome":"71" } syntax-optional-catch-binding { "chrome":"71" } syntax-async-generators { "chrome":"71" } syntax-object-rest-spread { "chrome":"71" } + proposal-export-namespace-from { "chrome":"71" } transform-modules-commonjs { "chrome":"71" } proposal-dynamic-import { "chrome":"71" } diff --git a/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-chrome-71-2/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-chrome-71-2/stdout.txt index dfeb23a0356a..6256191ca51a 100644 --- a/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-chrome-71-2/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-chrome-71-2/stdout.txt @@ -8,12 +8,15 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "chrome":"71" } + proposal-logical-assignment-operators { "chrome":"71" } proposal-nullish-coalescing-operator { "chrome":"71" } proposal-optional-chaining { "chrome":"71" } syntax-json-strings { "chrome":"71" } syntax-optional-catch-binding { "chrome":"71" } syntax-async-generators { "chrome":"71" } syntax-object-rest-spread { "chrome":"71" } + proposal-export-namespace-from { "chrome":"71" } transform-modules-commonjs { "chrome":"71" } proposal-dynamic-import { "chrome":"71" } diff --git a/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-none-1/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-none-1/stdout.txt index 20f2154d7384..8f5013c38de8 100644 --- a/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-none-1/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-none-1/stdout.txt @@ -10,6 +10,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-logical-assignment-operators { "chrome":"52", "firefox":"50", "ie":"11" } proposal-nullish-coalescing-operator { "chrome":"52", "firefox":"50", "ie":"11" } proposal-optional-chaining { "chrome":"52", "firefox":"50", "ie":"11" } proposal-json-strings { "chrome":"52", "firefox":"50", "ie":"11" } @@ -41,6 +43,7 @@ Using plugins: transform-typeof-symbol { "ie":"11" } transform-new-target { "ie":"11" } transform-regenerator { "firefox":"50", "ie":"11" } + proposal-export-namespace-from { "chrome":"52", "firefox":"50", "ie":"11" } transform-modules-commonjs { "chrome":"52", "firefox":"50", "ie":"11" } proposal-dynamic-import { "chrome":"52", "firefox":"50", "ie":"11" } diff --git a/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-none-2/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-none-2/stdout.txt index 3bb3da9097ed..8bc949ecf280 100644 --- a/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-none-2/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-none-2/stdout.txt @@ -10,6 +10,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-logical-assignment-operators { "chrome":"52", "firefox":"50", "ie":"11" } proposal-nullish-coalescing-operator { "chrome":"52", "firefox":"50", "ie":"11" } proposal-optional-chaining { "chrome":"52", "firefox":"50", "ie":"11" } proposal-json-strings { "chrome":"52", "firefox":"50", "ie":"11" } @@ -41,6 +43,7 @@ Using plugins: transform-typeof-symbol { "ie":"11" } transform-new-target { "ie":"11" } transform-regenerator { "firefox":"50", "ie":"11" } + proposal-export-namespace-from { "chrome":"52", "firefox":"50", "ie":"11" } transform-modules-commonjs { "chrome":"52", "firefox":"50", "ie":"11" } proposal-dynamic-import { "chrome":"52", "firefox":"50", "ie":"11" } diff --git a/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-proposals-1/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-proposals-1/stdout.txt index 19a90b47adc9..f2b78cd8c281 100644 --- a/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-proposals-1/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-proposals-1/stdout.txt @@ -10,6 +10,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-logical-assignment-operators { "chrome":"52", "firefox":"50", "ie":"11" } proposal-nullish-coalescing-operator { "chrome":"52", "firefox":"50", "ie":"11" } proposal-optional-chaining { "chrome":"52", "firefox":"50", "ie":"11" } proposal-json-strings { "chrome":"52", "firefox":"50", "ie":"11" } @@ -41,6 +43,7 @@ Using plugins: transform-typeof-symbol { "ie":"11" } transform-new-target { "ie":"11" } transform-regenerator { "firefox":"50", "ie":"11" } + proposal-export-namespace-from { "chrome":"52", "firefox":"50", "ie":"11" } transform-modules-commonjs { "chrome":"52", "firefox":"50", "ie":"11" } proposal-dynamic-import { "chrome":"52", "firefox":"50", "ie":"11" } diff --git a/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-proposals-2/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-proposals-2/stdout.txt index af74441f807d..b1cc06c6f4c9 100644 --- a/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-proposals-2/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-proposals-2/stdout.txt @@ -10,6 +10,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-logical-assignment-operators { "chrome":"52", "firefox":"50", "ie":"11" } proposal-nullish-coalescing-operator { "chrome":"52", "firefox":"50", "ie":"11" } proposal-optional-chaining { "chrome":"52", "firefox":"50", "ie":"11" } proposal-json-strings { "chrome":"52", "firefox":"50", "ie":"11" } @@ -41,6 +43,7 @@ Using plugins: transform-typeof-symbol { "ie":"11" } transform-new-target { "ie":"11" } transform-regenerator { "firefox":"50", "ie":"11" } + proposal-export-namespace-from { "chrome":"52", "firefox":"50", "ie":"11" } transform-modules-commonjs { "chrome":"52", "firefox":"50", "ie":"11" } proposal-dynamic-import { "chrome":"52", "firefox":"50", "ie":"11" } diff --git a/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-proposals-chrome-71-1/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-proposals-chrome-71-1/stdout.txt index db3815977e15..b6bfc92bf64a 100644 --- a/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-proposals-chrome-71-1/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-proposals-chrome-71-1/stdout.txt @@ -8,12 +8,15 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "chrome":"71" } + proposal-logical-assignment-operators { "chrome":"71" } proposal-nullish-coalescing-operator { "chrome":"71" } proposal-optional-chaining { "chrome":"71" } syntax-json-strings { "chrome":"71" } syntax-optional-catch-binding { "chrome":"71" } syntax-async-generators { "chrome":"71" } syntax-object-rest-spread { "chrome":"71" } + proposal-export-namespace-from { "chrome":"71" } transform-modules-commonjs { "chrome":"71" } proposal-dynamic-import { "chrome":"71" } diff --git a/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-proposals-chrome-71-2/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-proposals-chrome-71-2/stdout.txt index 7b02e2d05164..95d90e9390e8 100644 --- a/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-proposals-chrome-71-2/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-proposals-chrome-71-2/stdout.txt @@ -8,12 +8,15 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "chrome":"71" } + proposal-logical-assignment-operators { "chrome":"71" } proposal-nullish-coalescing-operator { "chrome":"71" } proposal-optional-chaining { "chrome":"71" } syntax-json-strings { "chrome":"71" } syntax-optional-catch-binding { "chrome":"71" } syntax-async-generators { "chrome":"71" } syntax-object-rest-spread { "chrome":"71" } + proposal-export-namespace-from { "chrome":"71" } transform-modules-commonjs { "chrome":"71" } proposal-dynamic-import { "chrome":"71" } diff --git a/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-shippedProposals-1/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-shippedProposals-1/stdout.txt index f0b9d8369f79..3b73cf06217e 100644 --- a/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-shippedProposals-1/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-shippedProposals-1/stdout.txt @@ -10,9 +10,10 @@ Using targets: Using modules transform: auto Using plugins: - proposal-numeric-separator { "chrome":"52", "firefox":"50", "ie":"11" } proposal-class-properties { "chrome":"52", "firefox":"50", "ie":"11" } proposal-private-methods { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-numeric-separator { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-logical-assignment-operators { "chrome":"52", "firefox":"50", "ie":"11" } proposal-nullish-coalescing-operator { "chrome":"52", "firefox":"50", "ie":"11" } proposal-optional-chaining { "chrome":"52", "firefox":"50", "ie":"11" } proposal-json-strings { "chrome":"52", "firefox":"50", "ie":"11" } @@ -44,6 +45,7 @@ Using plugins: transform-typeof-symbol { "ie":"11" } transform-new-target { "ie":"11" } transform-regenerator { "firefox":"50", "ie":"11" } + proposal-export-namespace-from { "chrome":"52", "firefox":"50", "ie":"11" } transform-modules-commonjs { "chrome":"52", "firefox":"50", "ie":"11" } proposal-dynamic-import { "chrome":"52", "firefox":"50", "ie":"11" } diff --git a/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-shippedProposals-2/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-shippedProposals-2/stdout.txt index 1b8f41e13300..28e2f370a660 100644 --- a/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-shippedProposals-2/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-shippedProposals-2/stdout.txt @@ -10,9 +10,10 @@ Using targets: Using modules transform: auto Using plugins: - proposal-numeric-separator { "chrome":"52", "firefox":"50", "ie":"11" } proposal-class-properties { "chrome":"52", "firefox":"50", "ie":"11" } proposal-private-methods { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-numeric-separator { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-logical-assignment-operators { "chrome":"52", "firefox":"50", "ie":"11" } proposal-nullish-coalescing-operator { "chrome":"52", "firefox":"50", "ie":"11" } proposal-optional-chaining { "chrome":"52", "firefox":"50", "ie":"11" } proposal-json-strings { "chrome":"52", "firefox":"50", "ie":"11" } @@ -44,6 +45,7 @@ Using plugins: transform-typeof-symbol { "ie":"11" } transform-new-target { "ie":"11" } transform-regenerator { "firefox":"50", "ie":"11" } + proposal-export-namespace-from { "chrome":"52", "firefox":"50", "ie":"11" } transform-modules-commonjs { "chrome":"52", "firefox":"50", "ie":"11" } proposal-dynamic-import { "chrome":"52", "firefox":"50", "ie":"11" } diff --git a/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-versions-strings-minor-3.0-1/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-versions-strings-minor-3.0-1/stdout.txt index 4579f2c1a33b..0d93bdc754dd 100644 --- a/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-versions-strings-minor-3.0-1/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-versions-strings-minor-3.0-1/stdout.txt @@ -10,6 +10,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-logical-assignment-operators { "chrome":"52", "firefox":"50", "ie":"11" } proposal-nullish-coalescing-operator { "chrome":"52", "firefox":"50", "ie":"11" } proposal-optional-chaining { "chrome":"52", "firefox":"50", "ie":"11" } proposal-json-strings { "chrome":"52", "firefox":"50", "ie":"11" } @@ -41,6 +43,7 @@ Using plugins: transform-typeof-symbol { "ie":"11" } transform-new-target { "ie":"11" } transform-regenerator { "firefox":"50", "ie":"11" } + proposal-export-namespace-from { "chrome":"52", "firefox":"50", "ie":"11" } transform-modules-commonjs { "chrome":"52", "firefox":"50", "ie":"11" } proposal-dynamic-import { "chrome":"52", "firefox":"50", "ie":"11" } diff --git a/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-versions-strings-minor-3.0-2/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-versions-strings-minor-3.0-2/stdout.txt index cfb581f2b978..e575b0e7e99e 100644 --- a/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-versions-strings-minor-3.0-2/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-versions-strings-minor-3.0-2/stdout.txt @@ -10,6 +10,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-logical-assignment-operators { "chrome":"52", "firefox":"50", "ie":"11" } proposal-nullish-coalescing-operator { "chrome":"52", "firefox":"50", "ie":"11" } proposal-optional-chaining { "chrome":"52", "firefox":"50", "ie":"11" } proposal-json-strings { "chrome":"52", "firefox":"50", "ie":"11" } @@ -41,6 +43,7 @@ Using plugins: transform-typeof-symbol { "ie":"11" } transform-new-target { "ie":"11" } transform-regenerator { "firefox":"50", "ie":"11" } + proposal-export-namespace-from { "chrome":"52", "firefox":"50", "ie":"11" } transform-modules-commonjs { "chrome":"52", "firefox":"50", "ie":"11" } proposal-dynamic-import { "chrome":"52", "firefox":"50", "ie":"11" } diff --git a/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-versions-strings-minor-3.1-1/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-versions-strings-minor-3.1-1/stdout.txt index 45d9d8b50fd3..049239fb9579 100644 --- a/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-versions-strings-minor-3.1-1/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-versions-strings-minor-3.1-1/stdout.txt @@ -10,6 +10,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-logical-assignment-operators { "chrome":"52", "firefox":"50", "ie":"11" } proposal-nullish-coalescing-operator { "chrome":"52", "firefox":"50", "ie":"11" } proposal-optional-chaining { "chrome":"52", "firefox":"50", "ie":"11" } proposal-json-strings { "chrome":"52", "firefox":"50", "ie":"11" } @@ -41,6 +43,7 @@ Using plugins: transform-typeof-symbol { "ie":"11" } transform-new-target { "ie":"11" } transform-regenerator { "firefox":"50", "ie":"11" } + proposal-export-namespace-from { "chrome":"52", "firefox":"50", "ie":"11" } transform-modules-commonjs { "chrome":"52", "firefox":"50", "ie":"11" } proposal-dynamic-import { "chrome":"52", "firefox":"50", "ie":"11" } diff --git a/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-versions-strings-minor-3.1-2/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-versions-strings-minor-3.1-2/stdout.txt index 27ee227d2bf4..a00e7c2cfedc 100644 --- a/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-versions-strings-minor-3.1-2/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-versions-strings-minor-3.1-2/stdout.txt @@ -10,6 +10,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-logical-assignment-operators { "chrome":"52", "firefox":"50", "ie":"11" } proposal-nullish-coalescing-operator { "chrome":"52", "firefox":"50", "ie":"11" } proposal-optional-chaining { "chrome":"52", "firefox":"50", "ie":"11" } proposal-json-strings { "chrome":"52", "firefox":"50", "ie":"11" } @@ -41,6 +43,7 @@ Using plugins: transform-typeof-symbol { "ie":"11" } transform-new-target { "ie":"11" } transform-regenerator { "firefox":"50", "ie":"11" } + proposal-export-namespace-from { "chrome":"52", "firefox":"50", "ie":"11" } transform-modules-commonjs { "chrome":"52", "firefox":"50", "ie":"11" } proposal-dynamic-import { "chrome":"52", "firefox":"50", "ie":"11" } diff --git a/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-with-import/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-with-import/stdout.txt index c14d41b62de9..91c608682a16 100644 --- a/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-with-import/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/usage-corejs3-with-import/stdout.txt @@ -8,6 +8,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "chrome":"55" } + proposal-logical-assignment-operators { "chrome":"55" } proposal-nullish-coalescing-operator { "chrome":"55" } proposal-optional-chaining { "chrome":"55" } proposal-json-strings { "chrome":"55" } @@ -17,6 +19,7 @@ Using plugins: transform-dotall-regex { "chrome":"55" } proposal-unicode-property-regex { "chrome":"55" } transform-named-capturing-groups-regex { "chrome":"55" } + proposal-export-namespace-from { "chrome":"55" } transform-modules-commonjs { "chrome":"55" } proposal-dynamic-import { "chrome":"55" } diff --git a/packages/babel-preset-env/test/fixtures/debug/usage-no-corejs-1/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/usage-no-corejs-1/stdout.txt index 6f1fd6bdb5f1..6b028e65a408 100644 --- a/packages/babel-preset-env/test/fixtures/debug/usage-no-corejs-1/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/usage-no-corejs-1/stdout.txt @@ -10,6 +10,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-logical-assignment-operators { "chrome":"52", "firefox":"50", "ie":"11" } proposal-nullish-coalescing-operator { "chrome":"52", "firefox":"50", "ie":"11" } proposal-optional-chaining { "chrome":"52", "firefox":"50", "ie":"11" } proposal-json-strings { "chrome":"52", "firefox":"50", "ie":"11" } @@ -41,6 +43,7 @@ Using plugins: transform-typeof-symbol { "ie":"11" } transform-new-target { "ie":"11" } transform-regenerator { "firefox":"50", "ie":"11" } + proposal-export-namespace-from { "chrome":"52", "firefox":"50", "ie":"11" } transform-modules-commonjs { "chrome":"52", "firefox":"50", "ie":"11" } proposal-dynamic-import { "chrome":"52", "firefox":"50", "ie":"11" } diff --git a/packages/babel-preset-env/test/fixtures/debug/usage-no-corejs-2/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/usage-no-corejs-2/stdout.txt index 573866e69957..2ad812f17603 100644 --- a/packages/babel-preset-env/test/fixtures/debug/usage-no-corejs-2/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/usage-no-corejs-2/stdout.txt @@ -10,6 +10,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-logical-assignment-operators { "chrome":"52", "firefox":"50", "ie":"11" } proposal-nullish-coalescing-operator { "chrome":"52", "firefox":"50", "ie":"11" } proposal-optional-chaining { "chrome":"52", "firefox":"50", "ie":"11" } proposal-json-strings { "chrome":"52", "firefox":"50", "ie":"11" } @@ -41,6 +43,7 @@ Using plugins: transform-typeof-symbol { "ie":"11" } transform-new-target { "ie":"11" } transform-regenerator { "firefox":"50", "ie":"11" } + proposal-export-namespace-from { "chrome":"52", "firefox":"50", "ie":"11" } transform-modules-commonjs { "chrome":"52", "firefox":"50", "ie":"11" } proposal-dynamic-import { "chrome":"52", "firefox":"50", "ie":"11" } diff --git a/packages/babel-preset-env/test/fixtures/debug/usage-no-corejs-none-1/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/usage-no-corejs-none-1/stdout.txt index d7a676f138f3..1b431f765bec 100644 --- a/packages/babel-preset-env/test/fixtures/debug/usage-no-corejs-none-1/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/usage-no-corejs-none-1/stdout.txt @@ -10,6 +10,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-logical-assignment-operators { "chrome":"52", "firefox":"50", "ie":"11" } proposal-nullish-coalescing-operator { "chrome":"52", "firefox":"50", "ie":"11" } proposal-optional-chaining { "chrome":"52", "firefox":"50", "ie":"11" } proposal-json-strings { "chrome":"52", "firefox":"50", "ie":"11" } @@ -41,6 +43,7 @@ Using plugins: transform-typeof-symbol { "ie":"11" } transform-new-target { "ie":"11" } transform-regenerator { "firefox":"50", "ie":"11" } + proposal-export-namespace-from { "chrome":"52", "firefox":"50", "ie":"11" } transform-modules-commonjs { "chrome":"52", "firefox":"50", "ie":"11" } proposal-dynamic-import { "chrome":"52", "firefox":"50", "ie":"11" } diff --git a/packages/babel-preset-env/test/fixtures/debug/usage-no-corejs-none-2/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/usage-no-corejs-none-2/stdout.txt index f33dfedca1aa..0c3bb844371f 100644 --- a/packages/babel-preset-env/test/fixtures/debug/usage-no-corejs-none-2/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/usage-no-corejs-none-2/stdout.txt @@ -10,6 +10,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-logical-assignment-operators { "chrome":"52", "firefox":"50", "ie":"11" } proposal-nullish-coalescing-operator { "chrome":"52", "firefox":"50", "ie":"11" } proposal-optional-chaining { "chrome":"52", "firefox":"50", "ie":"11" } proposal-json-strings { "chrome":"52", "firefox":"50", "ie":"11" } @@ -41,6 +43,7 @@ Using plugins: transform-typeof-symbol { "ie":"11" } transform-new-target { "ie":"11" } transform-regenerator { "firefox":"50", "ie":"11" } + proposal-export-namespace-from { "chrome":"52", "firefox":"50", "ie":"11" } transform-modules-commonjs { "chrome":"52", "firefox":"50", "ie":"11" } proposal-dynamic-import { "chrome":"52", "firefox":"50", "ie":"11" } diff --git a/packages/babel-preset-env/test/fixtures/export-namespace-from/auto-esm-not-supported/input.mjs b/packages/babel-preset-env/test/fixtures/export-namespace-from/auto-esm-not-supported/input.mjs new file mode 100644 index 000000000000..3d03df801311 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/export-namespace-from/auto-esm-not-supported/input.mjs @@ -0,0 +1 @@ +export * as foo from "./foo.mjs"; diff --git a/packages/babel-preset-env/test/fixtures/export-namespace-from/auto-esm-not-supported/options.json b/packages/babel-preset-env/test/fixtures/export-namespace-from/auto-esm-not-supported/options.json new file mode 100644 index 000000000000..7796846968f4 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/export-namespace-from/auto-esm-not-supported/options.json @@ -0,0 +1,10 @@ +{ + "validateLogs": true, + "caller": { + "name": "test-fixture", + "supportsStaticESM": false, + "supportsDynamicImport": false, + "supportsExportNamespaceFrom": false + }, + "presets": ["env"] +} diff --git a/packages/babel-preset-env/test/fixtures/export-namespace-from/auto-esm-not-supported/output.js b/packages/babel-preset-env/test/fixtures/export-namespace-from/auto-esm-not-supported/output.js new file mode 100644 index 000000000000..26e344a3dfb8 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/export-namespace-from/auto-esm-not-supported/output.js @@ -0,0 +1,12 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.foo = void 0; + +var _foo = _interopRequireDefault(require("./foo.mjs")); + +exports.foo = _foo; + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } diff --git a/packages/babel-preset-env/test/fixtures/export-namespace-from/auto-export-namespace-not-supported/input.mjs b/packages/babel-preset-env/test/fixtures/export-namespace-from/auto-export-namespace-not-supported/input.mjs new file mode 100644 index 000000000000..3d03df801311 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/export-namespace-from/auto-export-namespace-not-supported/input.mjs @@ -0,0 +1 @@ +export * as foo from "./foo.mjs"; diff --git a/packages/babel-preset-env/test/fixtures/export-namespace-from/auto-export-namespace-not-supported/options.json b/packages/babel-preset-env/test/fixtures/export-namespace-from/auto-export-namespace-not-supported/options.json new file mode 100644 index 000000000000..8ba60ebe9eb5 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/export-namespace-from/auto-export-namespace-not-supported/options.json @@ -0,0 +1,9 @@ +{ + "caller": { + "name": "test-fixture", + "supportsStaticESM": true, + "supportsDynamicImport": true, + "supportsExportNamespaceFrom": false + }, + "presets": ["env"] +} diff --git a/packages/babel-preset-env/test/fixtures/export-namespace-from/auto-export-namespace-not-supported/output.mjs b/packages/babel-preset-env/test/fixtures/export-namespace-from/auto-export-namespace-not-supported/output.mjs new file mode 100644 index 000000000000..da4d09cb8227 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/export-namespace-from/auto-export-namespace-not-supported/output.mjs @@ -0,0 +1,2 @@ +import * as _foo from "./foo.mjs"; +export { _foo as foo }; diff --git a/packages/babel-preset-env/test/fixtures/export-namespace-from/false-export-namespace-not-supported-caller-supported/input.mjs b/packages/babel-preset-env/test/fixtures/export-namespace-from/false-export-namespace-not-supported-caller-supported/input.mjs new file mode 100644 index 000000000000..3d03df801311 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/export-namespace-from/false-export-namespace-not-supported-caller-supported/input.mjs @@ -0,0 +1 @@ +export * as foo from "./foo.mjs"; diff --git a/packages/babel-preset-env/test/fixtures/export-namespace-from/false-export-namespace-not-supported-caller-supported/options.json b/packages/babel-preset-env/test/fixtures/export-namespace-from/false-export-namespace-not-supported-caller-supported/options.json new file mode 100644 index 000000000000..a996d7e96ea7 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/export-namespace-from/false-export-namespace-not-supported-caller-supported/options.json @@ -0,0 +1,7 @@ +{ + "caller": { + "name": "test-fixture", + "supportsExportNamespaceFrom": true + }, + "presets": [["env", { "modules": false, "targets": "chrome 71" }]] +} diff --git a/packages/babel-preset-env/test/fixtures/export-namespace-from/false-export-namespace-not-supported-caller-supported/output.mjs b/packages/babel-preset-env/test/fixtures/export-namespace-from/false-export-namespace-not-supported-caller-supported/output.mjs new file mode 100644 index 000000000000..da4d09cb8227 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/export-namespace-from/false-export-namespace-not-supported-caller-supported/output.mjs @@ -0,0 +1,2 @@ +import * as _foo from "./foo.mjs"; +export { _foo as foo }; diff --git a/packages/babel-preset-env/test/fixtures/export-namespace-from/false-export-namespace-not-supported/input.mjs b/packages/babel-preset-env/test/fixtures/export-namespace-from/false-export-namespace-not-supported/input.mjs new file mode 100644 index 000000000000..3d03df801311 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/export-namespace-from/false-export-namespace-not-supported/input.mjs @@ -0,0 +1 @@ +export * as foo from "./foo.mjs"; diff --git a/packages/babel-preset-env/test/fixtures/export-namespace-from/false-export-namespace-not-supported/options.json b/packages/babel-preset-env/test/fixtures/export-namespace-from/false-export-namespace-not-supported/options.json new file mode 100644 index 000000000000..9d6ac234690f --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/export-namespace-from/false-export-namespace-not-supported/options.json @@ -0,0 +1,7 @@ +{ + "caller": { + "name": "test-fixture", + "supportsExportNamespaceFrom": false + }, + "presets": [["env", { "modules": false, "targets": "chrome 71" }]] +} diff --git a/packages/babel-preset-env/test/fixtures/export-namespace-from/false-export-namespace-not-supported/output.mjs b/packages/babel-preset-env/test/fixtures/export-namespace-from/false-export-namespace-not-supported/output.mjs new file mode 100644 index 000000000000..da4d09cb8227 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/export-namespace-from/false-export-namespace-not-supported/output.mjs @@ -0,0 +1,2 @@ +import * as _foo from "./foo.mjs"; +export { _foo as foo }; diff --git a/packages/babel-preset-env/test/fixtures/export-namespace-from/false-export-namespace-supported/input.mjs b/packages/babel-preset-env/test/fixtures/export-namespace-from/false-export-namespace-supported/input.mjs new file mode 100644 index 000000000000..3d03df801311 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/export-namespace-from/false-export-namespace-supported/input.mjs @@ -0,0 +1 @@ +export * as foo from "./foo.mjs"; diff --git a/packages/babel-preset-env/test/fixtures/export-namespace-from/false-export-namespace-supported/options.json b/packages/babel-preset-env/test/fixtures/export-namespace-from/false-export-namespace-supported/options.json new file mode 100644 index 000000000000..e60343c1b6a5 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/export-namespace-from/false-export-namespace-supported/options.json @@ -0,0 +1,7 @@ +{ + "caller": { + "name": "test-fixture", + "supportsExportNamespaceFrom": false + }, + "presets": [["env", { "modules": false, "targets": "chrome 72" }]] +} diff --git a/packages/babel-preset-env/test/fixtures/export-namespace-from/false-export-namespace-supported/output.mjs b/packages/babel-preset-env/test/fixtures/export-namespace-from/false-export-namespace-supported/output.mjs new file mode 100644 index 000000000000..3d03df801311 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/export-namespace-from/false-export-namespace-supported/output.mjs @@ -0,0 +1 @@ +export * as foo from "./foo.mjs"; diff --git a/packages/babel-preset-env/test/fixtures/preset-options/safari-10_3-block-scoped/stdout.txt b/packages/babel-preset-env/test/fixtures/preset-options/safari-10_3-block-scoped/stdout.txt index 6425e78aaaf7..720eb9ca60a2 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/safari-10_3-block-scoped/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/preset-options/safari-10_3-block-scoped/stdout.txt @@ -8,6 +8,8 @@ Using targets: Using modules transform: auto Using plugins: + proposal-numeric-separator { "safari":"10" } + proposal-logical-assignment-operators { "safari":"10" } proposal-nullish-coalescing-operator { "safari":"10" } proposal-optional-chaining { "safari":"10" } proposal-json-strings { "safari":"10" } @@ -22,6 +24,7 @@ Using plugins: transform-template-literals { "safari":"10" } transform-unicode-regex { "safari":"10" } transform-block-scoping { "safari":"10" } + proposal-export-namespace-from { "safari":"10" } transform-modules-commonjs { "safari":"10" } proposal-dynamic-import { "safari":"10" } diff --git a/packages/babel-preset-env/test/index.spec.js b/packages/babel-preset-env/test/index.spec.js index 971774ea2084..a1d454608385 100644 --- a/packages/babel-preset-env/test/index.spec.js +++ b/packages/babel-preset-env/test/index.spec.js @@ -38,28 +38,30 @@ describe("babel-preset-env", () => { }); describe("getModulesPluginNames", () => { describe("modules is set to false", () => { - it("returns only syntax-dynamic-import", () => { + it("returns only syntax plugins", () => { expect( babelPresetEnv.getModulesPluginNames({ modules: false, transformations, shouldTransformESM: false, shouldTransformDynamicImport: false, + shouldTransformExportNamespaceFrom: false, }), - ).toEqual(["syntax-dynamic-import"]); + ).toEqual(["syntax-dynamic-import", "syntax-export-namespace-from"]); }); }); describe("modules is not set to false", () => { describe("ESMs should not be transformed", () => { - it("returns syntax-dynamic-import", () => { + it("returns syntax plugins", () => { expect( babelPresetEnv.getModulesPluginNames({ modules: "commonjs", transformations, shouldTransformESM: false, shouldTransformDynamicImport: false, + shouldTransformExportNamespaceFrom: false, }), - ).toEqual(["syntax-dynamic-import"]); + ).toEqual(["syntax-dynamic-import", "syntax-export-namespace-from"]); }); }); describe("ESMs should be transformed", () => { @@ -71,8 +73,13 @@ describe("babel-preset-env", () => { transformations, shouldTransformESM: true, shouldTransformDynamicImport: false, + shouldTransformExportNamespaceFrom: false, }), - ).toEqual(["transform-modules-commonjs", "syntax-dynamic-import"]); + ).toEqual([ + "transform-modules-commonjs", + "syntax-dynamic-import", + "syntax-export-namespace-from", + ]); }); }); describe("dynamic imports should be transformed", () => { @@ -83,12 +90,31 @@ describe("babel-preset-env", () => { transformations, shouldTransformESM: true, shouldTransformDynamicImport: true, + shouldTransformExportNamespaceFrom: false, }), ).toEqual([ "transform-modules-systemjs", "proposal-dynamic-import", + "syntax-export-namespace-from", ]); }); + describe("export namespace from should be transformed", () => { + it("works", () => { + expect( + babelPresetEnv.getModulesPluginNames({ + modules: "systemjs", + transformations, + shouldTransformESM: true, + shouldTransformDynamicImport: true, + shouldTransformExportNamespaceFrom: true, + }), + ).toEqual([ + "transform-modules-systemjs", + "proposal-dynamic-import", + "proposal-export-namespace-from", + ]); + }); + }); }); }); }); diff --git a/packages/babel-register/package.json b/packages/babel-register/package.json index ee58be1cbcc4..86cbfb30ee32 100644 --- a/packages/babel-register/package.json +++ b/packages/babel-register/package.json @@ -1,6 +1,6 @@ { "name": "@babel/register", - "version": "7.10.4", + "version": "7.10.5", "description": "babel require hook", "license": "MIT", "publishConfig": { @@ -17,9 +17,10 @@ "./lib/node.js": "./lib/browser.js" }, "dependencies": { - "escape-string-regexp": "^4.0.0", - "find-cache-dir": "^3.2.0", - "lodash": "^4.17.13", + "escape-string-regexp": "4.0.0", + "find-cache-dir": "^2.0.0", + "lodash": "^4.17.19", + "make-dir": "^2.1.0", "pirates": "^4.0.0", "source-map-support": "^0.5.16" }, @@ -27,7 +28,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "workspace:^7.10.4", + "@babel/core": "workspace:^7.10.5", "@babel/plugin-transform-modules-commonjs": "workspace:^7.10.4", "browserify": "16.5.0", "default-require-extensions": "^2.0.0" diff --git a/packages/babel-register/test/cache.js b/packages/babel-register/test/cache.js index f4fb2de2e8ec..ee939729dbf8 100644 --- a/packages/babel-register/test/cache.js +++ b/packages/babel-register/test/cache.js @@ -31,6 +31,7 @@ function resetCache() { describe("@babel/register - caching", () => { describe("cache", () => { let load, get, save; + let consoleWarnSpy; beforeEach(() => { // Since lib/cache is a singleton we need to fully reload it @@ -40,9 +41,14 @@ describe("@babel/register - caching", () => { load = cache.load; get = cache.get; save = cache.save; + + consoleWarnSpy = jest.spyOn(console, "warn").mockImplementation(() => {}); }); - afterEach(cleanCache); + afterEach(() => { + cleanCache(); + consoleWarnSpy.mockRestore(); + }); afterAll(resetCache); it("should load and get cached data", () => { @@ -88,10 +94,12 @@ describe("@babel/register - caching", () => { if (process.platform !== "win32") { it("should be disabled when CACHE_PATH is not allowed to read", () => { writeCache({ foo: "bar" }, 0o266); - load(); expect(get()).toEqual({}); + expect(consoleWarnSpy.mock.calls[0][0]).toContain( + "Babel could not read cache file", + ); }); } @@ -104,6 +112,9 @@ describe("@babel/register - caching", () => { process.nextTick(() => { load(); expect(get()).toEqual({}); + expect(consoleWarnSpy.mock.calls[0][0]).toContain( + "Babel could not write cache to file", + ); cb(); }); }); diff --git a/packages/babel-runtime-corejs2/package.json b/packages/babel-runtime-corejs2/package.json index 1a48fed81c0c..0e176ef55c98 100644 --- a/packages/babel-runtime-corejs2/package.json +++ b/packages/babel-runtime-corejs2/package.json @@ -1,6 +1,6 @@ { "name": "@babel/runtime-corejs2", - "version": "7.10.4", + "version": "7.11.2", "description": "babel's modular runtime helpers with core-js@2 polyfilling", "license": "MIT", "publishConfig": { diff --git a/packages/babel-runtime-corejs3/package.json b/packages/babel-runtime-corejs3/package.json index 3ebe5fa7166f..2ba8ec1a0564 100644 --- a/packages/babel-runtime-corejs3/package.json +++ b/packages/babel-runtime-corejs3/package.json @@ -1,6 +1,6 @@ { "name": "@babel/runtime-corejs3", - "version": "7.10.4", + "version": "7.11.2", "description": "babel's modular runtime helpers with core-js@3 polyfilling", "license": "MIT", "publishConfig": { diff --git a/packages/babel-runtime/package.json b/packages/babel-runtime/package.json index b1cd57bd1b28..b9a3c3a05f54 100644 --- a/packages/babel-runtime/package.json +++ b/packages/babel-runtime/package.json @@ -1,6 +1,6 @@ { "name": "@babel/runtime", - "version": "7.10.4", + "version": "7.11.2", "description": "babel's modular runtime helpers", "license": "MIT", "publishConfig": { diff --git a/packages/babel-standalone/package.json b/packages/babel-standalone/package.json index 9da61413438d..7a6a6960057c 100644 --- a/packages/babel-standalone/package.json +++ b/packages/babel-standalone/package.json @@ -1,42 +1,40 @@ { "name": "@babel/standalone", - "version": "7.10.4", + "version": "7.11.3", "description": "Standalone build of Babel for use in non-Node.js environments.", "main": "babel.js", "files": [ "babel.js", "babel.min.js" ], - "scripts": { - "prepublishOnly": "cd ../.. && make prepublish-build-standalone" - }, "devDependencies": { - "@babel/core": "workspace:^7.10.4", + "@babel/core": "workspace:^7.11.1", "@babel/helper-plugin-utils": "workspace:^7.10.4", "@babel/plugin-external-helpers": "workspace:^7.10.4", - "@babel/plugin-proposal-async-generator-functions": "workspace:^7.10.4", + "@babel/plugin-proposal-async-generator-functions": "workspace:^7.10.5", "@babel/plugin-proposal-class-properties": "workspace:^7.10.4", - "@babel/plugin-proposal-decorators": "workspace:^7.10.4", + "@babel/plugin-proposal-decorators": "workspace:^7.10.5", "@babel/plugin-proposal-do-expressions": "workspace:^7.10.4", "@babel/plugin-proposal-dynamic-import": "workspace:^7.10.4", "@babel/plugin-proposal-export-default-from": "workspace:^7.10.4", "@babel/plugin-proposal-export-namespace-from": "workspace:^7.10.4", - "@babel/plugin-proposal-function-bind": "workspace:^7.10.4", + "@babel/plugin-proposal-function-bind": "workspace:^7.10.5", "@babel/plugin-proposal-function-sent": "workspace:^7.10.4", "@babel/plugin-proposal-json-strings": "workspace:^7.10.4", - "@babel/plugin-proposal-logical-assignment-operators": "workspace:^7.10.4", + "@babel/plugin-proposal-logical-assignment-operators": "workspace:^7.11.0", "@babel/plugin-proposal-nullish-coalescing-operator": "workspace:^7.10.4", "@babel/plugin-proposal-numeric-separator": "workspace:^7.10.4", - "@babel/plugin-proposal-object-rest-spread": "workspace:^7.10.4", + "@babel/plugin-proposal-object-rest-spread": "workspace:^7.11.0", "@babel/plugin-proposal-optional-catch-binding": "workspace:^7.10.4", - "@babel/plugin-proposal-optional-chaining": "workspace:^7.10.4", - "@babel/plugin-proposal-pipeline-operator": "workspace:^7.10.4", + "@babel/plugin-proposal-optional-chaining": "workspace:^7.11.0", + "@babel/plugin-proposal-pipeline-operator": "workspace:^7.10.5", "@babel/plugin-proposal-private-methods": "workspace:^7.10.4", "@babel/plugin-proposal-private-property-in-object": "workspace:^7.10.4", "@babel/plugin-proposal-throw-expressions": "workspace:^7.10.4", "@babel/plugin-proposal-unicode-property-regex": "workspace:^7.10.4", "@babel/plugin-syntax-async-generators": "^7.8.0", "@babel/plugin-syntax-class-properties": "workspace:^7.10.4", + "@babel/plugin-syntax-decimal": "workspace:^7.11.0", "@babel/plugin-syntax-decorators": "workspace:^7.10.4", "@babel/plugin-syntax-do-expressions": "workspace:^7.10.4", "@babel/plugin-syntax-export-default-from": "workspace:^7.10.4", @@ -55,7 +53,7 @@ "@babel/plugin-transform-arrow-functions": "workspace:^7.10.4", "@babel/plugin-transform-async-to-generator": "workspace:^7.10.4", "@babel/plugin-transform-block-scoped-functions": "workspace:^7.10.4", - "@babel/plugin-transform-block-scoping": "workspace:^7.10.4", + "@babel/plugin-transform-block-scoping": "workspace:^7.11.1", "@babel/plugin-transform-classes": "workspace:^7.10.4", "@babel/plugin-transform-computed-properties": "workspace:^7.10.4", "@babel/plugin-transform-destructuring": "workspace:^7.10.4", @@ -70,19 +68,19 @@ "@babel/plugin-transform-jscript": "workspace:^7.10.4", "@babel/plugin-transform-literals": "workspace:^7.10.4", "@babel/plugin-transform-member-expression-literals": "workspace:^7.10.4", - "@babel/plugin-transform-modules-amd": "workspace:^7.10.4", + "@babel/plugin-transform-modules-amd": "workspace:^7.10.5", "@babel/plugin-transform-modules-commonjs": "workspace:^7.10.4", - "@babel/plugin-transform-modules-systemjs": "workspace:^7.10.4", + "@babel/plugin-transform-modules-systemjs": "workspace:^7.10.5", "@babel/plugin-transform-modules-umd": "workspace:^7.10.4", "@babel/plugin-transform-named-capturing-groups-regex": "workspace:^7.10.4", "@babel/plugin-transform-new-target": "workspace:^7.10.4", "@babel/plugin-transform-object-assign": "workspace:^7.10.4", "@babel/plugin-transform-object-set-prototype-of-to-assign": "workspace:^7.10.4", "@babel/plugin-transform-object-super": "workspace:^7.10.4", - "@babel/plugin-transform-parameters": "workspace:^7.10.4", + "@babel/plugin-transform-parameters": "workspace:^7.10.5", "@babel/plugin-transform-property-literals": "workspace:^7.10.4", "@babel/plugin-transform-property-mutators": "workspace:^7.10.4", - "@babel/plugin-transform-proto-to-assign": "workspace:^7.10.4", + "@babel/plugin-transform-proto-to-assign": "workspace:^7.10.5", "@babel/plugin-transform-react-constant-elements": "workspace:^7.10.4", "@babel/plugin-transform-react-display-name": "workspace:^7.10.4", "@babel/plugin-transform-react-inline-elements": "workspace:^7.10.4", @@ -90,20 +88,20 @@ "@babel/plugin-transform-react-jsx-compat": "workspace:^7.10.4", "@babel/plugin-transform-react-jsx-development": "workspace:^7.10.4", "@babel/plugin-transform-react-jsx-self": "workspace:^7.10.4", - "@babel/plugin-transform-react-jsx-source": "workspace:^7.10.4", + "@babel/plugin-transform-react-jsx-source": "workspace:^7.10.5", "@babel/plugin-transform-regenerator": "workspace:^7.10.4", "@babel/plugin-transform-reserved-words": "workspace:^7.10.4", - "@babel/plugin-transform-runtime": "workspace:^7.10.4", + "@babel/plugin-transform-runtime": "workspace:^7.11.0", "@babel/plugin-transform-shorthand-properties": "workspace:^7.10.4", - "@babel/plugin-transform-spread": "workspace:^7.10.4", + "@babel/plugin-transform-spread": "workspace:^7.11.0", "@babel/plugin-transform-sticky-regex": "workspace:^7.10.4", "@babel/plugin-transform-strict-mode": "workspace:^7.10.4", - "@babel/plugin-transform-template-literals": "workspace:^7.10.4", + "@babel/plugin-transform-template-literals": "workspace:^7.10.5", "@babel/plugin-transform-typeof-symbol": "workspace:^7.10.4", - "@babel/plugin-transform-typescript": "workspace:^7.10.4", + "@babel/plugin-transform-typescript": "workspace:^7.11.0", "@babel/plugin-transform-unicode-escapes": "workspace:^7.10.4", "@babel/plugin-transform-unicode-regex": "workspace:^7.10.4", - "@babel/preset-env": "workspace:^7.10.4", + "@babel/preset-env": "workspace:^7.11.0", "@babel/preset-flow": "workspace:^7.10.4", "@babel/preset-react": "workspace:^7.10.4", "@babel/preset-typescript": "workspace:^7.10.4" diff --git a/packages/babel-standalone/scripts/pluginConfig.json b/packages/babel-standalone/scripts/pluginConfig.json index 9127553a4b26..2b2c3f3a4219 100644 --- a/packages/babel-standalone/scripts/pluginConfig.json +++ b/packages/babel-standalone/scripts/pluginConfig.json @@ -2,6 +2,7 @@ "external-helpers", "syntax-async-generators", "syntax-class-properties", + "syntax-decimal", "syntax-decorators", "syntax-do-expressions", "syntax-export-default-from", diff --git a/packages/babel-standalone/src/generated/plugins.js b/packages/babel-standalone/src/generated/plugins.js index 3ddd12be9731..757d39e53cc9 100644 --- a/packages/babel-standalone/src/generated/plugins.js +++ b/packages/babel-standalone/src/generated/plugins.js @@ -6,6 +6,7 @@ import externalHelpers from "@babel/plugin-external-helpers"; import syntaxAsyncGenerators from "@babel/plugin-syntax-async-generators"; import syntaxClassProperties from "@babel/plugin-syntax-class-properties"; +import syntaxDecimal from "@babel/plugin-syntax-decimal"; import syntaxDecorators from "@babel/plugin-syntax-decorators"; import syntaxDoExpressions from "@babel/plugin-syntax-do-expressions"; import syntaxExportDefaultFrom from "@babel/plugin-syntax-export-default-from"; @@ -98,6 +99,7 @@ export { externalHelpers, syntaxAsyncGenerators, syntaxClassProperties, + syntaxDecimal, syntaxDecorators, syntaxDoExpressions, syntaxExportDefaultFrom, @@ -191,6 +193,7 @@ export const all = { "external-helpers": externalHelpers, "syntax-async-generators": syntaxAsyncGenerators, "syntax-class-properties": syntaxClassProperties, + "syntax-decimal": syntaxDecimal, "syntax-decorators": syntaxDecorators, "syntax-do-expressions": syntaxDoExpressions, "syntax-export-default-from": syntaxExportDefaultFrom, diff --git a/packages/babel-standalone/src/preset-stage-1.js b/packages/babel-standalone/src/preset-stage-1.js index c11755b6681d..0e0cd18c138c 100644 --- a/packages/babel-standalone/src/preset-stage-1.js +++ b/packages/babel-standalone/src/preset-stage-1.js @@ -21,6 +21,7 @@ export default (_: any, opts: Object = {}) => { ], ], plugins: [ + babelPlugins.syntaxDecimal, [ babelPlugins.syntaxModuleAttributes, { version: moduleAttributesVersion }, diff --git a/packages/babel-standalone/test/babel.js b/packages/babel-standalone/test/babel.js index d430d94ce113..4e18347ff4a1 100644 --- a/packages/babel-standalone/test/babel.js +++ b/packages/babel-standalone/test/babel.js @@ -210,6 +210,13 @@ }), ).not.toThrow(); }); + it("#11897 - [...map.keys()] in Babel source should be transformed correctly", () => { + expect(() => + Babel.transform("for (let el of []) { s => el }", { + plugins: ["transform-block-scoping"], + }), + ).not.toThrow(); + }); }); }, ); diff --git a/packages/babel-standalone/test/preset-stage-1.test.js b/packages/babel-standalone/test/preset-stage-1.test.js new file mode 100644 index 000000000000..fbcb49b6ff0b --- /dev/null +++ b/packages/babel-standalone/test/preset-stage-1.test.js @@ -0,0 +1,13 @@ +(process.env.TEST_TYPE === "cov" ? describe.skip : describe)( + "stage-1 preset", + () => { + const Babel = require("../babel"); + + it("should parser decimal literal", () => { + const output = Babel.transform("0.3m", { + presets: [["stage-1", { decoratorsBeforeExport: true }]], + }).code; + expect(output).toBe("0.3m;"); + }); + }, +); diff --git a/packages/babel-traverse/package.json b/packages/babel-traverse/package.json index fa5a19135baf..56995cfe13c2 100644 --- a/packages/babel-traverse/package.json +++ b/packages/babel-traverse/package.json @@ -1,6 +1,6 @@ { "name": "@babel/traverse", - "version": "7.10.4", + "version": "7.11.0", "description": "The Babel Traverse module maintains the overall tree state, and is responsible for replacing, removing, and adding nodes", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -16,14 +16,14 @@ "main": "lib/index.js", "dependencies": { "@babel/code-frame": "workspace:^7.10.4", - "@babel/generator": "workspace:^7.10.4", + "@babel/generator": "workspace:^7.11.0", "@babel/helper-function-name": "workspace:^7.10.4", - "@babel/helper-split-export-declaration": "workspace:^7.10.4", - "@babel/parser": "workspace:^7.10.4", - "@babel/types": "workspace:^7.10.4", + "@babel/helper-split-export-declaration": "workspace:^7.11.0", + "@babel/parser": "workspace:^7.11.0", + "@babel/types": "workspace:^7.11.0", "debug": "^4.1.0", - "globals": "^12.3.0", - "lodash": "^4.17.13" + "globals": "^11.1.0", + "lodash": "^4.17.19" }, "devDependencies": { "@babel/helper-plugin-test-runner": "workspace:^7.10.4" diff --git a/packages/babel-traverse/src/index.js b/packages/babel-traverse/src/index.js index 1af05587ca2b..103d4c75546d 100644 --- a/packages/babel-traverse/src/index.js +++ b/packages/babel-traverse/src/index.js @@ -1,6 +1,5 @@ import TraversalContext from "./context"; import * as visitors from "./visitors"; -import includes from "lodash/includes"; import * as t from "@babel/types"; import * as cache from "./cache"; @@ -77,7 +76,7 @@ traverse.removeProperties = function (tree, opts) { return tree; }; -function hasBlacklistedType(path, state) { +function hasDenylistedType(path, state) { if (path.node.type === state.type) { state.has = true; path.stop(); @@ -87,10 +86,10 @@ function hasBlacklistedType(path, state) { traverse.hasType = function ( tree: Object, type: Object, - blacklistTypes: Array, + denylistTypes?: Array, ): boolean { - // the node we're searching in is blacklisted - if (includes(blacklistTypes, tree.type)) return false; + // the node we're searching in is denylisted + if (denylistTypes?.includes(tree.type)) return false; // the type we're looking for is the same as the passed node if (tree.type === type) return true; @@ -104,8 +103,8 @@ traverse.hasType = function ( tree, { noScope: true, - blacklist: blacklistTypes, - enter: hasBlacklistedType, + denylist: denylistTypes, + enter: hasDenylistedType, }, null, state, diff --git a/packages/babel-traverse/src/path/context.js b/packages/babel-traverse/src/path/context.js index 5587f0b9b559..03afe0205464 100644 --- a/packages/babel-traverse/src/path/context.js +++ b/packages/babel-traverse/src/path/context.js @@ -51,17 +51,20 @@ export function _call(fns?: Array): boolean { return false; } -export function isBlacklisted(): boolean { - const blacklist = this.opts.blacklist; - return blacklist && blacklist.indexOf(this.node.type) > -1; +export function isDenylisted(): boolean { + const denylist = this.opts.denylist ?? this.opts.blacklist; + return denylist && denylist.indexOf(this.node.type) > -1; } +// TODO: Remove in Babel 8 +export { isDenylisted as isBlacklisted }; + export function visit(): boolean { if (!this.node) { return false; } - if (this.isBlacklisted()) { + if (this.isDenylisted()) { return false; } diff --git a/packages/babel-traverse/src/path/introspection.js b/packages/babel-traverse/src/path/introspection.js index b660cf666e94..c816765c2c0e 100644 --- a/packages/babel-traverse/src/path/introspection.js +++ b/packages/babel-traverse/src/path/introspection.js @@ -1,7 +1,6 @@ // This file contains methods responsible for introspecting the current path for certain values. import type NodePath from "./index"; -import includes from "lodash/includes"; import * as t from "@babel/types"; /** @@ -149,7 +148,7 @@ export function isStatementOrBlock() { ) { return false; } else { - return includes(t.STATEMENT_OR_BLOCK_KEYS, this.key); + return t.STATEMENT_OR_BLOCK_KEYS.includes(this.key); } } @@ -403,7 +402,7 @@ export function _guessExecutionStatusRelativeToDifferentFunctions( return "unknown"; } - // Prevent infinte loops in recursive functions + // Prevent infinite loops in recursive functions if (executionOrderCheckedNodes.has(path.node)) continue; executionOrderCheckedNodes.add(path.node); diff --git a/packages/babel-traverse/src/path/lib/hoister.js b/packages/babel-traverse/src/path/lib/hoister.js index 7e7f85034628..c200856248ac 100644 --- a/packages/babel-traverse/src/path/lib/hoister.js +++ b/packages/babel-traverse/src/path/lib/hoister.js @@ -234,7 +234,7 @@ export default class PathHoister { if (parent.isJSXElement() && this.path.container === parent.node.children) { // turning the `span` in `
` to an expression so we need to wrap it with // an expression container - uid = t.JSXExpressionContainer(uid); + uid = t.jsxExpressionContainer(uid); } this.path.replaceWith(t.cloneNode(uid)); diff --git a/packages/babel-traverse/src/scope/index.js b/packages/babel-traverse/src/scope/index.js index f309baf316e2..4a7a7f83efa1 100644 --- a/packages/babel-traverse/src/scope/index.js +++ b/packages/babel-traverse/src/scope/index.js @@ -1,5 +1,3 @@ -import includes from "lodash/includes"; -import repeat from "lodash/repeat"; import Renamer from "./lib/renamer"; import type NodePath from "../path"; import traverse from "../index"; @@ -502,7 +500,7 @@ export default class Scope { } dump() { - const sep = repeat("-", 60); + const sep = "-".repeat(60); console.log(sep); let scope = this; do { @@ -1038,8 +1036,8 @@ export default class Scope { if (this.hasOwnBinding(name)) return true; if (this.parentHasBinding(name, noGlobals)) return true; if (this.hasUid(name)) return true; - if (!noGlobals && includes(Scope.globals, name)) return true; - if (!noGlobals && includes(Scope.contextVariables, name)) return true; + if (!noGlobals && Scope.globals.includes(name)) return true; + if (!noGlobals && Scope.contextVariables.includes(name)) return true; return false; } diff --git a/packages/babel-traverse/src/visitors.js b/packages/babel-traverse/src/visitors.js index 0748865341c7..51908c7beb4b 100644 --- a/packages/babel-traverse/src/visitors.js +++ b/packages/babel-traverse/src/visitors.js @@ -1,6 +1,5 @@ import * as virtualTypes from "./path/lib/virtual-types"; import * as t from "@babel/types"; -import clone from "lodash/clone"; /** * explode() will take a visitor object with all of the various shorthands @@ -106,7 +105,7 @@ export function explode(visitor) { if (existing) { mergePair(existing, fns); } else { - visitor[alias] = clone(fns); + visitor[alias] = { ...fns }; } } } @@ -275,7 +274,13 @@ function shouldIgnoreKey(key) { if (key === "enter" || key === "exit" || key === "shouldSkip") return true; // ignore other options - if (key === "blacklist" || key === "noScope" || key === "skipKeys") { + if ( + key === "denylist" || + key === "noScope" || + key === "skipKeys" || + // TODO: Remove in Babel 8 + key === "blacklist" + ) { return true; } diff --git a/packages/babel-traverse/test/modification.js b/packages/babel-traverse/test/modification.js index 615845547660..cb939ca80999 100644 --- a/packages/babel-traverse/test/modification.js +++ b/packages/babel-traverse/test/modification.js @@ -142,9 +142,9 @@ describe("modification", function () { const tagName = path.node.openingElement.name.name; if (tagName !== "span") return; path.insertBefore( - t.JSXElement( - t.JSXOpeningElement(t.JSXIdentifier("div"), [], false), - t.JSXClosingElement(t.JSXIdentifier("div")), + t.jsxElement( + t.jsxOpeningElement(t.jsxIdentifier("div"), [], false), + t.jsxClosingElement(t.jsxIdentifier("div")), [], ), ); @@ -252,9 +252,9 @@ describe("modification", function () { const tagName = path.node.openingElement.name.name; if (tagName !== "span") return; path.insertAfter( - t.JSXElement( - t.JSXOpeningElement(t.JSXIdentifier("div"), [], false), - t.JSXClosingElement(t.JSXIdentifier("div")), + t.jsxElement( + t.jsxOpeningElement(t.jsxIdentifier("div"), [], false), + t.jsxClosingElement(t.jsxIdentifier("div")), [], ), ); diff --git a/packages/babel-traverse/test/traverse.js b/packages/babel-traverse/test/traverse.js index d2492a71b329..adbe705cd290 100644 --- a/packages/babel-traverse/test/traverse.js +++ b/packages/babel-traverse/test/traverse.js @@ -61,7 +61,7 @@ describe("traverse", function () { }); }); - it("traverse blacklistTypes", function () { + it("traverse denylistTypes", function () { const expected = [ body[0], body[0].declarations[0], @@ -75,7 +75,7 @@ describe("traverse", function () { const actual = []; traverse(program, { - blacklist: ["MemberExpression"], + denylist: ["MemberExpression"], enter: function (path) { actual.push(path.node); }, diff --git a/packages/babel-types/package.json b/packages/babel-types/package.json index 8adc51acd40a..c3af8fb9f7c5 100644 --- a/packages/babel-types/package.json +++ b/packages/babel-types/package.json @@ -1,6 +1,6 @@ { "name": "@babel/types", - "version": "7.10.4", + "version": "7.11.0", "description": "Babel Types is a Lodash-esque utility library for AST nodes", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -17,11 +17,11 @@ "types": "lib/index.d.ts", "dependencies": { "@babel/helper-validator-identifier": "workspace:^7.10.4", - "lodash": "^4.17.13", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" }, "devDependencies": { - "@babel/generator": "workspace:^7.10.4", - "@babel/parser": "workspace:^7.10.4" + "@babel/generator": "workspace:^7.11.0", + "@babel/parser": "workspace:^7.11.0" } } diff --git a/packages/babel-types/scripts/generators/generateBuilders.js b/packages/babel-types/scripts/generators/generateBuilders.js index 99aec75ce0c6..ac8674c7dfc1 100644 --- a/packages/babel-types/scripts/generators/generateBuilders.js +++ b/packages/babel-types/scripts/generators/generateBuilders.js @@ -10,16 +10,25 @@ module.exports = function generateBuilders() { */ import builder from "../builder";\n\n`; + const reservedNames = new Set(["super", "import"]); Object.keys(definitions.BUILDER_KEYS).forEach(type => { - output += `export function ${type}(...args: Array): Object { return builder("${type}", ...args); } -export { ${type} as ${formatBuilderName(type)} };\n`; + const formatedBuilderName = formatBuilderName(type); + const formatedBuilderNameLocal = reservedNames.has(formatedBuilderName) + ? `_${formatedBuilderName}` + : formatedBuilderName; + output += `${ + formatedBuilderNameLocal === formatedBuilderName ? "export " : "" + }function ${formatedBuilderNameLocal}(...args: Array): Object { return builder("${type}", ...args); }\n`; + if (formatedBuilderNameLocal !== formatedBuilderName) { + output += `export { ${formatedBuilderNameLocal} as ${formatedBuilderName} };\n`; + } }); Object.keys(definitions.DEPRECATED_KEYS).forEach(type => { const newType = definitions.DEPRECATED_KEYS[type]; output += `export function ${type}(...args: Array): Object { console.trace("The node type ${type} has been renamed to ${newType}"); - return ${type}("${type}", ...args); + return builder("${type}", ...args); } export { ${type} as ${formatBuilderName(type)} };\n`; }); diff --git a/packages/babel-types/src/asserts/generated/index.js b/packages/babel-types/src/asserts/generated/index.js index 457103a16b71..23a3e3cbb9e2 100644 --- a/packages/babel-types/src/asserts/generated/index.js +++ b/packages/babel-types/src/asserts/generated/index.js @@ -305,6 +305,33 @@ export function assertTemplateLiteral(node: Object, opts?: Object = {}): void { export function assertYieldExpression(node: Object, opts?: Object = {}): void { assert("YieldExpression", node, opts); } +export function assertAwaitExpression(node: Object, opts?: Object = {}): void { + assert("AwaitExpression", node, opts); +} +export function assertImport(node: Object, opts?: Object = {}): void { + assert("Import", node, opts); +} +export function assertBigIntLiteral(node: Object, opts?: Object = {}): void { + assert("BigIntLiteral", node, opts); +} +export function assertExportNamespaceSpecifier( + node: Object, + opts?: Object = {}, +): void { + assert("ExportNamespaceSpecifier", node, opts); +} +export function assertOptionalMemberExpression( + node: Object, + opts?: Object = {}, +): void { + assert("OptionalMemberExpression", node, opts); +} +export function assertOptionalCallExpression( + node: Object, + opts?: Object = {}, +): void { + assert("OptionalCallExpression", node, opts); +} export function assertAnyTypeAnnotation( node: Object, opts?: Object = {}, @@ -713,21 +740,12 @@ export function assertArgumentPlaceholder( ): void { assert("ArgumentPlaceholder", node, opts); } -export function assertAwaitExpression(node: Object, opts?: Object = {}): void { - assert("AwaitExpression", node, opts); -} export function assertBindExpression(node: Object, opts?: Object = {}): void { assert("BindExpression", node, opts); } export function assertClassProperty(node: Object, opts?: Object = {}): void { assert("ClassProperty", node, opts); } -export function assertOptionalMemberExpression( - node: Object, - opts?: Object = {}, -): void { - assert("OptionalMemberExpression", node, opts); -} export function assertPipelineTopicExpression( node: Object, opts?: Object = {}, @@ -746,12 +764,6 @@ export function assertPipelinePrimaryTopicReference( ): void { assert("PipelinePrimaryTopicReference", node, opts); } -export function assertOptionalCallExpression( - node: Object, - opts?: Object = {}, -): void { - assert("OptionalCallExpression", node, opts); -} export function assertClassPrivateProperty( node: Object, opts?: Object = {}, @@ -764,9 +776,6 @@ export function assertClassPrivateMethod( ): void { assert("ClassPrivateMethod", node, opts); } -export function assertImport(node: Object, opts?: Object = {}): void { - assert("Import", node, opts); -} export function assertImportAttribute(node: Object, opts?: Object = {}): void { assert("ImportAttribute", node, opts); } @@ -782,24 +791,18 @@ export function assertExportDefaultSpecifier( ): void { assert("ExportDefaultSpecifier", node, opts); } -export function assertExportNamespaceSpecifier( - node: Object, - opts?: Object = {}, -): void { - assert("ExportNamespaceSpecifier", node, opts); -} export function assertPrivateName(node: Object, opts?: Object = {}): void { assert("PrivateName", node, opts); } -export function assertBigIntLiteral(node: Object, opts?: Object = {}): void { - assert("BigIntLiteral", node, opts); -} export function assertRecordExpression(node: Object, opts?: Object = {}): void { assert("RecordExpression", node, opts); } export function assertTupleExpression(node: Object, opts?: Object = {}): void { assert("TupleExpression", node, opts); } +export function assertDecimalLiteral(node: Object, opts?: Object = {}): void { + assert("DecimalLiteral", node, opts); +} export function assertTSParameterProperty( node: Object, opts?: Object = {}, @@ -920,6 +923,12 @@ export function assertTSOptionalType(node: Object, opts?: Object = {}): void { export function assertTSRestType(node: Object, opts?: Object = {}): void { assert("TSRestType", node, opts); } +export function assertTSNamedTupleMember( + node: Object, + opts?: Object = {}, +): void { + assert("TSNamedTupleMember", node, opts); +} export function assertTSUnionType(node: Object, opts?: Object = {}): void { assert("TSUnionType", node, opts); } diff --git a/packages/babel-types/src/builders/flow/createFlowUnionType.js b/packages/babel-types/src/builders/flow/createFlowUnionType.js index 30a6f08771d7..2f2dd03ffbc4 100644 --- a/packages/babel-types/src/builders/flow/createFlowUnionType.js +++ b/packages/babel-types/src/builders/flow/createFlowUnionType.js @@ -4,7 +4,7 @@ import removeTypeDuplicates from "../../modifications/flow/removeTypeDuplicates" /** * Takes an array of `types` and flattens them, removing duplicates and - * returns a `UnionTypeAnnotation` node containg them. + * returns a `UnionTypeAnnotation` node containing them. */ export default function createFlowUnionType(types: Array): Object { const flattened = removeTypeDuplicates(types); diff --git a/packages/babel-types/src/builders/generated/index.js b/packages/babel-types/src/builders/generated/index.js index 8d4f0c7319fc..42cd0652f08e 100644 --- a/packages/babel-types/src/builders/generated/index.js +++ b/packages/babel-types/src/builders/generated/index.js @@ -5,979 +5,749 @@ */ import builder from "../builder"; -export function ArrayExpression(...args: Array): Object { +export function arrayExpression(...args: Array): Object { return builder("ArrayExpression", ...args); } -export { ArrayExpression as arrayExpression }; -export function AssignmentExpression(...args: Array): Object { +export function assignmentExpression(...args: Array): Object { return builder("AssignmentExpression", ...args); } -export { AssignmentExpression as assignmentExpression }; -export function BinaryExpression(...args: Array): Object { +export function binaryExpression(...args: Array): Object { return builder("BinaryExpression", ...args); } -export { BinaryExpression as binaryExpression }; -export function InterpreterDirective(...args: Array): Object { +export function interpreterDirective(...args: Array): Object { return builder("InterpreterDirective", ...args); } -export { InterpreterDirective as interpreterDirective }; -export function Directive(...args: Array): Object { +export function directive(...args: Array): Object { return builder("Directive", ...args); } -export { Directive as directive }; -export function DirectiveLiteral(...args: Array): Object { +export function directiveLiteral(...args: Array): Object { return builder("DirectiveLiteral", ...args); } -export { DirectiveLiteral as directiveLiteral }; -export function BlockStatement(...args: Array): Object { +export function blockStatement(...args: Array): Object { return builder("BlockStatement", ...args); } -export { BlockStatement as blockStatement }; -export function BreakStatement(...args: Array): Object { +export function breakStatement(...args: Array): Object { return builder("BreakStatement", ...args); } -export { BreakStatement as breakStatement }; -export function CallExpression(...args: Array): Object { +export function callExpression(...args: Array): Object { return builder("CallExpression", ...args); } -export { CallExpression as callExpression }; -export function CatchClause(...args: Array): Object { +export function catchClause(...args: Array): Object { return builder("CatchClause", ...args); } -export { CatchClause as catchClause }; -export function ConditionalExpression(...args: Array): Object { +export function conditionalExpression(...args: Array): Object { return builder("ConditionalExpression", ...args); } -export { ConditionalExpression as conditionalExpression }; -export function ContinueStatement(...args: Array): Object { +export function continueStatement(...args: Array): Object { return builder("ContinueStatement", ...args); } -export { ContinueStatement as continueStatement }; -export function DebuggerStatement(...args: Array): Object { +export function debuggerStatement(...args: Array): Object { return builder("DebuggerStatement", ...args); } -export { DebuggerStatement as debuggerStatement }; -export function DoWhileStatement(...args: Array): Object { +export function doWhileStatement(...args: Array): Object { return builder("DoWhileStatement", ...args); } -export { DoWhileStatement as doWhileStatement }; -export function EmptyStatement(...args: Array): Object { +export function emptyStatement(...args: Array): Object { return builder("EmptyStatement", ...args); } -export { EmptyStatement as emptyStatement }; -export function ExpressionStatement(...args: Array): Object { +export function expressionStatement(...args: Array): Object { return builder("ExpressionStatement", ...args); } -export { ExpressionStatement as expressionStatement }; -export function File(...args: Array): Object { +export function file(...args: Array): Object { return builder("File", ...args); } -export { File as file }; -export function ForInStatement(...args: Array): Object { +export function forInStatement(...args: Array): Object { return builder("ForInStatement", ...args); } -export { ForInStatement as forInStatement }; -export function ForStatement(...args: Array): Object { +export function forStatement(...args: Array): Object { return builder("ForStatement", ...args); } -export { ForStatement as forStatement }; -export function FunctionDeclaration(...args: Array): Object { +export function functionDeclaration(...args: Array): Object { return builder("FunctionDeclaration", ...args); } -export { FunctionDeclaration as functionDeclaration }; -export function FunctionExpression(...args: Array): Object { +export function functionExpression(...args: Array): Object { return builder("FunctionExpression", ...args); } -export { FunctionExpression as functionExpression }; -export function Identifier(...args: Array): Object { +export function identifier(...args: Array): Object { return builder("Identifier", ...args); } -export { Identifier as identifier }; -export function IfStatement(...args: Array): Object { +export function ifStatement(...args: Array): Object { return builder("IfStatement", ...args); } -export { IfStatement as ifStatement }; -export function LabeledStatement(...args: Array): Object { +export function labeledStatement(...args: Array): Object { return builder("LabeledStatement", ...args); } -export { LabeledStatement as labeledStatement }; -export function StringLiteral(...args: Array): Object { +export function stringLiteral(...args: Array): Object { return builder("StringLiteral", ...args); } -export { StringLiteral as stringLiteral }; -export function NumericLiteral(...args: Array): Object { +export function numericLiteral(...args: Array): Object { return builder("NumericLiteral", ...args); } -export { NumericLiteral as numericLiteral }; -export function NullLiteral(...args: Array): Object { +export function nullLiteral(...args: Array): Object { return builder("NullLiteral", ...args); } -export { NullLiteral as nullLiteral }; -export function BooleanLiteral(...args: Array): Object { +export function booleanLiteral(...args: Array): Object { return builder("BooleanLiteral", ...args); } -export { BooleanLiteral as booleanLiteral }; -export function RegExpLiteral(...args: Array): Object { +export function regExpLiteral(...args: Array): Object { return builder("RegExpLiteral", ...args); } -export { RegExpLiteral as regExpLiteral }; -export function LogicalExpression(...args: Array): Object { +export function logicalExpression(...args: Array): Object { return builder("LogicalExpression", ...args); } -export { LogicalExpression as logicalExpression }; -export function MemberExpression(...args: Array): Object { +export function memberExpression(...args: Array): Object { return builder("MemberExpression", ...args); } -export { MemberExpression as memberExpression }; -export function NewExpression(...args: Array): Object { +export function newExpression(...args: Array): Object { return builder("NewExpression", ...args); } -export { NewExpression as newExpression }; -export function Program(...args: Array): Object { +export function program(...args: Array): Object { return builder("Program", ...args); } -export { Program as program }; -export function ObjectExpression(...args: Array): Object { +export function objectExpression(...args: Array): Object { return builder("ObjectExpression", ...args); } -export { ObjectExpression as objectExpression }; -export function ObjectMethod(...args: Array): Object { +export function objectMethod(...args: Array): Object { return builder("ObjectMethod", ...args); } -export { ObjectMethod as objectMethod }; -export function ObjectProperty(...args: Array): Object { +export function objectProperty(...args: Array): Object { return builder("ObjectProperty", ...args); } -export { ObjectProperty as objectProperty }; -export function RestElement(...args: Array): Object { +export function restElement(...args: Array): Object { return builder("RestElement", ...args); } -export { RestElement as restElement }; -export function ReturnStatement(...args: Array): Object { +export function returnStatement(...args: Array): Object { return builder("ReturnStatement", ...args); } -export { ReturnStatement as returnStatement }; -export function SequenceExpression(...args: Array): Object { +export function sequenceExpression(...args: Array): Object { return builder("SequenceExpression", ...args); } -export { SequenceExpression as sequenceExpression }; -export function ParenthesizedExpression(...args: Array): Object { +export function parenthesizedExpression(...args: Array): Object { return builder("ParenthesizedExpression", ...args); } -export { ParenthesizedExpression as parenthesizedExpression }; -export function SwitchCase(...args: Array): Object { +export function switchCase(...args: Array): Object { return builder("SwitchCase", ...args); } -export { SwitchCase as switchCase }; -export function SwitchStatement(...args: Array): Object { +export function switchStatement(...args: Array): Object { return builder("SwitchStatement", ...args); } -export { SwitchStatement as switchStatement }; -export function ThisExpression(...args: Array): Object { +export function thisExpression(...args: Array): Object { return builder("ThisExpression", ...args); } -export { ThisExpression as thisExpression }; -export function ThrowStatement(...args: Array): Object { +export function throwStatement(...args: Array): Object { return builder("ThrowStatement", ...args); } -export { ThrowStatement as throwStatement }; -export function TryStatement(...args: Array): Object { +export function tryStatement(...args: Array): Object { return builder("TryStatement", ...args); } -export { TryStatement as tryStatement }; -export function UnaryExpression(...args: Array): Object { +export function unaryExpression(...args: Array): Object { return builder("UnaryExpression", ...args); } -export { UnaryExpression as unaryExpression }; -export function UpdateExpression(...args: Array): Object { +export function updateExpression(...args: Array): Object { return builder("UpdateExpression", ...args); } -export { UpdateExpression as updateExpression }; -export function VariableDeclaration(...args: Array): Object { +export function variableDeclaration(...args: Array): Object { return builder("VariableDeclaration", ...args); } -export { VariableDeclaration as variableDeclaration }; -export function VariableDeclarator(...args: Array): Object { +export function variableDeclarator(...args: Array): Object { return builder("VariableDeclarator", ...args); } -export { VariableDeclarator as variableDeclarator }; -export function WhileStatement(...args: Array): Object { +export function whileStatement(...args: Array): Object { return builder("WhileStatement", ...args); } -export { WhileStatement as whileStatement }; -export function WithStatement(...args: Array): Object { +export function withStatement(...args: Array): Object { return builder("WithStatement", ...args); } -export { WithStatement as withStatement }; -export function AssignmentPattern(...args: Array): Object { +export function assignmentPattern(...args: Array): Object { return builder("AssignmentPattern", ...args); } -export { AssignmentPattern as assignmentPattern }; -export function ArrayPattern(...args: Array): Object { +export function arrayPattern(...args: Array): Object { return builder("ArrayPattern", ...args); } -export { ArrayPattern as arrayPattern }; -export function ArrowFunctionExpression(...args: Array): Object { +export function arrowFunctionExpression(...args: Array): Object { return builder("ArrowFunctionExpression", ...args); } -export { ArrowFunctionExpression as arrowFunctionExpression }; -export function ClassBody(...args: Array): Object { +export function classBody(...args: Array): Object { return builder("ClassBody", ...args); } -export { ClassBody as classBody }; -export function ClassExpression(...args: Array): Object { +export function classExpression(...args: Array): Object { return builder("ClassExpression", ...args); } -export { ClassExpression as classExpression }; -export function ClassDeclaration(...args: Array): Object { +export function classDeclaration(...args: Array): Object { return builder("ClassDeclaration", ...args); } -export { ClassDeclaration as classDeclaration }; -export function ExportAllDeclaration(...args: Array): Object { +export function exportAllDeclaration(...args: Array): Object { return builder("ExportAllDeclaration", ...args); } -export { ExportAllDeclaration as exportAllDeclaration }; -export function ExportDefaultDeclaration(...args: Array): Object { +export function exportDefaultDeclaration(...args: Array): Object { return builder("ExportDefaultDeclaration", ...args); } -export { ExportDefaultDeclaration as exportDefaultDeclaration }; -export function ExportNamedDeclaration(...args: Array): Object { +export function exportNamedDeclaration(...args: Array): Object { return builder("ExportNamedDeclaration", ...args); } -export { ExportNamedDeclaration as exportNamedDeclaration }; -export function ExportSpecifier(...args: Array): Object { +export function exportSpecifier(...args: Array): Object { return builder("ExportSpecifier", ...args); } -export { ExportSpecifier as exportSpecifier }; -export function ForOfStatement(...args: Array): Object { +export function forOfStatement(...args: Array): Object { return builder("ForOfStatement", ...args); } -export { ForOfStatement as forOfStatement }; -export function ImportDeclaration(...args: Array): Object { +export function importDeclaration(...args: Array): Object { return builder("ImportDeclaration", ...args); } -export { ImportDeclaration as importDeclaration }; -export function ImportDefaultSpecifier(...args: Array): Object { +export function importDefaultSpecifier(...args: Array): Object { return builder("ImportDefaultSpecifier", ...args); } -export { ImportDefaultSpecifier as importDefaultSpecifier }; -export function ImportNamespaceSpecifier(...args: Array): Object { +export function importNamespaceSpecifier(...args: Array): Object { return builder("ImportNamespaceSpecifier", ...args); } -export { ImportNamespaceSpecifier as importNamespaceSpecifier }; -export function ImportSpecifier(...args: Array): Object { +export function importSpecifier(...args: Array): Object { return builder("ImportSpecifier", ...args); } -export { ImportSpecifier as importSpecifier }; -export function MetaProperty(...args: Array): Object { +export function metaProperty(...args: Array): Object { return builder("MetaProperty", ...args); } -export { MetaProperty as metaProperty }; -export function ClassMethod(...args: Array): Object { +export function classMethod(...args: Array): Object { return builder("ClassMethod", ...args); } -export { ClassMethod as classMethod }; -export function ObjectPattern(...args: Array): Object { +export function objectPattern(...args: Array): Object { return builder("ObjectPattern", ...args); } -export { ObjectPattern as objectPattern }; -export function SpreadElement(...args: Array): Object { +export function spreadElement(...args: Array): Object { return builder("SpreadElement", ...args); } -export { SpreadElement as spreadElement }; -export function Super(...args: Array): Object { +function _super(...args: Array): Object { return builder("Super", ...args); } -export { Super as super }; -export function TaggedTemplateExpression(...args: Array): Object { +export { _super as super }; +export function taggedTemplateExpression(...args: Array): Object { return builder("TaggedTemplateExpression", ...args); } -export { TaggedTemplateExpression as taggedTemplateExpression }; -export function TemplateElement(...args: Array): Object { +export function templateElement(...args: Array): Object { return builder("TemplateElement", ...args); } -export { TemplateElement as templateElement }; -export function TemplateLiteral(...args: Array): Object { +export function templateLiteral(...args: Array): Object { return builder("TemplateLiteral", ...args); } -export { TemplateLiteral as templateLiteral }; -export function YieldExpression(...args: Array): Object { +export function yieldExpression(...args: Array): Object { return builder("YieldExpression", ...args); } -export { YieldExpression as yieldExpression }; -export function AnyTypeAnnotation(...args: Array): Object { +export function awaitExpression(...args: Array): Object { + return builder("AwaitExpression", ...args); +} +function _import(...args: Array): Object { + return builder("Import", ...args); +} +export { _import as import }; +export function bigIntLiteral(...args: Array): Object { + return builder("BigIntLiteral", ...args); +} +export function exportNamespaceSpecifier(...args: Array): Object { + return builder("ExportNamespaceSpecifier", ...args); +} +export function optionalMemberExpression(...args: Array): Object { + return builder("OptionalMemberExpression", ...args); +} +export function optionalCallExpression(...args: Array): Object { + return builder("OptionalCallExpression", ...args); +} +export function anyTypeAnnotation(...args: Array): Object { return builder("AnyTypeAnnotation", ...args); } -export { AnyTypeAnnotation as anyTypeAnnotation }; -export function ArrayTypeAnnotation(...args: Array): Object { +export function arrayTypeAnnotation(...args: Array): Object { return builder("ArrayTypeAnnotation", ...args); } -export { ArrayTypeAnnotation as arrayTypeAnnotation }; -export function BooleanTypeAnnotation(...args: Array): Object { +export function booleanTypeAnnotation(...args: Array): Object { return builder("BooleanTypeAnnotation", ...args); } -export { BooleanTypeAnnotation as booleanTypeAnnotation }; -export function BooleanLiteralTypeAnnotation(...args: Array): Object { +export function booleanLiteralTypeAnnotation(...args: Array): Object { return builder("BooleanLiteralTypeAnnotation", ...args); } -export { BooleanLiteralTypeAnnotation as booleanLiteralTypeAnnotation }; -export function NullLiteralTypeAnnotation(...args: Array): Object { +export function nullLiteralTypeAnnotation(...args: Array): Object { return builder("NullLiteralTypeAnnotation", ...args); } -export { NullLiteralTypeAnnotation as nullLiteralTypeAnnotation }; -export function ClassImplements(...args: Array): Object { +export function classImplements(...args: Array): Object { return builder("ClassImplements", ...args); } -export { ClassImplements as classImplements }; -export function DeclareClass(...args: Array): Object { +export function declareClass(...args: Array): Object { return builder("DeclareClass", ...args); } -export { DeclareClass as declareClass }; -export function DeclareFunction(...args: Array): Object { +export function declareFunction(...args: Array): Object { return builder("DeclareFunction", ...args); } -export { DeclareFunction as declareFunction }; -export function DeclareInterface(...args: Array): Object { +export function declareInterface(...args: Array): Object { return builder("DeclareInterface", ...args); } -export { DeclareInterface as declareInterface }; -export function DeclareModule(...args: Array): Object { +export function declareModule(...args: Array): Object { return builder("DeclareModule", ...args); } -export { DeclareModule as declareModule }; -export function DeclareModuleExports(...args: Array): Object { +export function declareModuleExports(...args: Array): Object { return builder("DeclareModuleExports", ...args); } -export { DeclareModuleExports as declareModuleExports }; -export function DeclareTypeAlias(...args: Array): Object { +export function declareTypeAlias(...args: Array): Object { return builder("DeclareTypeAlias", ...args); } -export { DeclareTypeAlias as declareTypeAlias }; -export function DeclareOpaqueType(...args: Array): Object { +export function declareOpaqueType(...args: Array): Object { return builder("DeclareOpaqueType", ...args); } -export { DeclareOpaqueType as declareOpaqueType }; -export function DeclareVariable(...args: Array): Object { +export function declareVariable(...args: Array): Object { return builder("DeclareVariable", ...args); } -export { DeclareVariable as declareVariable }; -export function DeclareExportDeclaration(...args: Array): Object { +export function declareExportDeclaration(...args: Array): Object { return builder("DeclareExportDeclaration", ...args); } -export { DeclareExportDeclaration as declareExportDeclaration }; -export function DeclareExportAllDeclaration(...args: Array): Object { +export function declareExportAllDeclaration(...args: Array): Object { return builder("DeclareExportAllDeclaration", ...args); } -export { DeclareExportAllDeclaration as declareExportAllDeclaration }; -export function DeclaredPredicate(...args: Array): Object { +export function declaredPredicate(...args: Array): Object { return builder("DeclaredPredicate", ...args); } -export { DeclaredPredicate as declaredPredicate }; -export function ExistsTypeAnnotation(...args: Array): Object { +export function existsTypeAnnotation(...args: Array): Object { return builder("ExistsTypeAnnotation", ...args); } -export { ExistsTypeAnnotation as existsTypeAnnotation }; -export function FunctionTypeAnnotation(...args: Array): Object { +export function functionTypeAnnotation(...args: Array): Object { return builder("FunctionTypeAnnotation", ...args); } -export { FunctionTypeAnnotation as functionTypeAnnotation }; -export function FunctionTypeParam(...args: Array): Object { +export function functionTypeParam(...args: Array): Object { return builder("FunctionTypeParam", ...args); } -export { FunctionTypeParam as functionTypeParam }; -export function GenericTypeAnnotation(...args: Array): Object { +export function genericTypeAnnotation(...args: Array): Object { return builder("GenericTypeAnnotation", ...args); } -export { GenericTypeAnnotation as genericTypeAnnotation }; -export function InferredPredicate(...args: Array): Object { +export function inferredPredicate(...args: Array): Object { return builder("InferredPredicate", ...args); } -export { InferredPredicate as inferredPredicate }; -export function InterfaceExtends(...args: Array): Object { +export function interfaceExtends(...args: Array): Object { return builder("InterfaceExtends", ...args); } -export { InterfaceExtends as interfaceExtends }; -export function InterfaceDeclaration(...args: Array): Object { +export function interfaceDeclaration(...args: Array): Object { return builder("InterfaceDeclaration", ...args); } -export { InterfaceDeclaration as interfaceDeclaration }; -export function InterfaceTypeAnnotation(...args: Array): Object { +export function interfaceTypeAnnotation(...args: Array): Object { return builder("InterfaceTypeAnnotation", ...args); } -export { InterfaceTypeAnnotation as interfaceTypeAnnotation }; -export function IntersectionTypeAnnotation(...args: Array): Object { +export function intersectionTypeAnnotation(...args: Array): Object { return builder("IntersectionTypeAnnotation", ...args); } -export { IntersectionTypeAnnotation as intersectionTypeAnnotation }; -export function MixedTypeAnnotation(...args: Array): Object { +export function mixedTypeAnnotation(...args: Array): Object { return builder("MixedTypeAnnotation", ...args); } -export { MixedTypeAnnotation as mixedTypeAnnotation }; -export function EmptyTypeAnnotation(...args: Array): Object { +export function emptyTypeAnnotation(...args: Array): Object { return builder("EmptyTypeAnnotation", ...args); } -export { EmptyTypeAnnotation as emptyTypeAnnotation }; -export function NullableTypeAnnotation(...args: Array): Object { +export function nullableTypeAnnotation(...args: Array): Object { return builder("NullableTypeAnnotation", ...args); } -export { NullableTypeAnnotation as nullableTypeAnnotation }; -export function NumberLiteralTypeAnnotation(...args: Array): Object { +export function numberLiteralTypeAnnotation(...args: Array): Object { return builder("NumberLiteralTypeAnnotation", ...args); } -export { NumberLiteralTypeAnnotation as numberLiteralTypeAnnotation }; -export function NumberTypeAnnotation(...args: Array): Object { +export function numberTypeAnnotation(...args: Array): Object { return builder("NumberTypeAnnotation", ...args); } -export { NumberTypeAnnotation as numberTypeAnnotation }; -export function ObjectTypeAnnotation(...args: Array): Object { +export function objectTypeAnnotation(...args: Array): Object { return builder("ObjectTypeAnnotation", ...args); } -export { ObjectTypeAnnotation as objectTypeAnnotation }; -export function ObjectTypeInternalSlot(...args: Array): Object { +export function objectTypeInternalSlot(...args: Array): Object { return builder("ObjectTypeInternalSlot", ...args); } -export { ObjectTypeInternalSlot as objectTypeInternalSlot }; -export function ObjectTypeCallProperty(...args: Array): Object { +export function objectTypeCallProperty(...args: Array): Object { return builder("ObjectTypeCallProperty", ...args); } -export { ObjectTypeCallProperty as objectTypeCallProperty }; -export function ObjectTypeIndexer(...args: Array): Object { +export function objectTypeIndexer(...args: Array): Object { return builder("ObjectTypeIndexer", ...args); } -export { ObjectTypeIndexer as objectTypeIndexer }; -export function ObjectTypeProperty(...args: Array): Object { +export function objectTypeProperty(...args: Array): Object { return builder("ObjectTypeProperty", ...args); } -export { ObjectTypeProperty as objectTypeProperty }; -export function ObjectTypeSpreadProperty(...args: Array): Object { +export function objectTypeSpreadProperty(...args: Array): Object { return builder("ObjectTypeSpreadProperty", ...args); } -export { ObjectTypeSpreadProperty as objectTypeSpreadProperty }; -export function OpaqueType(...args: Array): Object { +export function opaqueType(...args: Array): Object { return builder("OpaqueType", ...args); } -export { OpaqueType as opaqueType }; -export function QualifiedTypeIdentifier(...args: Array): Object { +export function qualifiedTypeIdentifier(...args: Array): Object { return builder("QualifiedTypeIdentifier", ...args); } -export { QualifiedTypeIdentifier as qualifiedTypeIdentifier }; -export function StringLiteralTypeAnnotation(...args: Array): Object { +export function stringLiteralTypeAnnotation(...args: Array): Object { return builder("StringLiteralTypeAnnotation", ...args); } -export { StringLiteralTypeAnnotation as stringLiteralTypeAnnotation }; -export function StringTypeAnnotation(...args: Array): Object { +export function stringTypeAnnotation(...args: Array): Object { return builder("StringTypeAnnotation", ...args); } -export { StringTypeAnnotation as stringTypeAnnotation }; -export function SymbolTypeAnnotation(...args: Array): Object { +export function symbolTypeAnnotation(...args: Array): Object { return builder("SymbolTypeAnnotation", ...args); } -export { SymbolTypeAnnotation as symbolTypeAnnotation }; -export function ThisTypeAnnotation(...args: Array): Object { +export function thisTypeAnnotation(...args: Array): Object { return builder("ThisTypeAnnotation", ...args); } -export { ThisTypeAnnotation as thisTypeAnnotation }; -export function TupleTypeAnnotation(...args: Array): Object { +export function tupleTypeAnnotation(...args: Array): Object { return builder("TupleTypeAnnotation", ...args); } -export { TupleTypeAnnotation as tupleTypeAnnotation }; -export function TypeofTypeAnnotation(...args: Array): Object { +export function typeofTypeAnnotation(...args: Array): Object { return builder("TypeofTypeAnnotation", ...args); } -export { TypeofTypeAnnotation as typeofTypeAnnotation }; -export function TypeAlias(...args: Array): Object { +export function typeAlias(...args: Array): Object { return builder("TypeAlias", ...args); } -export { TypeAlias as typeAlias }; -export function TypeAnnotation(...args: Array): Object { +export function typeAnnotation(...args: Array): Object { return builder("TypeAnnotation", ...args); } -export { TypeAnnotation as typeAnnotation }; -export function TypeCastExpression(...args: Array): Object { +export function typeCastExpression(...args: Array): Object { return builder("TypeCastExpression", ...args); } -export { TypeCastExpression as typeCastExpression }; -export function TypeParameter(...args: Array): Object { +export function typeParameter(...args: Array): Object { return builder("TypeParameter", ...args); } -export { TypeParameter as typeParameter }; -export function TypeParameterDeclaration(...args: Array): Object { +export function typeParameterDeclaration(...args: Array): Object { return builder("TypeParameterDeclaration", ...args); } -export { TypeParameterDeclaration as typeParameterDeclaration }; -export function TypeParameterInstantiation(...args: Array): Object { +export function typeParameterInstantiation(...args: Array): Object { return builder("TypeParameterInstantiation", ...args); } -export { TypeParameterInstantiation as typeParameterInstantiation }; -export function UnionTypeAnnotation(...args: Array): Object { +export function unionTypeAnnotation(...args: Array): Object { return builder("UnionTypeAnnotation", ...args); } -export { UnionTypeAnnotation as unionTypeAnnotation }; -export function Variance(...args: Array): Object { +export function variance(...args: Array): Object { return builder("Variance", ...args); } -export { Variance as variance }; -export function VoidTypeAnnotation(...args: Array): Object { +export function voidTypeAnnotation(...args: Array): Object { return builder("VoidTypeAnnotation", ...args); } -export { VoidTypeAnnotation as voidTypeAnnotation }; -export function EnumDeclaration(...args: Array): Object { +export function enumDeclaration(...args: Array): Object { return builder("EnumDeclaration", ...args); } -export { EnumDeclaration as enumDeclaration }; -export function EnumBooleanBody(...args: Array): Object { +export function enumBooleanBody(...args: Array): Object { return builder("EnumBooleanBody", ...args); } -export { EnumBooleanBody as enumBooleanBody }; -export function EnumNumberBody(...args: Array): Object { +export function enumNumberBody(...args: Array): Object { return builder("EnumNumberBody", ...args); } -export { EnumNumberBody as enumNumberBody }; -export function EnumStringBody(...args: Array): Object { +export function enumStringBody(...args: Array): Object { return builder("EnumStringBody", ...args); } -export { EnumStringBody as enumStringBody }; -export function EnumSymbolBody(...args: Array): Object { +export function enumSymbolBody(...args: Array): Object { return builder("EnumSymbolBody", ...args); } -export { EnumSymbolBody as enumSymbolBody }; -export function EnumBooleanMember(...args: Array): Object { +export function enumBooleanMember(...args: Array): Object { return builder("EnumBooleanMember", ...args); } -export { EnumBooleanMember as enumBooleanMember }; -export function EnumNumberMember(...args: Array): Object { +export function enumNumberMember(...args: Array): Object { return builder("EnumNumberMember", ...args); } -export { EnumNumberMember as enumNumberMember }; -export function EnumStringMember(...args: Array): Object { +export function enumStringMember(...args: Array): Object { return builder("EnumStringMember", ...args); } -export { EnumStringMember as enumStringMember }; -export function EnumDefaultedMember(...args: Array): Object { +export function enumDefaultedMember(...args: Array): Object { return builder("EnumDefaultedMember", ...args); } -export { EnumDefaultedMember as enumDefaultedMember }; -export function JSXAttribute(...args: Array): Object { +export function jsxAttribute(...args: Array): Object { return builder("JSXAttribute", ...args); } -export { JSXAttribute as jsxAttribute }; -export function JSXClosingElement(...args: Array): Object { +export function jsxClosingElement(...args: Array): Object { return builder("JSXClosingElement", ...args); } -export { JSXClosingElement as jsxClosingElement }; -export function JSXElement(...args: Array): Object { +export function jsxElement(...args: Array): Object { return builder("JSXElement", ...args); } -export { JSXElement as jsxElement }; -export function JSXEmptyExpression(...args: Array): Object { +export function jsxEmptyExpression(...args: Array): Object { return builder("JSXEmptyExpression", ...args); } -export { JSXEmptyExpression as jsxEmptyExpression }; -export function JSXExpressionContainer(...args: Array): Object { +export function jsxExpressionContainer(...args: Array): Object { return builder("JSXExpressionContainer", ...args); } -export { JSXExpressionContainer as jsxExpressionContainer }; -export function JSXSpreadChild(...args: Array): Object { +export function jsxSpreadChild(...args: Array): Object { return builder("JSXSpreadChild", ...args); } -export { JSXSpreadChild as jsxSpreadChild }; -export function JSXIdentifier(...args: Array): Object { +export function jsxIdentifier(...args: Array): Object { return builder("JSXIdentifier", ...args); } -export { JSXIdentifier as jsxIdentifier }; -export function JSXMemberExpression(...args: Array): Object { +export function jsxMemberExpression(...args: Array): Object { return builder("JSXMemberExpression", ...args); } -export { JSXMemberExpression as jsxMemberExpression }; -export function JSXNamespacedName(...args: Array): Object { +export function jsxNamespacedName(...args: Array): Object { return builder("JSXNamespacedName", ...args); } -export { JSXNamespacedName as jsxNamespacedName }; -export function JSXOpeningElement(...args: Array): Object { +export function jsxOpeningElement(...args: Array): Object { return builder("JSXOpeningElement", ...args); } -export { JSXOpeningElement as jsxOpeningElement }; -export function JSXSpreadAttribute(...args: Array): Object { +export function jsxSpreadAttribute(...args: Array): Object { return builder("JSXSpreadAttribute", ...args); } -export { JSXSpreadAttribute as jsxSpreadAttribute }; -export function JSXText(...args: Array): Object { +export function jsxText(...args: Array): Object { return builder("JSXText", ...args); } -export { JSXText as jsxText }; -export function JSXFragment(...args: Array): Object { +export function jsxFragment(...args: Array): Object { return builder("JSXFragment", ...args); } -export { JSXFragment as jsxFragment }; -export function JSXOpeningFragment(...args: Array): Object { +export function jsxOpeningFragment(...args: Array): Object { return builder("JSXOpeningFragment", ...args); } -export { JSXOpeningFragment as jsxOpeningFragment }; -export function JSXClosingFragment(...args: Array): Object { +export function jsxClosingFragment(...args: Array): Object { return builder("JSXClosingFragment", ...args); } -export { JSXClosingFragment as jsxClosingFragment }; -export function Noop(...args: Array): Object { +export function noop(...args: Array): Object { return builder("Noop", ...args); } -export { Noop as noop }; -export function Placeholder(...args: Array): Object { +export function placeholder(...args: Array): Object { return builder("Placeholder", ...args); } -export { Placeholder as placeholder }; -export function V8IntrinsicIdentifier(...args: Array): Object { +export function v8IntrinsicIdentifier(...args: Array): Object { return builder("V8IntrinsicIdentifier", ...args); } -export { V8IntrinsicIdentifier as v8IntrinsicIdentifier }; -export function ArgumentPlaceholder(...args: Array): Object { +export function argumentPlaceholder(...args: Array): Object { return builder("ArgumentPlaceholder", ...args); } -export { ArgumentPlaceholder as argumentPlaceholder }; -export function AwaitExpression(...args: Array): Object { - return builder("AwaitExpression", ...args); -} -export { AwaitExpression as awaitExpression }; -export function BindExpression(...args: Array): Object { +export function bindExpression(...args: Array): Object { return builder("BindExpression", ...args); } -export { BindExpression as bindExpression }; -export function ClassProperty(...args: Array): Object { +export function classProperty(...args: Array): Object { return builder("ClassProperty", ...args); } -export { ClassProperty as classProperty }; -export function OptionalMemberExpression(...args: Array): Object { - return builder("OptionalMemberExpression", ...args); -} -export { OptionalMemberExpression as optionalMemberExpression }; -export function PipelineTopicExpression(...args: Array): Object { +export function pipelineTopicExpression(...args: Array): Object { return builder("PipelineTopicExpression", ...args); } -export { PipelineTopicExpression as pipelineTopicExpression }; -export function PipelineBareFunction(...args: Array): Object { +export function pipelineBareFunction(...args: Array): Object { return builder("PipelineBareFunction", ...args); } -export { PipelineBareFunction as pipelineBareFunction }; -export function PipelinePrimaryTopicReference(...args: Array): Object { +export function pipelinePrimaryTopicReference(...args: Array): Object { return builder("PipelinePrimaryTopicReference", ...args); } -export { PipelinePrimaryTopicReference as pipelinePrimaryTopicReference }; -export function OptionalCallExpression(...args: Array): Object { - return builder("OptionalCallExpression", ...args); -} -export { OptionalCallExpression as optionalCallExpression }; -export function ClassPrivateProperty(...args: Array): Object { +export function classPrivateProperty(...args: Array): Object { return builder("ClassPrivateProperty", ...args); } -export { ClassPrivateProperty as classPrivateProperty }; -export function ClassPrivateMethod(...args: Array): Object { +export function classPrivateMethod(...args: Array): Object { return builder("ClassPrivateMethod", ...args); } -export { ClassPrivateMethod as classPrivateMethod }; -export function Import(...args: Array): Object { - return builder("Import", ...args); -} -export { Import as import }; -export function ImportAttribute(...args: Array): Object { +export function importAttribute(...args: Array): Object { return builder("ImportAttribute", ...args); } -export { ImportAttribute as importAttribute }; -export function Decorator(...args: Array): Object { +export function decorator(...args: Array): Object { return builder("Decorator", ...args); } -export { Decorator as decorator }; -export function DoExpression(...args: Array): Object { +export function doExpression(...args: Array): Object { return builder("DoExpression", ...args); } -export { DoExpression as doExpression }; -export function ExportDefaultSpecifier(...args: Array): Object { +export function exportDefaultSpecifier(...args: Array): Object { return builder("ExportDefaultSpecifier", ...args); } -export { ExportDefaultSpecifier as exportDefaultSpecifier }; -export function ExportNamespaceSpecifier(...args: Array): Object { - return builder("ExportNamespaceSpecifier", ...args); -} -export { ExportNamespaceSpecifier as exportNamespaceSpecifier }; -export function PrivateName(...args: Array): Object { +export function privateName(...args: Array): Object { return builder("PrivateName", ...args); } -export { PrivateName as privateName }; -export function BigIntLiteral(...args: Array): Object { - return builder("BigIntLiteral", ...args); -} -export { BigIntLiteral as bigIntLiteral }; -export function RecordExpression(...args: Array): Object { +export function recordExpression(...args: Array): Object { return builder("RecordExpression", ...args); } -export { RecordExpression as recordExpression }; -export function TupleExpression(...args: Array): Object { +export function tupleExpression(...args: Array): Object { return builder("TupleExpression", ...args); } -export { TupleExpression as tupleExpression }; -export function TSParameterProperty(...args: Array): Object { +export function decimalLiteral(...args: Array): Object { + return builder("DecimalLiteral", ...args); +} +export function tsParameterProperty(...args: Array): Object { return builder("TSParameterProperty", ...args); } -export { TSParameterProperty as tsParameterProperty }; -export function TSDeclareFunction(...args: Array): Object { +export function tsDeclareFunction(...args: Array): Object { return builder("TSDeclareFunction", ...args); } -export { TSDeclareFunction as tsDeclareFunction }; -export function TSDeclareMethod(...args: Array): Object { +export function tsDeclareMethod(...args: Array): Object { return builder("TSDeclareMethod", ...args); } -export { TSDeclareMethod as tsDeclareMethod }; -export function TSQualifiedName(...args: Array): Object { +export function tsQualifiedName(...args: Array): Object { return builder("TSQualifiedName", ...args); } -export { TSQualifiedName as tsQualifiedName }; -export function TSCallSignatureDeclaration(...args: Array): Object { +export function tsCallSignatureDeclaration(...args: Array): Object { return builder("TSCallSignatureDeclaration", ...args); } -export { TSCallSignatureDeclaration as tsCallSignatureDeclaration }; -export function TSConstructSignatureDeclaration(...args: Array): Object { +export function tsConstructSignatureDeclaration(...args: Array): Object { return builder("TSConstructSignatureDeclaration", ...args); } -export { TSConstructSignatureDeclaration as tsConstructSignatureDeclaration }; -export function TSPropertySignature(...args: Array): Object { +export function tsPropertySignature(...args: Array): Object { return builder("TSPropertySignature", ...args); } -export { TSPropertySignature as tsPropertySignature }; -export function TSMethodSignature(...args: Array): Object { +export function tsMethodSignature(...args: Array): Object { return builder("TSMethodSignature", ...args); } -export { TSMethodSignature as tsMethodSignature }; -export function TSIndexSignature(...args: Array): Object { +export function tsIndexSignature(...args: Array): Object { return builder("TSIndexSignature", ...args); } -export { TSIndexSignature as tsIndexSignature }; -export function TSAnyKeyword(...args: Array): Object { +export function tsAnyKeyword(...args: Array): Object { return builder("TSAnyKeyword", ...args); } -export { TSAnyKeyword as tsAnyKeyword }; -export function TSBooleanKeyword(...args: Array): Object { +export function tsBooleanKeyword(...args: Array): Object { return builder("TSBooleanKeyword", ...args); } -export { TSBooleanKeyword as tsBooleanKeyword }; -export function TSBigIntKeyword(...args: Array): Object { +export function tsBigIntKeyword(...args: Array): Object { return builder("TSBigIntKeyword", ...args); } -export { TSBigIntKeyword as tsBigIntKeyword }; -export function TSNeverKeyword(...args: Array): Object { +export function tsNeverKeyword(...args: Array): Object { return builder("TSNeverKeyword", ...args); } -export { TSNeverKeyword as tsNeverKeyword }; -export function TSNullKeyword(...args: Array): Object { +export function tsNullKeyword(...args: Array): Object { return builder("TSNullKeyword", ...args); } -export { TSNullKeyword as tsNullKeyword }; -export function TSNumberKeyword(...args: Array): Object { +export function tsNumberKeyword(...args: Array): Object { return builder("TSNumberKeyword", ...args); } -export { TSNumberKeyword as tsNumberKeyword }; -export function TSObjectKeyword(...args: Array): Object { +export function tsObjectKeyword(...args: Array): Object { return builder("TSObjectKeyword", ...args); } -export { TSObjectKeyword as tsObjectKeyword }; -export function TSStringKeyword(...args: Array): Object { +export function tsStringKeyword(...args: Array): Object { return builder("TSStringKeyword", ...args); } -export { TSStringKeyword as tsStringKeyword }; -export function TSSymbolKeyword(...args: Array): Object { +export function tsSymbolKeyword(...args: Array): Object { return builder("TSSymbolKeyword", ...args); } -export { TSSymbolKeyword as tsSymbolKeyword }; -export function TSUndefinedKeyword(...args: Array): Object { +export function tsUndefinedKeyword(...args: Array): Object { return builder("TSUndefinedKeyword", ...args); } -export { TSUndefinedKeyword as tsUndefinedKeyword }; -export function TSUnknownKeyword(...args: Array): Object { +export function tsUnknownKeyword(...args: Array): Object { return builder("TSUnknownKeyword", ...args); } -export { TSUnknownKeyword as tsUnknownKeyword }; -export function TSVoidKeyword(...args: Array): Object { +export function tsVoidKeyword(...args: Array): Object { return builder("TSVoidKeyword", ...args); } -export { TSVoidKeyword as tsVoidKeyword }; -export function TSThisType(...args: Array): Object { +export function tsThisType(...args: Array): Object { return builder("TSThisType", ...args); } -export { TSThisType as tsThisType }; -export function TSFunctionType(...args: Array): Object { +export function tsFunctionType(...args: Array): Object { return builder("TSFunctionType", ...args); } -export { TSFunctionType as tsFunctionType }; -export function TSConstructorType(...args: Array): Object { +export function tsConstructorType(...args: Array): Object { return builder("TSConstructorType", ...args); } -export { TSConstructorType as tsConstructorType }; -export function TSTypeReference(...args: Array): Object { +export function tsTypeReference(...args: Array): Object { return builder("TSTypeReference", ...args); } -export { TSTypeReference as tsTypeReference }; -export function TSTypePredicate(...args: Array): Object { +export function tsTypePredicate(...args: Array): Object { return builder("TSTypePredicate", ...args); } -export { TSTypePredicate as tsTypePredicate }; -export function TSTypeQuery(...args: Array): Object { +export function tsTypeQuery(...args: Array): Object { return builder("TSTypeQuery", ...args); } -export { TSTypeQuery as tsTypeQuery }; -export function TSTypeLiteral(...args: Array): Object { +export function tsTypeLiteral(...args: Array): Object { return builder("TSTypeLiteral", ...args); } -export { TSTypeLiteral as tsTypeLiteral }; -export function TSArrayType(...args: Array): Object { +export function tsArrayType(...args: Array): Object { return builder("TSArrayType", ...args); } -export { TSArrayType as tsArrayType }; -export function TSTupleType(...args: Array): Object { +export function tsTupleType(...args: Array): Object { return builder("TSTupleType", ...args); } -export { TSTupleType as tsTupleType }; -export function TSOptionalType(...args: Array): Object { +export function tsOptionalType(...args: Array): Object { return builder("TSOptionalType", ...args); } -export { TSOptionalType as tsOptionalType }; -export function TSRestType(...args: Array): Object { +export function tsRestType(...args: Array): Object { return builder("TSRestType", ...args); } -export { TSRestType as tsRestType }; -export function TSUnionType(...args: Array): Object { +export function tsNamedTupleMember(...args: Array): Object { + return builder("TSNamedTupleMember", ...args); +} +export function tsUnionType(...args: Array): Object { return builder("TSUnionType", ...args); } -export { TSUnionType as tsUnionType }; -export function TSIntersectionType(...args: Array): Object { +export function tsIntersectionType(...args: Array): Object { return builder("TSIntersectionType", ...args); } -export { TSIntersectionType as tsIntersectionType }; -export function TSConditionalType(...args: Array): Object { +export function tsConditionalType(...args: Array): Object { return builder("TSConditionalType", ...args); } -export { TSConditionalType as tsConditionalType }; -export function TSInferType(...args: Array): Object { +export function tsInferType(...args: Array): Object { return builder("TSInferType", ...args); } -export { TSInferType as tsInferType }; -export function TSParenthesizedType(...args: Array): Object { +export function tsParenthesizedType(...args: Array): Object { return builder("TSParenthesizedType", ...args); } -export { TSParenthesizedType as tsParenthesizedType }; -export function TSTypeOperator(...args: Array): Object { +export function tsTypeOperator(...args: Array): Object { return builder("TSTypeOperator", ...args); } -export { TSTypeOperator as tsTypeOperator }; -export function TSIndexedAccessType(...args: Array): Object { +export function tsIndexedAccessType(...args: Array): Object { return builder("TSIndexedAccessType", ...args); } -export { TSIndexedAccessType as tsIndexedAccessType }; -export function TSMappedType(...args: Array): Object { +export function tsMappedType(...args: Array): Object { return builder("TSMappedType", ...args); } -export { TSMappedType as tsMappedType }; -export function TSLiteralType(...args: Array): Object { +export function tsLiteralType(...args: Array): Object { return builder("TSLiteralType", ...args); } -export { TSLiteralType as tsLiteralType }; -export function TSExpressionWithTypeArguments(...args: Array): Object { +export function tsExpressionWithTypeArguments(...args: Array): Object { return builder("TSExpressionWithTypeArguments", ...args); } -export { TSExpressionWithTypeArguments as tsExpressionWithTypeArguments }; -export function TSInterfaceDeclaration(...args: Array): Object { +export function tsInterfaceDeclaration(...args: Array): Object { return builder("TSInterfaceDeclaration", ...args); } -export { TSInterfaceDeclaration as tsInterfaceDeclaration }; -export function TSInterfaceBody(...args: Array): Object { +export function tsInterfaceBody(...args: Array): Object { return builder("TSInterfaceBody", ...args); } -export { TSInterfaceBody as tsInterfaceBody }; -export function TSTypeAliasDeclaration(...args: Array): Object { +export function tsTypeAliasDeclaration(...args: Array): Object { return builder("TSTypeAliasDeclaration", ...args); } -export { TSTypeAliasDeclaration as tsTypeAliasDeclaration }; -export function TSAsExpression(...args: Array): Object { +export function tsAsExpression(...args: Array): Object { return builder("TSAsExpression", ...args); } -export { TSAsExpression as tsAsExpression }; -export function TSTypeAssertion(...args: Array): Object { +export function tsTypeAssertion(...args: Array): Object { return builder("TSTypeAssertion", ...args); } -export { TSTypeAssertion as tsTypeAssertion }; -export function TSEnumDeclaration(...args: Array): Object { +export function tsEnumDeclaration(...args: Array): Object { return builder("TSEnumDeclaration", ...args); } -export { TSEnumDeclaration as tsEnumDeclaration }; -export function TSEnumMember(...args: Array): Object { +export function tsEnumMember(...args: Array): Object { return builder("TSEnumMember", ...args); } -export { TSEnumMember as tsEnumMember }; -export function TSModuleDeclaration(...args: Array): Object { +export function tsModuleDeclaration(...args: Array): Object { return builder("TSModuleDeclaration", ...args); } -export { TSModuleDeclaration as tsModuleDeclaration }; -export function TSModuleBlock(...args: Array): Object { +export function tsModuleBlock(...args: Array): Object { return builder("TSModuleBlock", ...args); } -export { TSModuleBlock as tsModuleBlock }; -export function TSImportType(...args: Array): Object { +export function tsImportType(...args: Array): Object { return builder("TSImportType", ...args); } -export { TSImportType as tsImportType }; -export function TSImportEqualsDeclaration(...args: Array): Object { +export function tsImportEqualsDeclaration(...args: Array): Object { return builder("TSImportEqualsDeclaration", ...args); } -export { TSImportEqualsDeclaration as tsImportEqualsDeclaration }; -export function TSExternalModuleReference(...args: Array): Object { +export function tsExternalModuleReference(...args: Array): Object { return builder("TSExternalModuleReference", ...args); } -export { TSExternalModuleReference as tsExternalModuleReference }; -export function TSNonNullExpression(...args: Array): Object { +export function tsNonNullExpression(...args: Array): Object { return builder("TSNonNullExpression", ...args); } -export { TSNonNullExpression as tsNonNullExpression }; -export function TSExportAssignment(...args: Array): Object { +export function tsExportAssignment(...args: Array): Object { return builder("TSExportAssignment", ...args); } -export { TSExportAssignment as tsExportAssignment }; -export function TSNamespaceExportDeclaration(...args: Array): Object { +export function tsNamespaceExportDeclaration(...args: Array): Object { return builder("TSNamespaceExportDeclaration", ...args); } -export { TSNamespaceExportDeclaration as tsNamespaceExportDeclaration }; -export function TSTypeAnnotation(...args: Array): Object { +export function tsTypeAnnotation(...args: Array): Object { return builder("TSTypeAnnotation", ...args); } -export { TSTypeAnnotation as tsTypeAnnotation }; -export function TSTypeParameterInstantiation(...args: Array): Object { +export function tsTypeParameterInstantiation(...args: Array): Object { return builder("TSTypeParameterInstantiation", ...args); } -export { TSTypeParameterInstantiation as tsTypeParameterInstantiation }; -export function TSTypeParameterDeclaration(...args: Array): Object { +export function tsTypeParameterDeclaration(...args: Array): Object { return builder("TSTypeParameterDeclaration", ...args); } -export { TSTypeParameterDeclaration as tsTypeParameterDeclaration }; -export function TSTypeParameter(...args: Array): Object { +export function tsTypeParameter(...args: Array): Object { return builder("TSTypeParameter", ...args); } -export { TSTypeParameter as tsTypeParameter }; export function NumberLiteral(...args: Array): Object { console.trace( "The node type NumberLiteral has been renamed to NumericLiteral", ); - return NumberLiteral("NumberLiteral", ...args); + return builder("NumberLiteral", ...args); } export { NumberLiteral as numberLiteral }; export function RegexLiteral(...args: Array): Object { console.trace("The node type RegexLiteral has been renamed to RegExpLiteral"); - return RegexLiteral("RegexLiteral", ...args); + return builder("RegexLiteral", ...args); } export { RegexLiteral as regexLiteral }; export function RestProperty(...args: Array): Object { console.trace("The node type RestProperty has been renamed to RestElement"); - return RestProperty("RestProperty", ...args); + return builder("RestProperty", ...args); } export { RestProperty as restProperty }; export function SpreadProperty(...args: Array): Object { console.trace( "The node type SpreadProperty has been renamed to SpreadElement", ); - return SpreadProperty("SpreadProperty", ...args); + return builder("SpreadProperty", ...args); } export { SpreadProperty as spreadProperty }; diff --git a/packages/babel-types/src/builders/typescript/createTSUnionType.js b/packages/babel-types/src/builders/typescript/createTSUnionType.js index 49138ad029f3..ae4e5ded1c2f 100644 --- a/packages/babel-types/src/builders/typescript/createTSUnionType.js +++ b/packages/babel-types/src/builders/typescript/createTSUnionType.js @@ -1,9 +1,9 @@ -import { TSUnionType } from "../generated"; +import { tsUnionType } from "../generated"; import removeTypeDuplicates from "../../modifications/typescript/removeTypeDuplicates"; /** * Takes an array of `types` and flattens them, removing duplicates and - * returns a `UnionTypeAnnotation` node containg them. + * returns a `UnionTypeAnnotation` node containing them. */ export default function createTSUnionType( typeAnnotations: Array, @@ -14,6 +14,6 @@ export default function createTSUnionType( if (flattened.length === 1) { return flattened[0]; } else { - return TSUnionType(flattened); + return tsUnionType(flattened); } } diff --git a/packages/babel-types/src/definitions/core.js b/packages/babel-types/src/definitions/core.js index 7300f6e337aa..56c5d7da6d01 100644 --- a/packages/babel-types/src/definitions/core.js +++ b/packages/babel-types/src/definitions/core.js @@ -13,12 +13,15 @@ import { } from "../constants"; import defineType, { + assertShape, + assertOptionalChainStart, assertValueType, assertNodeType, assertNodeOrValueType, assertEach, chain, assertOneOf, + validateOptional, } from "./utils"; defineType("ArrayExpression", { @@ -1085,3 +1088,838 @@ defineType("WithStatement", { }, }, }); + +// --- ES2015 --- +defineType("AssignmentPattern", { + visitor: ["left", "right", "decorators" /* for legacy param decorators */], + builder: ["left", "right"], + aliases: ["Pattern", "PatternLike", "LVal"], + fields: { + ...patternLikeCommon, + left: { + validate: assertNodeType( + "Identifier", + "ObjectPattern", + "ArrayPattern", + "MemberExpression", + ), + }, + right: { + validate: assertNodeType("Expression"), + }, + // For TypeScript + decorators: { + validate: chain( + assertValueType("array"), + assertEach(assertNodeType("Decorator")), + ), + optional: true, + }, + }, +}); + +defineType("ArrayPattern", { + visitor: ["elements", "typeAnnotation"], + builder: ["elements"], + aliases: ["Pattern", "PatternLike", "LVal"], + fields: { + ...patternLikeCommon, + elements: { + validate: chain( + assertValueType("array"), + assertEach(assertNodeOrValueType("null", "PatternLike")), + ), + }, + // For TypeScript + decorators: { + validate: chain( + assertValueType("array"), + assertEach(assertNodeType("Decorator")), + ), + optional: true, + }, + }, +}); + +defineType("ArrowFunctionExpression", { + builder: ["params", "body", "async"], + visitor: ["params", "body", "returnType", "typeParameters"], + aliases: [ + "Scopable", + "Function", + "BlockParent", + "FunctionParent", + "Expression", + "Pureish", + ], + fields: { + ...functionCommon, + ...functionTypeAnnotationCommon, + expression: { + // https://github.com/babel/babylon/issues/505 + validate: assertValueType("boolean"), + }, + body: { + validate: assertNodeType("BlockStatement", "Expression"), + }, + }, +}); + +defineType("ClassBody", { + visitor: ["body"], + fields: { + body: { + validate: chain( + assertValueType("array"), + assertEach( + assertNodeType( + "ClassMethod", + "ClassPrivateMethod", + "ClassProperty", + "ClassPrivateProperty", + "TSDeclareMethod", + "TSIndexSignature", + ), + ), + ), + }, + }, +}); + +defineType("ClassExpression", { + builder: ["id", "superClass", "body", "decorators"], + visitor: [ + "id", + "body", + "superClass", + "mixins", + "typeParameters", + "superTypeParameters", + "implements", + "decorators", + ], + aliases: ["Scopable", "Class", "Expression"], + fields: { + id: { + validate: assertNodeType("Identifier"), + // In declarations, this is missing if this is the + // child of an ExportDefaultDeclaration. + optional: true, + }, + typeParameters: { + validate: assertNodeType( + "TypeParameterDeclaration", + "TSTypeParameterDeclaration", + "Noop", + ), + optional: true, + }, + body: { + validate: assertNodeType("ClassBody"), + }, + superClass: { + optional: true, + validate: assertNodeType("Expression"), + }, + superTypeParameters: { + validate: assertNodeType( + "TypeParameterInstantiation", + "TSTypeParameterInstantiation", + ), + optional: true, + }, + implements: { + validate: chain( + assertValueType("array"), + assertEach( + assertNodeType("TSExpressionWithTypeArguments", "ClassImplements"), + ), + ), + optional: true, + }, + decorators: { + validate: chain( + assertValueType("array"), + assertEach(assertNodeType("Decorator")), + ), + optional: true, + }, + mixins: { + validate: assertNodeType("InterfaceExtends"), + optional: true, + }, + }, +}); + +defineType("ClassDeclaration", { + inherits: "ClassExpression", + aliases: ["Scopable", "Class", "Statement", "Declaration"], + fields: { + id: { + validate: assertNodeType("Identifier"), + }, + typeParameters: { + validate: assertNodeType( + "TypeParameterDeclaration", + "TSTypeParameterDeclaration", + "Noop", + ), + optional: true, + }, + body: { + validate: assertNodeType("ClassBody"), + }, + superClass: { + optional: true, + validate: assertNodeType("Expression"), + }, + superTypeParameters: { + validate: assertNodeType( + "TypeParameterInstantiation", + "TSTypeParameterInstantiation", + ), + optional: true, + }, + implements: { + validate: chain( + assertValueType("array"), + assertEach( + assertNodeType("TSExpressionWithTypeArguments", "ClassImplements"), + ), + ), + optional: true, + }, + decorators: { + validate: chain( + assertValueType("array"), + assertEach(assertNodeType("Decorator")), + ), + optional: true, + }, + mixins: { + validate: assertNodeType("InterfaceExtends"), + optional: true, + }, + declare: { + validate: assertValueType("boolean"), + optional: true, + }, + abstract: { + validate: assertValueType("boolean"), + optional: true, + }, + }, + validate: (function () { + const identifier = assertNodeType("Identifier"); + + return function (parent, key, node) { + if (!process.env.BABEL_TYPES_8_BREAKING) return; + + if (!is("ExportDefaultDeclaration", parent)) { + identifier(node, "id", node.id); + } + }; + })(), +}); + +defineType("ExportAllDeclaration", { + visitor: ["source"], + aliases: [ + "Statement", + "Declaration", + "ModuleDeclaration", + "ExportDeclaration", + ], + fields: { + source: { + validate: assertNodeType("StringLiteral"), + }, + }, +}); + +defineType("ExportDefaultDeclaration", { + visitor: ["declaration"], + aliases: [ + "Statement", + "Declaration", + "ModuleDeclaration", + "ExportDeclaration", + ], + fields: { + declaration: { + validate: assertNodeType( + "FunctionDeclaration", + "TSDeclareFunction", + "ClassDeclaration", + "Expression", + ), + }, + }, +}); + +defineType("ExportNamedDeclaration", { + visitor: ["declaration", "specifiers", "source"], + aliases: [ + "Statement", + "Declaration", + "ModuleDeclaration", + "ExportDeclaration", + ], + fields: { + declaration: { + optional: true, + validate: chain( + assertNodeType("Declaration"), + Object.assign( + function (node, key, val) { + if (!process.env.BABEL_TYPES_8_BREAKING) return; + + // This validator isn't put at the top level because we can run it + // even if this node doesn't have a parent. + + if (val && node.specifiers.length) { + throw new TypeError( + "Only declaration or specifiers is allowed on ExportNamedDeclaration", + ); + } + }, + { oneOfNodeTypes: ["Declaration"] }, + ), + function (node, key, val) { + if (!process.env.BABEL_TYPES_8_BREAKING) return; + + // This validator isn't put at the top level because we can run it + // even if this node doesn't have a parent. + + if (val && node.source) { + throw new TypeError("Cannot export a declaration from a source"); + } + }, + ), + }, + specifiers: { + default: [], + validate: chain( + assertValueType("array"), + assertEach( + (function () { + const sourced = assertNodeType( + "ExportSpecifier", + "ExportDefaultSpecifier", + "ExportNamespaceSpecifier", + ); + const sourceless = assertNodeType("ExportSpecifier"); + + if (!process.env.BABEL_TYPES_8_BREAKING) return sourced; + + return function (node, key, val) { + const validator = node.source ? sourced : sourceless; + validator(node, key, val); + }; + })(), + ), + ), + }, + source: { + validate: assertNodeType("StringLiteral"), + optional: true, + }, + exportKind: validateOptional(assertOneOf("type", "value")), + }, +}); + +defineType("ExportSpecifier", { + visitor: ["local", "exported"], + aliases: ["ModuleSpecifier"], + fields: { + local: { + validate: assertNodeType("Identifier"), + }, + exported: { + validate: assertNodeType("Identifier"), + }, + }, +}); + +defineType("ForOfStatement", { + visitor: ["left", "right", "body"], + builder: ["left", "right", "body", "await"], + aliases: [ + "Scopable", + "Statement", + "For", + "BlockParent", + "Loop", + "ForXStatement", + ], + fields: { + left: { + validate: (function () { + if (!process.env.BABEL_TYPES_8_BREAKING) { + return assertNodeType("VariableDeclaration", "LVal"); + } + + const declaration = assertNodeType("VariableDeclaration"); + const lval = assertNodeType( + "Identifier", + "MemberExpression", + "ArrayPattern", + "ObjectPattern", + ); + + return function (node, key, val) { + if (is("VariableDeclaration", val)) { + declaration(node, key, val); + } else { + lval(node, key, val); + } + }; + })(), + }, + right: { + validate: assertNodeType("Expression"), + }, + body: { + validate: assertNodeType("Statement"), + }, + await: { + default: false, + }, + }, +}); + +defineType("ImportDeclaration", { + visitor: ["specifiers", "source"], + aliases: ["Statement", "Declaration", "ModuleDeclaration"], + fields: { + specifiers: { + validate: chain( + assertValueType("array"), + assertEach( + assertNodeType( + "ImportSpecifier", + "ImportDefaultSpecifier", + "ImportNamespaceSpecifier", + ), + ), + ), + }, + source: { + validate: assertNodeType("StringLiteral"), + }, + importKind: { + // Handle TypeScript/Flowtype's extension "import type foo from" + // TypeScript doesn't support typeof + validate: assertOneOf("type", "typeof", "value"), + optional: true, + }, + }, +}); + +defineType("ImportDefaultSpecifier", { + visitor: ["local"], + aliases: ["ModuleSpecifier"], + fields: { + local: { + validate: assertNodeType("Identifier"), + }, + }, +}); + +defineType("ImportNamespaceSpecifier", { + visitor: ["local"], + aliases: ["ModuleSpecifier"], + fields: { + local: { + validate: assertNodeType("Identifier"), + }, + }, +}); + +defineType("ImportSpecifier", { + visitor: ["local", "imported"], + aliases: ["ModuleSpecifier"], + fields: { + local: { + validate: assertNodeType("Identifier"), + }, + imported: { + validate: assertNodeType("Identifier"), + }, + importKind: { + // Handle Flowtype's extension "import {typeof foo} from" + validate: assertOneOf("type", "typeof"), + optional: true, + }, + }, +}); + +defineType("MetaProperty", { + visitor: ["meta", "property"], + aliases: ["Expression"], + fields: { + meta: { + validate: chain( + assertNodeType("Identifier"), + Object.assign( + function (node, key, val) { + if (!process.env.BABEL_TYPES_8_BREAKING) return; + + let property; + switch (val.name) { + case "function": + property = "sent"; + break; + case "new": + property = "target"; + break; + case "import": + property = "meta"; + break; + } + if (!is("Identifier", node.property, { name: property })) { + throw new TypeError("Unrecognised MetaProperty"); + } + }, + { oneOfNodeTypes: ["Identifier"] }, + ), + ), + }, + property: { + validate: assertNodeType("Identifier"), + }, + }, +}); + +export const classMethodOrPropertyCommon = { + abstract: { + validate: assertValueType("boolean"), + optional: true, + }, + accessibility: { + validate: assertOneOf("public", "private", "protected"), + optional: true, + }, + static: { + default: false, + }, + computed: { + default: false, + }, + optional: { + validate: assertValueType("boolean"), + optional: true, + }, + key: { + validate: chain( + (function () { + const normal = assertNodeType( + "Identifier", + "StringLiteral", + "NumericLiteral", + ); + const computed = assertNodeType("Expression"); + + return function (node: Object, key: string, val: any) { + const validator = node.computed ? computed : normal; + validator(node, key, val); + }; + })(), + assertNodeType( + "Identifier", + "StringLiteral", + "NumericLiteral", + "Expression", + ), + ), + }, +}; + +export const classMethodOrDeclareMethodCommon = { + ...functionCommon, + ...classMethodOrPropertyCommon, + kind: { + validate: assertOneOf("get", "set", "method", "constructor"), + default: "method", + }, + access: { + validate: chain( + assertValueType("string"), + assertOneOf("public", "private", "protected"), + ), + optional: true, + }, + decorators: { + validate: chain( + assertValueType("array"), + assertEach(assertNodeType("Decorator")), + ), + optional: true, + }, +}; + +defineType("ClassMethod", { + aliases: ["Function", "Scopable", "BlockParent", "FunctionParent", "Method"], + builder: [ + "kind", + "key", + "params", + "body", + "computed", + "static", + "generator", + "async", + ], + visitor: [ + "key", + "params", + "body", + "decorators", + "returnType", + "typeParameters", + ], + fields: { + ...classMethodOrDeclareMethodCommon, + ...functionTypeAnnotationCommon, + body: { + validate: assertNodeType("BlockStatement"), + }, + }, +}); + +defineType("ObjectPattern", { + visitor: [ + "properties", + "typeAnnotation", + "decorators" /* for legacy param decorators */, + ], + builder: ["properties"], + aliases: ["Pattern", "PatternLike", "LVal"], + fields: { + ...patternLikeCommon, + properties: { + validate: chain( + assertValueType("array"), + assertEach(assertNodeType("RestElement", "ObjectProperty")), + ), + }, + }, +}); + +defineType("SpreadElement", { + visitor: ["argument"], + aliases: ["UnaryLike"], + deprecatedAlias: "SpreadProperty", + fields: { + argument: { + validate: assertNodeType("Expression"), + }, + }, +}); + +defineType("Super", { + aliases: ["Expression"], +}); + +defineType("TaggedTemplateExpression", { + visitor: ["tag", "quasi"], + aliases: ["Expression"], + fields: { + tag: { + validate: assertNodeType("Expression"), + }, + quasi: { + validate: assertNodeType("TemplateLiteral"), + }, + typeParameters: { + validate: assertNodeType( + "TypeParameterInstantiation", + "TSTypeParameterInstantiation", + ), + optional: true, + }, + }, +}); + +defineType("TemplateElement", { + builder: ["value", "tail"], + fields: { + value: { + validate: assertShape({ + raw: { + validate: assertValueType("string"), + }, + cooked: { + validate: assertValueType("string"), + optional: true, + }, + }), + }, + tail: { + default: false, + }, + }, +}); + +defineType("TemplateLiteral", { + visitor: ["quasis", "expressions"], + aliases: ["Expression", "Literal"], + fields: { + quasis: { + validate: chain( + assertValueType("array"), + assertEach(assertNodeType("TemplateElement")), + ), + }, + expressions: { + validate: chain( + assertValueType("array"), + assertEach(assertNodeType("Expression")), + function (node, key, val) { + if (node.quasis.length !== val.length + 1) { + throw new TypeError( + `Number of ${ + node.type + } quasis should be exactly one more than the number of expressions.\nExpected ${ + val.length + 1 + } quasis but got ${node.quasis.length}`, + ); + } + }, + ), + }, + }, +}); + +defineType("YieldExpression", { + builder: ["argument", "delegate"], + visitor: ["argument"], + aliases: ["Expression", "Terminatorless"], + fields: { + delegate: { + validate: chain( + assertValueType("boolean"), + Object.assign( + function (node, key, val) { + if (!process.env.BABEL_TYPES_8_BREAKING) return; + + if (val && !node.argument) { + throw new TypeError( + "Property delegate of YieldExpression cannot be true if there is no argument", + ); + } + }, + { type: "boolean" }, + ), + ), + default: false, + }, + argument: { + optional: true, + validate: assertNodeType("Expression"), + }, + }, +}); + +// --- ES2017 --- +defineType("AwaitExpression", { + builder: ["argument"], + visitor: ["argument"], + aliases: ["Expression", "Terminatorless"], + fields: { + argument: { + validate: assertNodeType("Expression"), + }, + }, +}); + +// --- ES2019 --- +defineType("Import", { + aliases: ["Expression"], +}); + +// --- ES2020 --- +defineType("BigIntLiteral", { + builder: ["value"], + fields: { + value: { + validate: assertValueType("string"), + }, + }, + aliases: ["Expression", "Pureish", "Literal", "Immutable"], +}); + +defineType("ExportNamespaceSpecifier", { + visitor: ["exported"], + aliases: ["ModuleSpecifier"], + fields: { + exported: { + validate: assertNodeType("Identifier"), + }, + }, +}); + +defineType("OptionalMemberExpression", { + builder: ["object", "property", "computed", "optional"], + visitor: ["object", "property"], + aliases: ["Expression"], + fields: { + object: { + validate: assertNodeType("Expression"), + }, + property: { + validate: (function () { + const normal = assertNodeType("Identifier"); + const computed = assertNodeType("Expression"); + + const validator = function (node, key, val) { + const validator = node.computed ? computed : normal; + validator(node, key, val); + }; + // todo(ts): can be discriminated union by `computed` property + validator.oneOfNodeTypes = ["Expression", "Identifier"]; + return validator; + })(), + }, + computed: { + default: false, + }, + optional: { + validate: !process.env.BABEL_TYPES_8_BREAKING + ? assertValueType("boolean") + : chain(assertValueType("boolean"), assertOptionalChainStart()), + }, + }, +}); + +defineType("OptionalCallExpression", { + visitor: ["callee", "arguments", "typeParameters", "typeArguments"], + builder: ["callee", "arguments", "optional"], + aliases: ["Expression"], + fields: { + callee: { + validate: assertNodeType("Expression"), + }, + arguments: { + validate: chain( + assertValueType("array"), + assertEach( + assertNodeType("Expression", "SpreadElement", "JSXNamespacedName"), + ), + ), + }, + optional: { + validate: !process.env.BABEL_TYPES_8_BREAKING + ? assertValueType("boolean") + : chain(assertValueType("boolean"), assertOptionalChainStart()), + }, + typeArguments: { + validate: assertNodeType("TypeParameterInstantiation"), + optional: true, + }, + typeParameters: { + validate: assertNodeType("TSTypeParameterInstantiation"), + optional: true, + }, + }, +}); diff --git a/packages/babel-types/src/definitions/es2015.js b/packages/babel-types/src/definitions/es2015.js deleted file mode 100644 index 7223a7085d14..000000000000 --- a/packages/babel-types/src/definitions/es2015.js +++ /dev/null @@ -1,728 +0,0 @@ -// @flow -import defineType, { - assertShape, - assertNodeType, - assertValueType, - assertNodeOrValueType, - chain, - assertEach, - assertOneOf, - validateOptional, -} from "./utils"; -import { - functionCommon, - functionTypeAnnotationCommon, - patternLikeCommon, -} from "./core"; -import is from "../validators/is"; - -defineType("AssignmentPattern", { - visitor: ["left", "right", "decorators" /* for legacy param decorators */], - builder: ["left", "right"], - aliases: ["Pattern", "PatternLike", "LVal"], - fields: { - ...patternLikeCommon, - left: { - validate: assertNodeType( - "Identifier", - "ObjectPattern", - "ArrayPattern", - "MemberExpression", - ), - }, - right: { - validate: assertNodeType("Expression"), - }, - // For TypeScript - decorators: { - validate: chain( - assertValueType("array"), - assertEach(assertNodeType("Decorator")), - ), - optional: true, - }, - }, -}); - -defineType("ArrayPattern", { - visitor: ["elements", "typeAnnotation"], - builder: ["elements"], - aliases: ["Pattern", "PatternLike", "LVal"], - fields: { - ...patternLikeCommon, - elements: { - validate: chain( - assertValueType("array"), - assertEach(assertNodeOrValueType("null", "PatternLike")), - ), - }, - // For TypeScript - decorators: { - validate: chain( - assertValueType("array"), - assertEach(assertNodeType("Decorator")), - ), - optional: true, - }, - }, -}); - -defineType("ArrowFunctionExpression", { - builder: ["params", "body", "async"], - visitor: ["params", "body", "returnType", "typeParameters"], - aliases: [ - "Scopable", - "Function", - "BlockParent", - "FunctionParent", - "Expression", - "Pureish", - ], - fields: { - ...functionCommon, - ...functionTypeAnnotationCommon, - expression: { - // https://github.com/babel/babylon/issues/505 - validate: assertValueType("boolean"), - }, - body: { - validate: assertNodeType("BlockStatement", "Expression"), - }, - }, -}); - -defineType("ClassBody", { - visitor: ["body"], - fields: { - body: { - validate: chain( - assertValueType("array"), - assertEach( - assertNodeType( - "ClassMethod", - "ClassPrivateMethod", - "ClassProperty", - "ClassPrivateProperty", - "TSDeclareMethod", - "TSIndexSignature", - ), - ), - ), - }, - }, -}); - -defineType("ClassExpression", { - builder: ["id", "superClass", "body", "decorators"], - visitor: [ - "id", - "body", - "superClass", - "mixins", - "typeParameters", - "superTypeParameters", - "implements", - "decorators", - ], - aliases: ["Scopable", "Class", "Expression"], - fields: { - id: { - validate: assertNodeType("Identifier"), - // In declarations, this is missing if this is the - // child of an ExportDefaultDeclaration. - optional: true, - }, - typeParameters: { - validate: assertNodeType( - "TypeParameterDeclaration", - "TSTypeParameterDeclaration", - "Noop", - ), - optional: true, - }, - body: { - validate: assertNodeType("ClassBody"), - }, - superClass: { - optional: true, - validate: assertNodeType("Expression"), - }, - superTypeParameters: { - validate: assertNodeType( - "TypeParameterInstantiation", - "TSTypeParameterInstantiation", - ), - optional: true, - }, - implements: { - validate: chain( - assertValueType("array"), - assertEach( - assertNodeType("TSExpressionWithTypeArguments", "ClassImplements"), - ), - ), - optional: true, - }, - decorators: { - validate: chain( - assertValueType("array"), - assertEach(assertNodeType("Decorator")), - ), - optional: true, - }, - mixins: { - validate: assertNodeType("InterfaceExtends"), - optional: true, - }, - }, -}); - -defineType("ClassDeclaration", { - inherits: "ClassExpression", - aliases: ["Scopable", "Class", "Statement", "Declaration"], - fields: { - id: { - validate: assertNodeType("Identifier"), - }, - typeParameters: { - validate: assertNodeType( - "TypeParameterDeclaration", - "TSTypeParameterDeclaration", - "Noop", - ), - optional: true, - }, - body: { - validate: assertNodeType("ClassBody"), - }, - superClass: { - optional: true, - validate: assertNodeType("Expression"), - }, - superTypeParameters: { - validate: assertNodeType( - "TypeParameterInstantiation", - "TSTypeParameterInstantiation", - ), - optional: true, - }, - implements: { - validate: chain( - assertValueType("array"), - assertEach( - assertNodeType("TSExpressionWithTypeArguments", "ClassImplements"), - ), - ), - optional: true, - }, - decorators: { - validate: chain( - assertValueType("array"), - assertEach(assertNodeType("Decorator")), - ), - optional: true, - }, - mixins: { - validate: assertNodeType("InterfaceExtends"), - optional: true, - }, - declare: { - validate: assertValueType("boolean"), - optional: true, - }, - abstract: { - validate: assertValueType("boolean"), - optional: true, - }, - }, - validate: (function () { - const identifier = assertNodeType("Identifier"); - - return function (parent, key, node) { - if (!is("ExportDefaultDeclaration", parent)) { - identifier(node, "id", node.id); - } - }; - })(), -}); - -defineType("ExportAllDeclaration", { - visitor: ["source"], - aliases: [ - "Statement", - "Declaration", - "ModuleDeclaration", - "ExportDeclaration", - ], - fields: { - source: { - validate: assertNodeType("StringLiteral"), - }, - }, -}); - -defineType("ExportDefaultDeclaration", { - visitor: ["declaration"], - aliases: [ - "Statement", - "Declaration", - "ModuleDeclaration", - "ExportDeclaration", - ], - fields: { - declaration: { - validate: assertNodeType( - "FunctionDeclaration", - "TSDeclareFunction", - "ClassDeclaration", - "Expression", - ), - }, - }, -}); - -defineType("ExportNamedDeclaration", { - visitor: ["declaration", "specifiers", "source"], - aliases: [ - "Statement", - "Declaration", - "ModuleDeclaration", - "ExportDeclaration", - ], - fields: { - declaration: { - optional: true, - validate: chain( - assertNodeType("Declaration"), - Object.assign( - function (node, key, val) { - // This validator isn't put at the top level because we can run it - // even if this node doesn't have a parent. - - if (val && node.specifiers.length) { - throw new TypeError( - "Only declaration or specifiers is allowed on ExportNamedDeclaration", - ); - } - - if (val && node.source) { - throw new TypeError("Cannot export a declaration from a source"); - } - }, - { oneOfNodeTypes: ["Declaration"] }, - ), - ), - }, - specifiers: { - default: [], - validate: chain( - assertValueType("array"), - assertEach( - (function () { - const sourced = assertNodeType( - "ExportSpecifier", - "ExportDefaultSpecifier", - "ExportNamespaceSpecifier", - ); - const sourceless = assertNodeType("ExportSpecifier"); - - return function (node, key, val) { - const validator = node.source ? sourced : sourceless; - validator(node, key, val); - }; - })(), - ), - ), - }, - source: { - validate: assertNodeType("StringLiteral"), - optional: true, - }, - exportKind: validateOptional(assertOneOf("type", "value")), - }, -}); - -defineType("ExportSpecifier", { - visitor: ["local", "exported"], - aliases: ["ModuleSpecifier"], - fields: { - local: { - validate: assertNodeType("Identifier"), - }, - exported: { - validate: assertNodeType("Identifier"), - }, - }, -}); - -defineType("ForOfStatement", { - visitor: ["left", "right", "body"], - builder: ["left", "right", "body", "await"], - aliases: [ - "Scopable", - "Statement", - "For", - "BlockParent", - "Loop", - "ForXStatement", - ], - fields: { - left: { - validate: (function () { - const declaration = assertNodeType("VariableDeclaration"); - const lval = assertNodeType( - "Identifier", - "MemberExpression", - "ArrayPattern", - "ObjectPattern", - ); - - return function (node, key, val) { - if (is("VariableDeclaration", val)) { - declaration(node, key, val); - } else { - lval(node, key, val); - } - }; - })(), - }, - right: { - validate: assertNodeType("Expression"), - }, - body: { - validate: assertNodeType("Statement"), - }, - await: { - default: false, - }, - }, -}); - -defineType("ImportDeclaration", { - visitor: ["specifiers", "source"], - aliases: ["Statement", "Declaration", "ModuleDeclaration"], - fields: { - specifiers: { - validate: chain( - assertValueType("array"), - assertEach( - assertNodeType( - "ImportSpecifier", - "ImportDefaultSpecifier", - "ImportNamespaceSpecifier", - ), - ), - ), - }, - source: { - validate: assertNodeType("StringLiteral"), - }, - importKind: { - // Handle TypeScript/Flowtype's extension "import type foo from" - // TypeScript doesn't support typeof - validate: assertOneOf("type", "typeof", "value"), - optional: true, - }, - }, -}); - -defineType("ImportDefaultSpecifier", { - visitor: ["local"], - aliases: ["ModuleSpecifier"], - fields: { - local: { - validate: assertNodeType("Identifier"), - }, - }, -}); - -defineType("ImportNamespaceSpecifier", { - visitor: ["local"], - aliases: ["ModuleSpecifier"], - fields: { - local: { - validate: assertNodeType("Identifier"), - }, - }, -}); - -defineType("ImportSpecifier", { - visitor: ["local", "imported"], - aliases: ["ModuleSpecifier"], - fields: { - local: { - validate: assertNodeType("Identifier"), - }, - imported: { - validate: assertNodeType("Identifier"), - }, - importKind: { - // Handle Flowtype's extension "import {typeof foo} from" - validate: assertOneOf("type", "typeof"), - optional: true, - }, - }, -}); - -defineType("MetaProperty", { - visitor: ["meta", "property"], - aliases: ["Expression"], - fields: { - meta: { - validate: chain( - assertNodeType("Identifier"), - Object.assign( - function (node, key, val) { - let property; - switch (val.name) { - case "function": - property = "sent"; - break; - case "new": - property = "target"; - break; - case "import": - property = "meta"; - break; - } - if (!is("Identifier", node.property, { name: property })) { - throw new TypeError("Unrecognised MetaProperty"); - } - }, - { oneOfNodeTypes: ["Identifier"] }, - ), - ), - }, - property: { - validate: assertNodeType("Identifier"), - }, - }, -}); - -export const classMethodOrPropertyCommon = { - abstract: { - validate: assertValueType("boolean"), - optional: true, - }, - accessibility: { - validate: assertOneOf("public", "private", "protected"), - optional: true, - }, - static: { - default: false, - }, - computed: { - default: false, - }, - optional: { - validate: assertValueType("boolean"), - optional: true, - }, - key: { - validate: chain( - (function () { - const normal = assertNodeType( - "Identifier", - "StringLiteral", - "NumericLiteral", - ); - const computed = assertNodeType("Expression"); - - return function (node: Object, key: string, val: any) { - const validator = node.computed ? computed : normal; - validator(node, key, val); - }; - })(), - assertNodeType( - "Identifier", - "StringLiteral", - "NumericLiteral", - "Expression", - ), - ), - }, -}; - -export const classMethodOrDeclareMethodCommon = { - ...functionCommon, - ...classMethodOrPropertyCommon, - kind: { - validate: assertOneOf("get", "set", "method", "constructor"), - default: "method", - }, - access: { - validate: chain( - assertValueType("string"), - assertOneOf("public", "private", "protected"), - ), - optional: true, - }, - decorators: { - validate: chain( - assertValueType("array"), - assertEach(assertNodeType("Decorator")), - ), - optional: true, - }, -}; - -defineType("ClassMethod", { - aliases: ["Function", "Scopable", "BlockParent", "FunctionParent", "Method"], - builder: [ - "kind", - "key", - "params", - "body", - "computed", - "static", - "generator", - "async", - ], - visitor: [ - "key", - "params", - "body", - "decorators", - "returnType", - "typeParameters", - ], - fields: { - ...classMethodOrDeclareMethodCommon, - ...functionTypeAnnotationCommon, - body: { - validate: assertNodeType("BlockStatement"), - }, - }, -}); - -defineType("ObjectPattern", { - visitor: [ - "properties", - "typeAnnotation", - "decorators" /* for legacy param decorators */, - ], - builder: ["properties"], - aliases: ["Pattern", "PatternLike", "LVal"], - fields: { - ...patternLikeCommon, - properties: { - validate: chain( - assertValueType("array"), - assertEach(assertNodeType("RestElement", "ObjectProperty")), - ), - }, - }, -}); - -defineType("SpreadElement", { - visitor: ["argument"], - aliases: ["UnaryLike"], - deprecatedAlias: "SpreadProperty", - fields: { - argument: { - validate: assertNodeType("Expression"), - }, - }, -}); - -defineType("Super", { - aliases: ["Expression"], -}); - -defineType("TaggedTemplateExpression", { - visitor: ["tag", "quasi"], - aliases: ["Expression"], - fields: { - tag: { - validate: assertNodeType("Expression"), - }, - quasi: { - validate: assertNodeType("TemplateLiteral"), - }, - typeParameters: { - validate: assertNodeType( - "TypeParameterInstantiation", - "TSTypeParameterInstantiation", - ), - optional: true, - }, - }, -}); - -defineType("TemplateElement", { - builder: ["value", "tail"], - fields: { - value: { - validate: assertShape({ - raw: { - validate: assertValueType("string"), - }, - cooked: { - validate: assertValueType("string"), - optional: true, - }, - }), - }, - tail: { - default: false, - }, - }, -}); - -defineType("TemplateLiteral", { - visitor: ["quasis", "expressions"], - aliases: ["Expression", "Literal"], - fields: { - quasis: { - validate: chain( - assertValueType("array"), - assertEach(assertNodeType("TemplateElement")), - ), - }, - expressions: { - validate: chain( - assertValueType("array"), - assertEach(assertNodeType("Expression")), - function (node, key, val) { - if (node.quasis.length !== val.length + 1) { - throw new TypeError( - `Number of ${ - node.type - } quasis should be exactly one more than the number of expressions.\nExpected ${ - val.length + 1 - } quasis but got ${node.quasis.length}`, - ); - } - }, - ), - }, - }, -}); - -defineType("YieldExpression", { - builder: ["argument", "delegate"], - visitor: ["argument"], - aliases: ["Expression", "Terminatorless"], - fields: { - delegate: { - validate: chain( - assertValueType("boolean"), - Object.assign( - function (node, key, val) { - if (val && !node.argument) { - throw new TypeError( - "Property delegate of YieldExpression cannot be true if there is no argument", - ); - } - }, - { type: "boolean" }, - ), - ), - default: false, - }, - argument: { - optional: true, - validate: assertNodeType("Expression"), - }, - }, -}); diff --git a/packages/babel-types/src/definitions/experimental.js b/packages/babel-types/src/definitions/experimental.js index d6d9698c42b0..5aa4520a4165 100644 --- a/packages/babel-types/src/definitions/experimental.js +++ b/packages/babel-types/src/definitions/experimental.js @@ -1,6 +1,5 @@ // @flow import defineType, { - assertOptionalChainStart, assertEach, assertNodeType, assertValueType, @@ -9,22 +8,11 @@ import defineType, { import { classMethodOrPropertyCommon, classMethodOrDeclareMethodCommon, -} from "./es2015"; -import { functionTypeAnnotationCommon } from "./core"; + functionTypeAnnotationCommon, +} from "./core"; defineType("ArgumentPlaceholder", {}); -defineType("AwaitExpression", { - builder: ["argument"], - visitor: ["argument"], - aliases: ["Expression", "Terminatorless"], - fields: { - argument: { - validate: assertNodeType("Expression"), - }, - }, -}); - defineType("BindExpression", { visitor: ["object", "callee"], aliases: ["Expression"], @@ -81,37 +69,6 @@ defineType("ClassProperty", { }, }); -defineType("OptionalMemberExpression", { - builder: ["object", "property", "computed", "optional"], - visitor: ["object", "property"], - aliases: ["Expression"], - fields: { - object: { - validate: assertNodeType("Expression"), - }, - property: { - validate: (function () { - const normal = assertNodeType("Identifier"); - const computed = assertNodeType("Expression"); - - const validator = function (node, key, val) { - const validator = node.computed ? computed : normal; - validator(node, key, val); - }; - // todo(ts): can be discriminated union by `computed` property - validator.oneOfNodeTypes = ["Expression", "Identifier"]; - return validator; - })(), - }, - computed: { - default: false, - }, - optional: { - validate: chain(assertValueType("boolean"), assertOptionalChainStart()), - }, - }, -}); - defineType("PipelineTopicExpression", { builder: ["expression"], visitor: ["expression"], @@ -136,36 +93,6 @@ defineType("PipelinePrimaryTopicReference", { aliases: ["Expression"], }); -defineType("OptionalCallExpression", { - visitor: ["callee", "arguments", "typeParameters", "typeArguments"], - builder: ["callee", "arguments", "optional"], - aliases: ["Expression"], - fields: { - callee: { - validate: assertNodeType("Expression"), - }, - arguments: { - validate: chain( - assertValueType("array"), - assertEach( - assertNodeType("Expression", "SpreadElement", "JSXNamespacedName"), - ), - ), - }, - optional: { - validate: chain(assertValueType("boolean"), assertOptionalChainStart()), - }, - typeArguments: { - validate: assertNodeType("TypeParameterInstantiation"), - optional: true, - }, - typeParameters: { - validate: assertNodeType("TSTypeParameterInstantiation"), - optional: true, - }, - }, -}); - defineType("ClassPrivateProperty", { visitor: ["key", "value", "decorators"], builder: ["key", "value", "decorators"], @@ -218,10 +145,6 @@ defineType("ClassPrivateMethod", { }, }); -defineType("Import", { - aliases: ["Expression"], -}); - defineType("ImportAttribute", { visitor: ["key", "value"], fields: { @@ -263,16 +186,6 @@ defineType("ExportDefaultSpecifier", { }, }); -defineType("ExportNamespaceSpecifier", { - visitor: ["exported"], - aliases: ["ModuleSpecifier"], - fields: { - exported: { - validate: assertNodeType("Identifier"), - }, - }, -}); - defineType("PrivateName", { visitor: ["id"], aliases: ["Private"], @@ -283,16 +196,6 @@ defineType("PrivateName", { }, }); -defineType("BigIntLiteral", { - builder: ["value"], - fields: { - value: { - validate: assertValueType("string"), - }, - }, - aliases: ["Expression", "Pureish", "Literal", "Immutable"], -}); - defineType("RecordExpression", { visitor: ["properties"], aliases: ["Expression"], @@ -319,3 +222,13 @@ defineType("TupleExpression", { visitor: ["elements"], aliases: ["Expression"], }); + +defineType("DecimalLiteral", { + builder: ["value"], + fields: { + value: { + validate: assertValueType("string"), + }, + }, + aliases: ["Expression", "Pureish", "Literal", "Immutable"], +}); diff --git a/packages/babel-types/src/definitions/index.js b/packages/babel-types/src/definitions/index.js index 7341c67369a9..4e41f0b77b41 100644 --- a/packages/babel-types/src/definitions/index.js +++ b/packages/babel-types/src/definitions/index.js @@ -1,7 +1,6 @@ // @flow import toFastProperties from "to-fast-properties"; import "./core"; -import "./es2015"; import "./flow"; import "./jsx"; import "./misc"; diff --git a/packages/babel-types/src/definitions/typescript.js b/packages/babel-types/src/definitions/typescript.js index e4ec9872d918..05e2e6f7e5f0 100644 --- a/packages/babel-types/src/definitions/typescript.js +++ b/packages/babel-types/src/definitions/typescript.js @@ -12,8 +12,10 @@ import defineType, { validateOptionalType, validateType, } from "./utils"; -import { functionDeclarationCommon } from "./core"; -import { classMethodOrDeclareMethodCommon } from "./es2015"; +import { + functionDeclarationCommon, + classMethodOrDeclareMethodCommon, +} from "./core"; const bool = assertValueType("boolean"); @@ -212,7 +214,7 @@ defineType("TSTupleType", { aliases: ["TSType"], visitor: ["elementTypes"], fields: { - elementTypes: validateArrayOfType("TSType"), + elementTypes: validateArrayOfType(["TSType", "TSNamedTupleMember"]), }, }); @@ -232,6 +234,19 @@ defineType("TSRestType", { }, }); +defineType("TSNamedTupleMember", { + visitor: ["label", "elementType"], + builder: ["label", "elementType", "optional"], + fields: { + label: validateType("Identifier"), + optional: { + validate: bool, + default: false, + }, + elementType: validateType("TSType"), + }, +}); + const unionOrIntersection = { aliases: ["TSType"], visitor: ["types"], diff --git a/packages/babel-types/src/utils/inherit.js b/packages/babel-types/src/utils/inherit.js index 276e0d91436f..be57867e8bd3 100644 --- a/packages/babel-types/src/utils/inherit.js +++ b/packages/babel-types/src/utils/inherit.js @@ -1,12 +1,12 @@ // @flow -import uniq from "lodash/uniq"; - export default function inherit( key: string, child: Object, parent: Object, ): void { if (child && parent) { - child[key] = uniq([].concat(child[key], parent[key]).filter(Boolean)); + child[key] = Array.from( + new Set([].concat(child[key], parent[key]).filter(Boolean)), + ); } } diff --git a/packages/babel-types/src/validators/generated/index.js b/packages/babel-types/src/validators/generated/index.js index 746034390aaf..a5c5b68bdf7b 100644 --- a/packages/babel-types/src/validators/generated/index.js +++ b/packages/babel-types/src/validators/generated/index.js @@ -1076,6 +1076,99 @@ export function isYieldExpression(node: ?Object, opts?: Object): boolean { return false; } +export function isAwaitExpression(node: ?Object, opts?: Object): boolean { + if (!node) return false; + + const nodeType = node.type; + if (nodeType === "AwaitExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return shallowEqual(node, opts); + } + } + + return false; +} +export function isImport(node: ?Object, opts?: Object): boolean { + if (!node) return false; + + const nodeType = node.type; + if (nodeType === "Import") { + if (typeof opts === "undefined") { + return true; + } else { + return shallowEqual(node, opts); + } + } + + return false; +} +export function isBigIntLiteral(node: ?Object, opts?: Object): boolean { + if (!node) return false; + + const nodeType = node.type; + if (nodeType === "BigIntLiteral") { + if (typeof opts === "undefined") { + return true; + } else { + return shallowEqual(node, opts); + } + } + + return false; +} +export function isExportNamespaceSpecifier( + node: ?Object, + opts?: Object, +): boolean { + if (!node) return false; + + const nodeType = node.type; + if (nodeType === "ExportNamespaceSpecifier") { + if (typeof opts === "undefined") { + return true; + } else { + return shallowEqual(node, opts); + } + } + + return false; +} +export function isOptionalMemberExpression( + node: ?Object, + opts?: Object, +): boolean { + if (!node) return false; + + const nodeType = node.type; + if (nodeType === "OptionalMemberExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return shallowEqual(node, opts); + } + } + + return false; +} +export function isOptionalCallExpression( + node: ?Object, + opts?: Object, +): boolean { + if (!node) return false; + + const nodeType = node.type; + if (nodeType === "OptionalCallExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return shallowEqual(node, opts); + } + } + + return false; +} export function isAnyTypeAnnotation(node: ?Object, opts?: Object): boolean { if (!node) return false; @@ -2275,20 +2368,6 @@ export function isArgumentPlaceholder(node: ?Object, opts?: Object): boolean { return false; } -export function isAwaitExpression(node: ?Object, opts?: Object): boolean { - if (!node) return false; - - const nodeType = node.type; - if (nodeType === "AwaitExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual(node, opts); - } - } - - return false; -} export function isBindExpression(node: ?Object, opts?: Object): boolean { if (!node) return false; @@ -2317,23 +2396,6 @@ export function isClassProperty(node: ?Object, opts?: Object): boolean { return false; } -export function isOptionalMemberExpression( - node: ?Object, - opts?: Object, -): boolean { - if (!node) return false; - - const nodeType = node.type; - if (nodeType === "OptionalMemberExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual(node, opts); - } - } - - return false; -} export function isPipelineTopicExpression( node: ?Object, opts?: Object, @@ -2382,23 +2444,6 @@ export function isPipelinePrimaryTopicReference( return false; } -export function isOptionalCallExpression( - node: ?Object, - opts?: Object, -): boolean { - if (!node) return false; - - const nodeType = node.type; - if (nodeType === "OptionalCallExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual(node, opts); - } - } - - return false; -} export function isClassPrivateProperty(node: ?Object, opts?: Object): boolean { if (!node) return false; @@ -2427,20 +2472,6 @@ export function isClassPrivateMethod(node: ?Object, opts?: Object): boolean { return false; } -export function isImport(node: ?Object, opts?: Object): boolean { - if (!node) return false; - - const nodeType = node.type; - if (nodeType === "Import") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual(node, opts); - } - } - - return false; -} export function isImportAttribute(node: ?Object, opts?: Object): boolean { if (!node) return false; @@ -2500,23 +2531,6 @@ export function isExportDefaultSpecifier( return false; } -export function isExportNamespaceSpecifier( - node: ?Object, - opts?: Object, -): boolean { - if (!node) return false; - - const nodeType = node.type; - if (nodeType === "ExportNamespaceSpecifier") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual(node, opts); - } - } - - return false; -} export function isPrivateName(node: ?Object, opts?: Object): boolean { if (!node) return false; @@ -2531,11 +2545,11 @@ export function isPrivateName(node: ?Object, opts?: Object): boolean { return false; } -export function isBigIntLiteral(node: ?Object, opts?: Object): boolean { +export function isRecordExpression(node: ?Object, opts?: Object): boolean { if (!node) return false; const nodeType = node.type; - if (nodeType === "BigIntLiteral") { + if (nodeType === "RecordExpression") { if (typeof opts === "undefined") { return true; } else { @@ -2545,11 +2559,11 @@ export function isBigIntLiteral(node: ?Object, opts?: Object): boolean { return false; } -export function isRecordExpression(node: ?Object, opts?: Object): boolean { +export function isTupleExpression(node: ?Object, opts?: Object): boolean { if (!node) return false; const nodeType = node.type; - if (nodeType === "RecordExpression") { + if (nodeType === "TupleExpression") { if (typeof opts === "undefined") { return true; } else { @@ -2559,11 +2573,11 @@ export function isRecordExpression(node: ?Object, opts?: Object): boolean { return false; } -export function isTupleExpression(node: ?Object, opts?: Object): boolean { +export function isDecimalLiteral(node: ?Object, opts?: Object): boolean { if (!node) return false; const nodeType = node.type; - if (nodeType === "TupleExpression") { + if (nodeType === "DecimalLiteral") { if (typeof opts === "undefined") { return true; } else { @@ -3027,6 +3041,20 @@ export function isTSRestType(node: ?Object, opts?: Object): boolean { return false; } +export function isTSNamedTupleMember(node: ?Object, opts?: Object): boolean { + if (!node) return false; + + const nodeType = node.type; + if (nodeType === "TSNamedTupleMember") { + if (typeof opts === "undefined") { + return true; + } else { + return shallowEqual(node, opts); + } + } + + return false; +} export function isTSUnionType(node: ?Object, opts?: Object): boolean { if (!node) return false; @@ -3491,19 +3519,20 @@ export function isExpression(node: ?Object, opts?: Object): boolean { "TaggedTemplateExpression" === nodeType || "TemplateLiteral" === nodeType || "YieldExpression" === nodeType || + "AwaitExpression" === nodeType || + "Import" === nodeType || + "BigIntLiteral" === nodeType || + "OptionalMemberExpression" === nodeType || + "OptionalCallExpression" === nodeType || "TypeCastExpression" === nodeType || "JSXElement" === nodeType || "JSXFragment" === nodeType || - "AwaitExpression" === nodeType || "BindExpression" === nodeType || - "OptionalMemberExpression" === nodeType || "PipelinePrimaryTopicReference" === nodeType || - "OptionalCallExpression" === nodeType || - "Import" === nodeType || "DoExpression" === nodeType || - "BigIntLiteral" === nodeType || "RecordExpression" === nodeType || "TupleExpression" === nodeType || + "DecimalLiteral" === nodeType || "TSAsExpression" === nodeType || "TSTypeAssertion" === nodeType || "TSNonNullExpression" === nodeType || @@ -3908,6 +3937,7 @@ export function isPureish(node: ?Object, opts?: Object): boolean { "RegExpLiteral" === nodeType || "ArrowFunctionExpression" === nodeType || "BigIntLiteral" === nodeType || + "DecimalLiteral" === nodeType || (nodeType === "Placeholder" && "StringLiteral" === node.expectedNode) ) { if (typeof opts === "undefined") { @@ -4042,6 +4072,7 @@ export function isLiteral(node: ?Object, opts?: Object): boolean { "RegExpLiteral" === nodeType || "TemplateLiteral" === nodeType || "BigIntLiteral" === nodeType || + "DecimalLiteral" === nodeType || (nodeType === "Placeholder" && "StringLiteral" === node.expectedNode) ) { if (typeof opts === "undefined") { @@ -4063,6 +4094,7 @@ export function isImmutable(node: ?Object, opts?: Object): boolean { "NumericLiteral" === nodeType || "NullLiteral" === nodeType || "BooleanLiteral" === nodeType || + "BigIntLiteral" === nodeType || "JSXAttribute" === nodeType || "JSXClosingElement" === nodeType || "JSXElement" === nodeType || @@ -4073,7 +4105,7 @@ export function isImmutable(node: ?Object, opts?: Object): boolean { "JSXFragment" === nodeType || "JSXOpeningFragment" === nodeType || "JSXClosingFragment" === nodeType || - "BigIntLiteral" === nodeType || + "DecimalLiteral" === nodeType || (nodeType === "Placeholder" && "StringLiteral" === node.expectedNode) ) { if (typeof opts === "undefined") { @@ -4269,8 +4301,8 @@ export function isModuleSpecifier(node: ?Object, opts?: Object): boolean { "ImportDefaultSpecifier" === nodeType || "ImportNamespaceSpecifier" === nodeType || "ImportSpecifier" === nodeType || - "ExportDefaultSpecifier" === nodeType || - "ExportNamespaceSpecifier" === nodeType + "ExportNamespaceSpecifier" === nodeType || + "ExportDefaultSpecifier" === nodeType ) { if (typeof opts === "undefined") { return true; diff --git a/scripts/integration-tests/e2e-babel-old-version.sh b/scripts/integration-tests/e2e-babel-old-version.sh index d69cb4eb2396..e976901953e2 100755 --- a/scripts/integration-tests/e2e-babel-old-version.sh +++ b/scripts/integration-tests/e2e-babel-old-version.sh @@ -22,6 +22,9 @@ cd ../.. startLocalRegistry "$PWD"/scripts/integration-tests/verdaccio-config.yml +# Install dependencies in individual packages so that we can link them at the top level. +for package in eslint/*/; do yarn --cwd $package; done + node "$PWD"/scripts/integration-tests/utils/bump-babel-dependencies.js ( yarn why @babel/core | grep -o "@babel/core@npm:.* (via npm:.*)"; diff --git a/scripts/integration-tests/e2e-babel.sh b/scripts/integration-tests/e2e-babel.sh index 9af3c127eb1d..76e486f68081 100755 --- a/scripts/integration-tests/e2e-babel.sh +++ b/scripts/integration-tests/e2e-babel.sh @@ -21,6 +21,9 @@ cd ../.. #==============================================================================# startLocalRegistry "$PWD"/scripts/integration-tests/verdaccio-config.yml +# Install dependencies in individual packages so that we can link them at the top level. +for package in eslint/*/; do yarn --cwd $package; done + # We only bump dependencies in the top-level package.json, because workspaces # already use the workspace: protocol so will get the version in the monorepo # and not from npm. diff --git a/scripts/integration-tests/publish-local.sh b/scripts/integration-tests/publish-local.sh index 8a808e37ee37..e893c974b11a 100755 --- a/scripts/integration-tests/publish-local.sh +++ b/scripts/integration-tests/publish-local.sh @@ -11,13 +11,6 @@ source utils/local-registry.sh source utils/git.sh source utils/cleanup.sh -function publishESLintPkg { - cd eslint/$1 - npm version $2 --no-git-tag-version - cd ../.. - make -j publish-eslint PKG=$1 -} - # Echo every command being executed set -x @@ -43,9 +36,4 @@ VERSION=$( I_AM_USING_VERDACCIO=I_AM_SURE VERSION="$VERSION" make publish-test -publishESLintPkg babel-eslint-config-internal "$VERSION" -publishESLintPkg babel-eslint-parser "$VERSION" -publishESLintPkg babel-eslint-plugin "$VERSION" -publishESLintPkg babel-eslint-plugin-development "$VERSION" - cleanup diff --git a/scripts/parser-tests/typescript/allowlist.txt b/scripts/parser-tests/typescript/allowlist.txt index eac6245793ea..ad5eb837ec79 100644 --- a/scripts/parser-tests/typescript/allowlist.txt +++ b/scripts/parser-tests/typescript/allowlist.txt @@ -48,6 +48,8 @@ augmentedTypesFunction.ts augmentedTypesInterface.ts augmentedTypesVar.ts bigintIndex.ts +binderBinaryExpressionStress.ts +binderBinaryExpressionStressJs.ts cacheResolutions.ts cachedModuleResolution1.ts cachedModuleResolution2.ts @@ -64,6 +66,7 @@ classCannotExtendVar.ts classExpressionWithDecorator1.ts classExtendsAcrossFiles.ts classExtendsMultipleBaseClasses.ts +classIndexer5.ts classOverloadForFunction.ts collisionExportsRequireAndClass.ts commonSourceDir5.ts @@ -87,8 +90,10 @@ declarationEmitDestructuringOptionalBindingParametersInOverloads.ts declarationEmitDestructuringParameterProperties.ts declarationEmitDestructuringWithOptionalBindingParameters.ts declarationEmitExpandoPropertyPrivateName.ts +declarationEmitExportAssignedNamespaceNoTripleSlashTypesReference.ts declarationEmitExportAssignment.ts declarationEmitExportDeclaration.ts +declarationEmitForModuleImportingModuleAugmentationRetainsImport.ts declarationEmitForTypesWhichNeedImportTypes.ts declarationEmitInterfaceWithNonEntityNameExpressionHeritage.ts declarationEmitPrefersPathKindBasedOnBundling.ts @@ -98,6 +103,7 @@ declarationImportTypeAliasInferredAndEmittable.ts declarationMapsMultifile.ts declarationMapsOutFile.ts declarationsForInferredTypeFromOtherFile.ts +declarationsIndirectGeneratedAliasReference.ts declareModifierOnImport1.ts decoratorMetadataRestParameterWithImportedType.ts decoratorMetadataWithImportDeclarationNameCollision.ts @@ -195,6 +201,7 @@ exportSameNameFuncVar.ts exportSpecifierAndExportedMemberDeclaration.ts exportSpecifierAndLocalMemberDeclaration.ts exportStarFromEmptyModule.ts +exportStarNotElided.ts expressionsForbiddenInParameterInitializers.ts extendingClassFromAliasAndUsageInIndexer.ts extendsClauseAlreadySeen.ts @@ -209,6 +216,8 @@ functionExpressionInWithBlock.ts functionExpressionWithResolutionOfTypeNamedArguments01.ts gettersAndSettersErrors.ts giant.ts +globalThisDeclarationEmit.ts +globalThisDeclarationEmit2.ts implementClausePrecedingExtends.ts implementsClauseAlreadySeen.ts importAndVariableDeclarationConflict1.ts @@ -227,13 +236,24 @@ importHelpersNoHelpers.ts importHelpersNoModule.ts importHelpersOutFile.ts importHelpersSystem.ts +importNonExportedMember10.ts +importNonExportedMember11.ts +importNonExportedMember4.ts +importNonExportedMember5.ts +importNonExportedMember6.ts +importNonExportedMember7.ts +importNonExportedMember8.ts +importNonExportedMember9.ts importWithTrailingSlash.ts +importedEnumMemberMergedWithExportedAliasIsError.ts importedModuleClassNameClash.ts indexSignatureWithAccessibilityModifier.ts indexSignatureWithInitializer1.ts +indexSignatureWithTrailingComma.ts indexTypeCheck.ts indexWithoutParamType.ts indexerSignatureWithRestParam.ts +inferrenceInfiniteLoopWithSubtyping.ts initializedParameterBeforeNonoptionalNotOptional.ts interfaceMayNotBeExtendedWitACall.ts interfaceWithImplements1.ts @@ -242,12 +262,15 @@ isLiteral1.ts isLiteral2.ts isolatedModulesReExportType.ts jsEnumTagOnObjectFrozen.ts +jsExportMemberMergedWithModuleAugmentation.ts jsFileCompilationBindDuplicateIdentifier.ts jsFileCompilationDuplicateFunctionImplementation.ts jsFileCompilationDuplicateFunctionImplementationFileOrderReversed.ts jsFileCompilationExternalPackageError.ts +jsFileImportPreservedWhenUsed.ts jsNoImplicitAnyNoCascadingReferenceErrors.ts jsdocAccessEnumType.ts +jsdocPropertyTagInvalid.ts jsxAttributeWithoutExpressionReact.tsx jsxIntrinsicElementsExtendsRecord.tsx letAndVarRedeclaration.ts @@ -335,6 +358,8 @@ preserveUnusedImports.ts privacyCheckExternalModuleExportAssignmentOfGenericClass.ts privacyTopLevelAmbientExternalModuleImportWithExport.ts privacyTopLevelAmbientExternalModuleImportWithoutExport.ts +privateFieldAssignabilityFromUnknown.ts +privateNameWeakMapCollision.ts reExportGlobalDeclaration1.ts reExportUndefined1.ts reExportUndefined2.ts @@ -388,6 +413,7 @@ unusedImports3.ts unusedImports4.ts unusedImports5.ts unusedInvalidTypeArguments.ts +usedImportNotElidedInJs.ts varAndFunctionShareName.ts varArgConstructorMemberParameter.ts withStatement.ts diff --git a/scripts/parser-tests/typescript/error-codes.js b/scripts/parser-tests/typescript/error-codes.js index 2a2580dfb8a2..16ce4eb71c94 100644 --- a/scripts/parser-tests/typescript/error-codes.js +++ b/scripts/parser-tests/typescript/error-codes.js @@ -40,7 +40,7 @@ module.exports = [ "TS1163", // A 'yield' expression is only allowed in a generator body. "TS1184", // Modifiers cannot appear here. "TS1191", // An import declaration cannot have modifiers. - "TS1196", // Catch clause variable cannot have a type annotation. + "TS1196", // Catch clause variable type annotation must be 'any' or 'unknown' if specified. "TS1197", // Catch clause variable cannot have an initializer. "TS1200", // Line terminator not permitted before arrow. "TS1312", // '=' can only be used in an object literal property inside a destructuring assignment. diff --git a/scripts/rollup-plugin-babel-source.js b/scripts/rollup-plugin-babel-source.js index 98e470705d2b..8527b10dff94 100644 --- a/scripts/rollup-plugin-babel-source.js +++ b/scripts/rollup-plugin-babel-source.js @@ -2,11 +2,16 @@ const path = require("path"); const fs = require("fs"); const dirname = path.join(__dirname, ".."); +const BABEL_SRC_REGEXP = + path.sep === "/" + ? /packages\/(babel-[^/]+)\/src\// + : /packages\\(babel-[^\\]+)\\src\\/; + module.exports = function () { return { name: "babel-source", load(id) { - const matches = id.match(/packages\/(babel-[^/]+)\/src\//); + const matches = id.match(BABEL_SRC_REGEXP); if (matches) { // check if browser field exists for this file and replace const packageFolder = path.join(dirname, "packages", matches[1]); @@ -16,18 +21,20 @@ module.exports = function () { packageJson["browser"] && typeof packageJson["browser"] === "object" ) { - for (let nodeFile in packageJson["browser"]) { + for (const nodeFile in packageJson["browser"]) { const browserFile = packageJson["browser"][nodeFile].replace( /^(\.\/)?lib\//, "src/" ); - nodeFile = nodeFile.replace(/^(\.\/)?lib\//, "src/"); - if (id.endsWith(nodeFile)) { + const nodeFileSrc = path.normalize( + nodeFile.replace(/^(\.\/)?lib\//, "src/") + ); + if (id.endsWith(nodeFileSrc)) { if (browserFile === false) { return ""; } return fs.readFileSync( - path.join(packageFolder, browserFile), + path.join(packageFolder, path.normalize(browserFile)), "UTF-8" ); } @@ -74,10 +81,12 @@ module.exports = function () { ? packageJson["browser"] : packageJson["main"]; - return path.join( - packageFolder, - // replace lib with src in the package.json entry - filename.replace(/^(\.\/)?lib\//, "src/") + return path.normalize( + path.join( + packageFolder, + // replace lib with src in the package.json entry + filename.replace(/^(\.\/)?lib\//, "src/") + ) ); }, }; diff --git a/test.txt b/test.txt new file mode 100644 index 000000000000..f488f8491027 --- /dev/null +++ b/test.txt @@ -0,0 +1 @@ +� \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 26d374a7e2d3..a108da3e8969 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5,9 +5,9 @@ __metadata: version: 4 cacheKey: 5 -"@babel/cli@npm:^7.10.1": - version: 7.10.3 - resolution: "@babel/cli@npm:7.10.3" +"@babel/cli@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/cli@npm:7.10.4" dependencies: chokidar: ^2.1.8 commander: ^4.0.1 @@ -26,7 +26,7 @@ __metadata: bin: babel: ./bin/babel.js babel-external-helpers: ./bin/babel-external-helpers.js - checksum: dfc16da644184a293b1016f8f9b75ad7a61707210ecfae6c4861b86adb92860d24344c91d6d5ca66201cd5bc63f22bfeacb4426b8c106dabbfb1dee730ab1792 + checksum: 5e6e2b20e43b642760b0ee5692638b66d129c54beff006f8ebcfd2fdcbaad07fbf739464e754fa96e3595f668b789cabc9cf9351e4bc8e49eafff5384ad67c66 languageName: node linkType: hard @@ -34,16 +34,17 @@ __metadata: version: 0.0.0-use.local resolution: "@babel/cli@workspace:packages/babel-cli" dependencies: - "@babel/core": "workspace:^7.10.4" - "@babel/helper-fixtures": "workspace:^7.10.4" - chokidar: ^3.3.1 + "@babel/core": "workspace:^7.10.5" + "@babel/helper-fixtures": "workspace:^7.10.5" + chokidar: ^2.1.8 commander: ^4.0.1 convert-source-map: ^1.1.0 fs-readdir-recursive: ^1.1.0 glob: ^7.0.0 - lodash: ^4.17.13 + lodash: ^4.17.19 + make-dir: ^2.1.0 rimraf: ^3.0.0 - slash: ^3.0.0 + slash: ^2.0.0 source-map: ^0.5.0 peerDependencies: "@babel/core": ^7.0.0-0 @@ -56,21 +57,12 @@ __metadata: languageName: unknown linkType: soft -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.5.5, @babel/code-frame@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/code-frame@npm:7.8.3" - dependencies: - "@babel/highlight": ^7.8.3 - checksum: 0552a3e3667ad5af3bbffd537a7d177f321af3ff416522a9e9c7c671b9fc5d7f5eb6847e676e8de7a7362819e9670d9fe684e95d1c98adad0c0a0763c096955e - languageName: node - linkType: hard - -"@babel/code-frame@npm:^7.10.3": - version: 7.10.3 - resolution: "@babel/code-frame@npm:7.10.3" +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.5.5": + version: 7.10.4 + resolution: "@babel/code-frame@npm:7.10.4" dependencies: - "@babel/highlight": ^7.10.3 - checksum: 83c618a1dabd1ad4d160daee00a50002fdca1969aed19f3b7d4440c14914974a0d3fa0662d2d1f1bfea3035ec397a3ed6126dc8f9469a8c99d45bcc4222a6516 + "@babel/highlight": ^7.10.4 + checksum: 05245d3b22a3ae849439195c4ee9ce9903dfd8c3fcb5124e77923c45e9f1ceac971cce4c61505974f411a9db432949531abe10ddee92937a0a9c306dc380a5b2 languageName: node linkType: hard @@ -84,98 +76,74 @@ __metadata: languageName: unknown linkType: soft -"@babel/compat-data@npm:^7.10.1, @babel/compat-data@npm:^7.10.3": - version: 7.10.3 - resolution: "@babel/compat-data@npm:7.10.3" +"@babel/compat-data@npm:^7.10.4, @babel/compat-data@npm:^7.11.0": + version: 7.11.0 + resolution: "@babel/compat-data@npm:7.11.0" dependencies: browserslist: ^4.12.0 invariant: ^2.2.4 semver: ^5.5.0 - checksum: d1b3f2ad44a91fa5571c922d2634a52351bc7d6556663e99008cb23071ba67f0ab13929449dd29ce7c14544e2528e117daf7db9781070d7ef49d8dc25909818a + checksum: 6c3b3946543f4276e1bafbee03de6699c4cdbf92e236fd593f7793b8a2f78e6addb9ded715d84bc676ab39fda3efee634c23a7cf5b982c3d83381c51cd912b85 languageName: node linkType: hard -"@babel/compat-data@workspace:^7.10.4, @babel/compat-data@workspace:packages/babel-compat-data": +"@babel/compat-data@workspace:^7.10.4, @babel/compat-data@workspace:^7.11.0, @babel/compat-data@workspace:packages/babel-compat-data": version: 0.0.0-use.local resolution: "@babel/compat-data@workspace:packages/babel-compat-data" dependencies: "@babel/helper-compilation-targets": "workspace:^7.10.4" browserslist: ^4.12.0 - caniuse-db: 1.0.30001035 - electron-to-chromium: 1.3.377 + electron-to-chromium: 1.3.513 invariant: ^2.2.4 - lodash: ^4.17.15 + lodash: ^4.17.19 + mdn-browser-compat-data: 1.0.31 semver: ^5.5.0 languageName: unknown linkType: soft -"@babel/core@npm:^7.1.0, @babel/core@npm:^7.7.5": - version: 7.9.6 - resolution: "@babel/core@npm:7.9.6" - dependencies: - "@babel/code-frame": ^7.8.3 - "@babel/generator": ^7.9.6 - "@babel/helper-module-transforms": ^7.9.0 - "@babel/helpers": ^7.9.6 - "@babel/parser": ^7.9.6 - "@babel/template": ^7.8.6 - "@babel/traverse": ^7.9.6 - "@babel/types": ^7.9.6 - convert-source-map: ^1.7.0 - debug: ^4.1.0 - gensync: ^1.0.0-beta.1 - json5: ^2.1.2 - lodash: ^4.17.13 - resolve: ^1.3.2 - semver: ^5.4.1 - source-map: ^0.5.0 - checksum: 5e9d9199e6994e1de40f7012c3fae43a06c7fec938019a459d1222380523ef257b8b72f0ca0650468d77505dc9a957e816306e5a1f4f3ecbf5bbf6ed3e718258 - languageName: node - linkType: hard - -"@babel/core@npm:^7.10.2": - version: 7.10.3 - resolution: "@babel/core@npm:7.10.3" - dependencies: - "@babel/code-frame": ^7.10.3 - "@babel/generator": ^7.10.3 - "@babel/helper-module-transforms": ^7.10.1 - "@babel/helpers": ^7.10.1 - "@babel/parser": ^7.10.3 - "@babel/template": ^7.10.3 - "@babel/traverse": ^7.10.3 - "@babel/types": ^7.10.3 +"@babel/core@npm:^7.1.0, @babel/core@npm:^7.11.0, @babel/core@npm:^7.7.5": + version: 7.11.0 + resolution: "@babel/core@npm:7.11.0" + dependencies: + "@babel/code-frame": ^7.10.4 + "@babel/generator": ^7.11.0 + "@babel/helper-module-transforms": ^7.11.0 + "@babel/helpers": ^7.10.4 + "@babel/parser": ^7.11.0 + "@babel/template": ^7.10.4 + "@babel/traverse": ^7.11.0 + "@babel/types": ^7.11.0 convert-source-map: ^1.7.0 debug: ^4.1.0 gensync: ^1.0.0-beta.1 json5: ^2.1.2 - lodash: ^4.17.13 + lodash: ^4.17.19 resolve: ^1.3.2 semver: ^5.4.1 source-map: ^0.5.0 - checksum: a75a62e759d57ea06b572a0e6b5676209801dc2da915fdb774ee568561a16ca26218fef26ea651eb3c3663214a5621a6e01d8e76118566ffb6508cc5a6d3f8d0 + checksum: 23d49f981d65c034aa7e6ff610a88ca2ddd1d45dbbb4d5fe7a330f5b7a5b1cf210bde262da729e8576599f52c81d5d828e6d7e5fdf49198b56e670886ad90601 languageName: node linkType: hard -"@babel/core@workspace:^7.10.4, @babel/core@workspace:packages/babel-core": +"@babel/core@workspace:^7.10.4, @babel/core@workspace:^7.10.5, @babel/core@workspace:^7.11.0, @babel/core@workspace:^7.11.1, @babel/core@workspace:packages/babel-core": version: 0.0.0-use.local resolution: "@babel/core@workspace:packages/babel-core" dependencies: "@babel/code-frame": "workspace:^7.10.4" - "@babel/generator": "workspace:^7.10.4" - "@babel/helper-module-transforms": "workspace:^7.10.4" - "@babel/helper-transform-fixture-test-runner": "workspace:^7.10.4" + "@babel/generator": "workspace:^7.11.0" + "@babel/helper-module-transforms": "workspace:^7.11.0" + "@babel/helper-transform-fixture-test-runner": "workspace:^7.10.5" "@babel/helpers": "workspace:^7.10.4" - "@babel/parser": "workspace:^7.10.4" + "@babel/parser": "workspace:^7.11.1" "@babel/template": "workspace:^7.10.4" - "@babel/traverse": "workspace:^7.10.4" - "@babel/types": "workspace:^7.10.4" + "@babel/traverse": "workspace:^7.11.0" + "@babel/types": "workspace:^7.11.0" convert-source-map: ^1.7.0 debug: ^4.1.0 - escape-string-regexp: ^4.0.0 gensync: ^1.0.0-beta.1 json5: ^2.1.2 - lodash: ^4.17.13 + lodash: ^4.17.19 + resolve: ^1.3.2 semver: ^5.4.1 source-map: ^0.5.0 languageName: unknown @@ -191,32 +159,39 @@ __metadata: version: 0.0.0-use.local resolution: "@babel/eslint-config-internal@workspace:eslint/babel-eslint-config-internal" peerDependencies: - "@babel/eslint-parser": "*" + "@babel/eslint-parser": ^7.10.4 eslint-plugin-flowtype: ^3.0.0 languageName: unknown linkType: soft -"@babel/eslint-parser@link:./eslint/babel-eslint-parser::locator=babel%40workspace%3A.": - version: 0.0.0-use.local - resolution: "@babel/eslint-parser@link:./eslint/babel-eslint-parser::locator=babel%40workspace%3A." +"@babel/eslint-parser@npm:^7.11.0": + version: 7.11.0 + resolution: "@babel/eslint-parser@npm:7.11.0" + dependencies: + eslint-scope: 5.1.0 + eslint-visitor-keys: ^1.3.0 + semver: ^6.3.0 + peerDependencies: + "@babel/core": ">=7.11.0" + eslint: ">=7.5.0" + checksum: cd8495a9fd862a67fa43b542dead74e30ee23b03abfdd0bdc65873c08821bc8f049044b590db4d575ab63245d6b904f47d791fa4740b0853b5d3a1968f0a6a75 languageName: node - linkType: soft + linkType: hard -"@babel/eslint-parser@workspace:*, @babel/eslint-parser@workspace:^7.10.4, @babel/eslint-parser@workspace:eslint/babel-eslint-parser": +"@babel/eslint-parser@workspace:eslint/babel-eslint-parser": version: 0.0.0-use.local resolution: "@babel/eslint-parser@workspace:eslint/babel-eslint-parser" dependencies: - "@babel/core": "workspace:^7.10.4" - "@babel/eslint-shared-fixtures": "workspace:*" + "@babel/core": "workspace:^7.11.0" dedent: ^0.7.0 - eslint: ^6.0.1 - eslint-scope: 5.0.0 - eslint-visitor-keys: ^1.1.0 + eslint: ^7.5.0 + eslint-scope: 5.1.0 + eslint-visitor-keys: ^1.3.0 lodash.clonedeep: ^4.5.0 semver: ^6.3.0 peerDependencies: - "@babel/core": ">=7.2.0" - eslint: ">=6.0.0" + "@babel/core": ">=7.11.0" + eslint: ">=7.5.0" languageName: unknown linkType: soft @@ -230,54 +205,50 @@ __metadata: version: 0.0.0-use.local resolution: "@babel/eslint-plugin-development-internal@workspace:eslint/babel-eslint-plugin-development-internal" dependencies: - "@babel/eslint-shared-fixtures": "workspace:^7.10.4" - eslint: ^6.0.0 + eslint: ^7.5.0 peerDependencies: - "@babel/eslint-parser": 0.0.0 - eslint: ">=6.0.0" + "@babel/eslint-parser": ">=7.11.0" + eslint: ">=7.5.0" languageName: unknown linkType: soft -"@babel/eslint-plugin-development@link:./eslint/babel-eslint-plugin-development::locator=babel%40workspace%3A.": - version: 0.0.0-use.local - resolution: "@babel/eslint-plugin-development@link:./eslint/babel-eslint-plugin-development::locator=babel%40workspace%3A." +"@babel/eslint-plugin-development@npm:^7.11.0": + version: 7.11.0 + resolution: "@babel/eslint-plugin-development@npm:7.11.0" + checksum: cd6d851b739681fc756b4ae6a7cf2bb46854a0d194e7f1e6f248b26ecf27f2f7049d193cfef23157634e4dbbaa1f8cdabb42687319eb8494bfa38f9c5d409f40 languageName: node - linkType: soft + linkType: hard "@babel/eslint-plugin-development@workspace:eslint/babel-eslint-plugin-development": version: 0.0.0-use.local resolution: "@babel/eslint-plugin-development@workspace:eslint/babel-eslint-plugin-development" dependencies: - eslint: ^5.9.0 + eslint: ^7.5.0 languageName: unknown linkType: soft -"@babel/eslint-plugin@workspace:*, @babel/eslint-plugin@workspace:eslint/babel-eslint-plugin": +"@babel/eslint-plugin@workspace:eslint/babel-eslint-plugin": version: 0.0.0-use.local resolution: "@babel/eslint-plugin@workspace:eslint/babel-eslint-plugin" dependencies: - "@babel/eslint-parser": "workspace:*" - "@babel/eslint-shared-fixtures": "workspace:*" - eslint: ^6.0.0 + eslint: ^7.5.0 eslint-rule-composer: ^0.3.0 lodash.clonedeep: ^4.5.0 peerDependencies: - "@babel/eslint-parser": ^7.10.4 - eslint: ">=6.0.0" + "@babel/eslint-parser": ">=7.11.0" + eslint: ">=7.5.0" languageName: unknown linkType: soft -"@babel/eslint-shared-fixtures@workspace:*, @babel/eslint-shared-fixtures@workspace:^7.10.4, @babel/eslint-shared-fixtures@workspace:eslint/babel-eslint-shared-fixtures": +"@babel/eslint-shared-fixtures@workspace:eslint/babel-eslint-shared-fixtures": version: 0.0.0-use.local resolution: "@babel/eslint-shared-fixtures@workspace:eslint/babel-eslint-shared-fixtures" dependencies: - "@babel/core": "workspace:^7.10.4" - "@babel/eslint-parser": "workspace:^7.10.4" "@babel/plugin-proposal-class-properties": "workspace:^7.10.4" "@babel/plugin-proposal-decorators": "workspace:^7.10.4" "@babel/plugin-proposal-do-expressions": "workspace:^7.10.4" "@babel/plugin-proposal-nullish-coalescing-operator": "workspace:^7.10.4" - "@babel/plugin-proposal-optional-chaining": "workspace:^7.10.4" + "@babel/plugin-proposal-optional-chaining": "workspace:^7.11.0" "@babel/plugin-proposal-pipeline-operator": "workspace:^7.10.4" "@babel/plugin-proposal-private-methods": "workspace:^7.10.4" "@babel/plugin-syntax-bigint": ^7.7.4 @@ -286,7 +257,7 @@ __metadata: "@babel/plugin-syntax-export-namespace-from": ^7.0.0 "@babel/plugin-syntax-import-meta": "workspace:^7.10.4" "@babel/plugin-syntax-numeric-separator": "workspace:^7.10.4" - "@babel/preset-env": "workspace:^7.10.4" + "@babel/preset-env": "workspace:^7.11.0" "@babel/preset-flow": "workspace:^7.10.4" "@babel/preset-react": "workspace:^7.10.4" languageName: unknown @@ -296,67 +267,41 @@ __metadata: version: 0.0.0-use.local resolution: "@babel/eslint-tests@workspace:eslint/babel-eslint-tests" dependencies: - "@babel/eslint-parser": "workspace:*" - "@babel/eslint-plugin": "workspace:*" - "@babel/eslint-shared-fixtures": "workspace:*" dedent: ^0.7.0 - eslint: ^6.0.0 - eslint-plugin-import: ^2.20.1 + eslint: ^7.5.0 + eslint-plugin-import: ^2.22.0 languageName: unknown linkType: soft -"@babel/generator@npm:^7.10.3": - version: 7.10.3 - resolution: "@babel/generator@npm:7.10.3" +"@babel/generator@npm:^7.11.0, @babel/generator@npm:^7.4.0": + version: 7.11.0 + resolution: "@babel/generator@npm:7.11.0" dependencies: - "@babel/types": ^7.10.3 + "@babel/types": ^7.11.0 jsesc: ^2.5.1 - lodash: ^4.17.13 - source-map: ^0.5.0 - checksum: 32bb6cc012aa76d8b07267fece363cb7cba0ac842cba0d2266bb67750381bd5f8697a98882dd4981189eccb59bfa95a23529655db536ff7ae34e678fca60a58a - languageName: node - linkType: hard - -"@babel/generator@npm:^7.9.6": - version: 7.9.6 - resolution: "@babel/generator@npm:7.9.6" - dependencies: - "@babel/types": ^7.9.6 - jsesc: ^2.5.1 - lodash: ^4.17.13 source-map: ^0.5.0 - checksum: b90d4cb82aaf3a054eaa70179c591dd205204d1dba9db2806fa50aacada236a046e3efd0e0a37ea15da35ee49834155c1b0091c0c8c288520eec2c401c78af31 + checksum: aec10e0792f506b88b0abf859d7a76d7d4a8e9a4c3865f13ce9c2fc6d67234e205859c20f8aef633f2b6a23acc7b8af1d70d77ad186b3d0af155ab9252e13b10 languageName: node linkType: hard -"@babel/generator@workspace:^7.10.4, @babel/generator@workspace:packages/babel-generator": +"@babel/generator@workspace:^7.10.4, @babel/generator@workspace:^7.11.0, @babel/generator@workspace:packages/babel-generator": version: 0.0.0-use.local resolution: "@babel/generator@workspace:packages/babel-generator" dependencies: - "@babel/helper-fixtures": "workspace:^7.10.4" - "@babel/parser": "workspace:^7.10.4" - "@babel/types": "workspace:^7.10.4" - jsesc: ^3.0.1 - lodash: ^4.17.13 + "@babel/helper-fixtures": "workspace:^7.10.5" + "@babel/parser": "workspace:^7.11.0" + "@babel/types": "workspace:^7.11.0" + jsesc: ^2.5.1 source-map: ^0.5.0 languageName: unknown linkType: soft -"@babel/helper-annotate-as-pure@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/helper-annotate-as-pure@npm:7.10.1" - dependencies: - "@babel/types": ^7.10.1 - checksum: 8ae5966e3d4f813e27ed232c5cd6fa100022e9dbcfb9a267a3a8d76b25d2f5ec1fda1122cbacb7dd67e4e4dc91aa587c1919bc4eb37dd1db7c0c0092bd9301cc - languageName: node - linkType: hard - -"@babel/helper-annotate-as-pure@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/helper-annotate-as-pure@npm:7.8.3" +"@babel/helper-annotate-as-pure@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/helper-annotate-as-pure@npm:7.10.4" dependencies: - "@babel/types": ^7.8.3 - checksum: 594212a764dc72bbcb1afea1f3a08481693049d19de80a86e0fe4affb3dc112def836ee9bc45eecc5ca34d0ec44db345c9ae2c477209dc92e1c8bb4914a06a8a + "@babel/types": ^7.10.4 + checksum: 535cdf631e1e6c0bfd6820d2509c69373e2f48148505ddc2325ce8fe85302dc5681d6f6fd41261cacc458a0431edeff7c6115056144b80b02c10e111d2941c36 languageName: node linkType: hard @@ -377,13 +322,13 @@ __metadata: languageName: unknown linkType: soft -"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.10.1": - version: 7.10.3 - resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.10.3" +"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.10.4" dependencies: - "@babel/helper-explode-assignable-expression": ^7.10.3 - "@babel/types": ^7.10.3 - checksum: a7090f5f1e1fbc5e252bfd2b955b3ab4402e4dd400dbea0e7a025993b87bde74751582f2e1479dd3f1ebe3b0a542b76dbf373ed68344c6a63748f20397327500 + "@babel/helper-explode-assignable-expression": ^7.10.4 + "@babel/types": ^7.10.4 + checksum: 369530a1971c92d09bd3fae3387bf752abffa9a1f285ab55f45cdf0ac9a2e8ed1a28cd4dc31b0d5672ee0aac91435e3fdcf1196f67870ac0f9a768e3d9295d60 languageName: node linkType: hard @@ -402,7 +347,7 @@ __metadata: dependencies: "@babel/helper-annotate-as-pure": "workspace:^7.10.4" "@babel/helper-module-imports": "workspace:^7.10.4" - "@babel/types": "workspace:^7.10.4" + "@babel/types": "workspace:^7.10.5" languageName: unknown linkType: soft @@ -425,18 +370,18 @@ __metadata: languageName: unknown linkType: soft -"@babel/helper-compilation-targets@npm:^7.10.2": - version: 7.10.2 - resolution: "@babel/helper-compilation-targets@npm:7.10.2" +"@babel/helper-compilation-targets@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/helper-compilation-targets@npm:7.10.4" dependencies: - "@babel/compat-data": ^7.10.1 + "@babel/compat-data": ^7.10.4 browserslist: ^4.12.0 invariant: ^2.2.4 levenary: ^1.1.1 semver: ^5.5.0 peerDependencies: "@babel/core": ^7.0.0 - checksum: 5c9469f66f5a495ec4b99265a5af738f3fb09b56173bb8a651151c9ec5c6c657f540be851aabeaf4ff12f617cb15f699fcc29ae444d59e72b4dff1aad910b2c3 + checksum: 7603388e451012154ac6b8f6ec3792f2f35abbee21efa338fa87a851d88b72bee4a8aa5b016e53a5dc011dc616d803eda2cb030ec55a4a6673f1f587f95275e0 languageName: node linkType: hard @@ -456,29 +401,29 @@ __metadata: languageName: unknown linkType: soft -"@babel/helper-create-class-features-plugin@npm:^7.10.1": - version: 7.10.3 - resolution: "@babel/helper-create-class-features-plugin@npm:7.10.3" +"@babel/helper-create-class-features-plugin@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/helper-create-class-features-plugin@npm:7.10.4" dependencies: - "@babel/helper-function-name": ^7.10.3 - "@babel/helper-member-expression-to-functions": ^7.10.3 - "@babel/helper-optimise-call-expression": ^7.10.3 - "@babel/helper-plugin-utils": ^7.10.3 - "@babel/helper-replace-supers": ^7.10.1 - "@babel/helper-split-export-declaration": ^7.10.1 + "@babel/helper-function-name": ^7.10.4 + "@babel/helper-member-expression-to-functions": ^7.10.4 + "@babel/helper-optimise-call-expression": ^7.10.4 + "@babel/helper-plugin-utils": ^7.10.4 + "@babel/helper-replace-supers": ^7.10.4 + "@babel/helper-split-export-declaration": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0 - checksum: a1095c050c0503956d5c4716f9e01a8f12b6ef30dce24c646222029715b7a122ebe30e63a475e2e8f76fe0ada2b1918ddc6d1b026110706e516dbc629b587813 + checksum: 6e80fdcec87a23005a871ac8f02151474343819c466626e81a0d76c607bf9ca74f627ca49029318147709cfb949cf512d5eccdcd6fd5d4f90cb899f4aea884e0 languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@workspace:^7.10.4, @babel/helper-create-class-features-plugin@workspace:packages/babel-helper-create-class-features-plugin": +"@babel/helper-create-class-features-plugin@workspace:^7.10.4, @babel/helper-create-class-features-plugin@workspace:^7.10.5, @babel/helper-create-class-features-plugin@workspace:packages/babel-helper-create-class-features-plugin": version: 0.0.0-use.local resolution: "@babel/helper-create-class-features-plugin@workspace:packages/babel-helper-create-class-features-plugin" dependencies: - "@babel/core": "workspace:^7.10.4" + "@babel/core": "workspace:^7.10.5" "@babel/helper-function-name": "workspace:^7.10.4" - "@babel/helper-member-expression-to-functions": "workspace:^7.10.4" + "@babel/helper-member-expression-to-functions": "workspace:^7.10.5" "@babel/helper-optimise-call-expression": "workspace:^7.10.4" "@babel/helper-plugin-test-runner": "workspace:^7.10.4" "@babel/helper-plugin-utils": "workspace:^7.10.4" @@ -489,29 +434,16 @@ __metadata: languageName: unknown linkType: soft -"@babel/helper-create-regexp-features-plugin@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.10.1" - dependencies: - "@babel/helper-annotate-as-pure": ^7.10.1 - "@babel/helper-regex": ^7.10.1 - regexpu-core: ^4.7.0 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 43a2f6a3a45f99f645789f30dc78ba001f03faf05d6f845be3cc65a0d2fa28eda0540675a6a1327c000c1d8611869b770cf28d8796ddf528608edce8c91c3d45 - languageName: node - linkType: hard - -"@babel/helper-create-regexp-features-plugin@npm:^7.8.3, @babel/helper-create-regexp-features-plugin@npm:^7.8.8": - version: 7.8.8 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.8.8" +"@babel/helper-create-regexp-features-plugin@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.10.4" dependencies: - "@babel/helper-annotate-as-pure": ^7.8.3 - "@babel/helper-regex": ^7.8.3 + "@babel/helper-annotate-as-pure": ^7.10.4 + "@babel/helper-regex": ^7.10.4 regexpu-core: ^4.7.0 peerDependencies: "@babel/core": ^7.0.0 - checksum: f288ada304dfe48e6090f16520f1e9258f2db1b13234a6e5329eadaf231c9b7c071a303fdd4014db952b89c02d748929ccd6de3d59844b010bf46c27b5a02c53 + checksum: 6d1728b614b35daf5f4cef73769286685f86aaebf6caec1d50b8f2edbcb7a74399cf4381c436405476f97ef3411d025c54f2a2674f1c01580a970e634d492963 languageName: node linkType: hard @@ -529,14 +461,14 @@ __metadata: languageName: unknown linkType: soft -"@babel/helper-define-map@npm:^7.10.3": - version: 7.10.3 - resolution: "@babel/helper-define-map@npm:7.10.3" +"@babel/helper-define-map@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/helper-define-map@npm:7.10.4" dependencies: - "@babel/helper-function-name": ^7.10.3 - "@babel/types": ^7.10.3 + "@babel/helper-function-name": ^7.10.4 + "@babel/types": ^7.10.4 lodash: ^4.17.13 - checksum: 530832dc7c02db641076101e8b82798d24ac484ccae314bc89ce63af2d96de2014d8a53a9bb3b98ec895881ebfea72eeffb0d8b2c8020d7409318eda044d0104 + checksum: 8290982821f7cf0a2478da45103f6639e847b20f828b483339a21bbeeca30b3e9051560d07fe4a970d916a02529f9a1a55278e817869b398f8c18dcf22fc3904 languageName: node linkType: hard @@ -545,18 +477,18 @@ __metadata: resolution: "@babel/helper-define-map@workspace:packages/babel-helper-define-map" dependencies: "@babel/helper-function-name": "workspace:^7.10.4" - "@babel/types": "workspace:^7.10.4" - lodash: ^4.17.13 + "@babel/types": "workspace:^7.10.5" + lodash: ^4.17.19 languageName: unknown linkType: soft -"@babel/helper-explode-assignable-expression@npm:^7.10.3": - version: 7.10.3 - resolution: "@babel/helper-explode-assignable-expression@npm:7.10.3" +"@babel/helper-explode-assignable-expression@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/helper-explode-assignable-expression@npm:7.10.4" dependencies: - "@babel/traverse": ^7.10.3 - "@babel/types": ^7.10.3 - checksum: 32ffee935c3ba7ed5fbbe16a43056f76841224799a90926b6211b29d2c2da59c4a5abaed19af5093b00ffcfea4ccbefb33e8e6b513edd7b255bc3dabaed325e8 + "@babel/traverse": ^7.10.4 + "@babel/types": ^7.10.4 + checksum: 3348549a83dbb81ae44e97504134460069c648cc9add914856aec281fdc712a68b012f110778d84f098a94588178ba5261221ea6f46abd6892e5ec4281c41be0 languageName: node linkType: hard @@ -579,34 +511,23 @@ __metadata: languageName: unknown linkType: soft -"@babel/helper-fixtures@workspace:^7.10.4, @babel/helper-fixtures@workspace:packages/babel-helper-fixtures": +"@babel/helper-fixtures@workspace:^7.10.4, @babel/helper-fixtures@workspace:^7.10.5, @babel/helper-fixtures@workspace:packages/babel-helper-fixtures": version: 0.0.0-use.local resolution: "@babel/helper-fixtures@workspace:packages/babel-helper-fixtures" dependencies: - lodash: ^4.17.13 + lodash: ^4.17.19 semver: ^5.3.0 languageName: unknown linkType: soft -"@babel/helper-function-name@npm:^7.10.1, @babel/helper-function-name@npm:^7.10.3": - version: 7.10.3 - resolution: "@babel/helper-function-name@npm:7.10.3" - dependencies: - "@babel/helper-get-function-arity": ^7.10.3 - "@babel/template": ^7.10.3 - "@babel/types": ^7.10.3 - checksum: 439ecb46f94d3a16de234c9b5ee963d5ade12c48290d8c1ef1e8175c3b780293a12a05a058f1eff41cbb392425d8806a46f80e0f1779fe4e82f622c069471730 - languageName: node - linkType: hard - -"@babel/helper-function-name@npm:^7.9.5": - version: 7.9.5 - resolution: "@babel/helper-function-name@npm:7.9.5" +"@babel/helper-function-name@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/helper-function-name@npm:7.10.4" dependencies: - "@babel/helper-get-function-arity": ^7.8.3 - "@babel/template": ^7.8.3 - "@babel/types": ^7.9.5 - checksum: 6d5a6f645bd37347f133a69eff3f7078b471e0a73b608c5a0107b58f05fd4f7d7f7344f7713a757db43bc3ce71b5e8aa9f12bc9f2f1fb34b14f33b267958b0ad + "@babel/helper-get-function-arity": ^7.10.4 + "@babel/template": ^7.10.4 + "@babel/types": ^7.10.4 + checksum: 41ab8f48bbb7d4a65a90a4cf50c79c386d3c30e0dac10bc3ce311fda2ca971d82289a07570a785ebac92686854237ea1e511e74f2577a38c7ec2d67f2a250a9e languageName: node linkType: hard @@ -620,21 +541,12 @@ __metadata: languageName: unknown linkType: soft -"@babel/helper-get-function-arity@npm:^7.10.1, @babel/helper-get-function-arity@npm:^7.10.3": - version: 7.10.3 - resolution: "@babel/helper-get-function-arity@npm:7.10.3" - dependencies: - "@babel/types": ^7.10.3 - checksum: 334e09070c45874019f3aedde80831778f9845aa622f91d365c7d621662dd4339aad0e2456688ebcc9ff17876bc4b072b8b87837bc94527c527e0b206e0b02ec - languageName: node - linkType: hard - -"@babel/helper-get-function-arity@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/helper-get-function-arity@npm:7.8.3" +"@babel/helper-get-function-arity@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/helper-get-function-arity@npm:7.10.4" dependencies: - "@babel/types": ^7.8.3 - checksum: 173ce64f2bc357ca6deb6c639c02fc3842b9c88750501decfe1fa3b7cfe449280f1ced0b7d754a9bf338e7227300af3b28a3447d60048dfceb6405c017b0b84b + "@babel/types": ^7.10.4 + checksum: 4f0ddd43405e5a43c0638ddeb9fd6fc562ce8f338983ae603d4824ce4b586c2ca2fbc0ca93864357ba3a28f699029653749c6b49ec8576cb512ab0f404500999 languageName: node linkType: hard @@ -646,12 +558,12 @@ __metadata: languageName: unknown linkType: soft -"@babel/helper-hoist-variables@npm:^7.10.3": - version: 7.10.3 - resolution: "@babel/helper-hoist-variables@npm:7.10.3" +"@babel/helper-hoist-variables@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/helper-hoist-variables@npm:7.10.4" dependencies: - "@babel/types": ^7.10.3 - checksum: 267f89303dfbd61879be0e655adbb6261db465f2869786be5c6d8110dbf04da0edfa3cd90d9490c5b754844d720a55854b7ad94b0e2d33741fb7faf949a79bdc + "@babel/types": ^7.10.4 + checksum: 0bc1976366e1535920ac46ecf89700a738bb38f1413ca42f1bc11bef708f297f011078077355dfe81b3e5af8ef696c5fb752408d6b65f85c71839c28ce95afaa languageName: node linkType: hard @@ -663,47 +575,29 @@ __metadata: languageName: unknown linkType: soft -"@babel/helper-member-expression-to-functions@npm:^7.10.1, @babel/helper-member-expression-to-functions@npm:^7.10.3": - version: 7.10.3 - resolution: "@babel/helper-member-expression-to-functions@npm:7.10.3" +"@babel/helper-member-expression-to-functions@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/helper-member-expression-to-functions@npm:7.10.4" dependencies: - "@babel/types": ^7.10.3 - checksum: 3d92522983e068e72ac97413f79b361a197ca1148cd2c3cbff908edfe7c3c5167f57649b485eaf2ce7b3ee1dd637a2fe013c2e936e12385723234667e59878a6 + "@babel/types": ^7.10.4 + checksum: 512a2008f61ab676f08f6fc6a88a0a1060c3e77bdfa71a2d8e6aba6a1afcb53cff1da74eb7836a2fa1ca66d5019bff9394acbfada0b4fb299eea15e09f57d44e languageName: node linkType: hard -"@babel/helper-member-expression-to-functions@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/helper-member-expression-to-functions@npm:7.8.3" - dependencies: - "@babel/types": ^7.8.3 - checksum: 75dc46c0f64d21985fe62f39c67673fea925815f7576a6a83eec70ec50c0baa969d672df1bee6d0d65cea4c0fd11bcfcebfe1f3642ec57009bf3d3195034ba18 - languageName: node - linkType: hard - -"@babel/helper-member-expression-to-functions@workspace:^7.10.4, @babel/helper-member-expression-to-functions@workspace:packages/babel-helper-member-expression-to-functions": +"@babel/helper-member-expression-to-functions@workspace:^7.10.4, @babel/helper-member-expression-to-functions@workspace:^7.10.5, @babel/helper-member-expression-to-functions@workspace:packages/babel-helper-member-expression-to-functions": version: 0.0.0-use.local resolution: "@babel/helper-member-expression-to-functions@workspace:packages/babel-helper-member-expression-to-functions" dependencies: - "@babel/types": "workspace:^7.10.4" + "@babel/types": "workspace:^7.11.0" languageName: unknown linkType: soft -"@babel/helper-module-imports@npm:^7.0.0, @babel/helper-module-imports@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/helper-module-imports@npm:7.8.3" - dependencies: - "@babel/types": ^7.8.3 - checksum: 48a64ca882aa5fcbd8969ae57f10ff44d68c45507675199f8c6d750e4695524072dbd00102155b89106a6f06ca466ad8a607475eded156471d45d5014ce410d7 - languageName: node - linkType: hard - -"@babel/helper-module-imports@npm:^7.10.1, @babel/helper-module-imports@npm:^7.10.3": - version: 7.10.3 - resolution: "@babel/helper-module-imports@npm:7.10.3" +"@babel/helper-module-imports@npm:^7.0.0, @babel/helper-module-imports@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/helper-module-imports@npm:7.10.4" dependencies: - "@babel/types": ^7.10.3 - checksum: 831629d4701d19085c35717a9d21fb0971f8f1b98d9a7e23a5ad7639c1af8e292e6b3e52e7cc92008df89a5aaf21b1ebdca77acdf2a8afe5535eca66878619db + "@babel/types": ^7.10.4 + checksum: 84d03b58e7f04daf7c5a80765c527c24021ddbf4051567381528e2b351a550451dd87f67bf7a66f251dffcc979cd2ddaa01e1defd8b8db1095d38005e18eb806 languageName: node linkType: hard @@ -716,65 +610,41 @@ __metadata: languageName: unknown linkType: soft -"@babel/helper-module-transforms@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/helper-module-transforms@npm:7.10.1" - dependencies: - "@babel/helper-module-imports": ^7.10.1 - "@babel/helper-replace-supers": ^7.10.1 - "@babel/helper-simple-access": ^7.10.1 - "@babel/helper-split-export-declaration": ^7.10.1 - "@babel/template": ^7.10.1 - "@babel/types": ^7.10.1 - lodash: ^4.17.13 - checksum: 8f73368079b91b38f2e11d41280c93c6608446b45846b11042d35d4a7e3f795aa459ebd13e8092d8ec2d97ace996e56c312d02918e5fba3f51a30d4f58cd59e2 - languageName: node - linkType: hard - -"@babel/helper-module-transforms@npm:^7.9.0": - version: 7.9.0 - resolution: "@babel/helper-module-transforms@npm:7.9.0" +"@babel/helper-module-transforms@npm:^7.10.4, @babel/helper-module-transforms@npm:^7.11.0": + version: 7.11.0 + resolution: "@babel/helper-module-transforms@npm:7.11.0" dependencies: - "@babel/helper-module-imports": ^7.8.3 - "@babel/helper-replace-supers": ^7.8.6 - "@babel/helper-simple-access": ^7.8.3 - "@babel/helper-split-export-declaration": ^7.8.3 - "@babel/template": ^7.8.6 - "@babel/types": ^7.9.0 - lodash: ^4.17.13 - checksum: a667ba69306ede8dc1a710f0d5e08fa1f7ef15677c489153f0a6b26b97e4f31557392c884ad72c6f7024ab2953c2aba3851a20d7594265090ea986a9ef93c725 + "@babel/helper-module-imports": ^7.10.4 + "@babel/helper-replace-supers": ^7.10.4 + "@babel/helper-simple-access": ^7.10.4 + "@babel/helper-split-export-declaration": ^7.11.0 + "@babel/template": ^7.10.4 + "@babel/types": ^7.11.0 + lodash: ^4.17.19 + checksum: 8b74d0a729f00c5880ed7927e333a6b4bc31739108fbbbdd94b0cf28599f49c78f1e48f16b12bec0b1c966ba1ca72faf10eb98019617ef470a6885cc891e97f6 languageName: node linkType: hard -"@babel/helper-module-transforms@workspace:^7.10.4, @babel/helper-module-transforms@workspace:packages/babel-helper-module-transforms": +"@babel/helper-module-transforms@workspace:^7.10.4, @babel/helper-module-transforms@workspace:^7.10.5, @babel/helper-module-transforms@workspace:^7.11.0, @babel/helper-module-transforms@workspace:packages/babel-helper-module-transforms": version: 0.0.0-use.local resolution: "@babel/helper-module-transforms@workspace:packages/babel-helper-module-transforms" dependencies: "@babel/helper-module-imports": "workspace:^7.10.4" "@babel/helper-replace-supers": "workspace:^7.10.4" "@babel/helper-simple-access": "workspace:^7.10.4" - "@babel/helper-split-export-declaration": "workspace:^7.10.4" + "@babel/helper-split-export-declaration": "workspace:^7.11.0" "@babel/template": "workspace:^7.10.4" - "@babel/types": "workspace:^7.10.4" - lodash: ^4.17.13 + "@babel/types": "workspace:^7.11.0" + lodash: ^4.17.19 languageName: unknown linkType: soft -"@babel/helper-optimise-call-expression@npm:^7.10.1, @babel/helper-optimise-call-expression@npm:^7.10.3": - version: 7.10.3 - resolution: "@babel/helper-optimise-call-expression@npm:7.10.3" - dependencies: - "@babel/types": ^7.10.3 - checksum: 931ebea991b4aa5242c6e840209c2ca9b88dd068d29f4a8aef703c772766b5c684fa5f7f6d8a0845740f9fc6c330dcd31fa89b56eea6edfeb4152e5d6b036634 - languageName: node - linkType: hard - -"@babel/helper-optimise-call-expression@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/helper-optimise-call-expression@npm:7.8.3" +"@babel/helper-optimise-call-expression@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/helper-optimise-call-expression@npm:7.10.4" dependencies: - "@babel/types": ^7.8.3 - checksum: db54d15185bbe12affcc013db3f8e556490f3ad82e2a56ee9e927056a10adc37c8d1cd6c6db4900bb45ae557e572f571089f276001ea34308b775b1ad7dabf19 + "@babel/types": ^7.10.4 + checksum: 70dd5a6daf6dc9f176dbfcac4afc1390d872821abe4ffaedf3ff0b1dbda8fb4b49efdeb612ae86c08f0773340583ce6e393a7a059727991aaa51b18de1fc0960 languageName: node linkType: hard @@ -794,41 +664,25 @@ __metadata: languageName: unknown linkType: soft -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/helper-plugin-utils@npm:7.8.3" - checksum: 56f09626f24511aadd36a96aacd8658274ededc2e94f5e85bb6e51c9e6ad72eb1dd9f9a28a4ee5a8691de7601cf2a8e63ce235db01dda8964779940281f2787f - languageName: node - linkType: hard - -"@babel/helper-plugin-utils@npm:^7.10.1, @babel/helper-plugin-utils@npm:^7.10.3": - version: 7.10.3 - resolution: "@babel/helper-plugin-utils@npm:7.10.3" - checksum: eaa3cbfb41fc1fb6a64f6612af9315bbc877e136e49b2dd62e6ac00d3ebd3f727d92d1112cafb19d981c5c00423ae78fd49b661214d3bf0d206820358ce870a1 +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": + version: 7.10.4 + resolution: "@babel/helper-plugin-utils@npm:7.10.4" + checksum: 9f617e619a3557cb5fae8885e91cd94ba4ee16fb345e0360de0d7dc037efb10cc604939ecc1038ccdb71aa37e7e78f20133d7bbbebecb8f6dcdb557650366d92 languageName: node linkType: hard -"@babel/helper-plugin-utils@workspace:^7.10.4, @babel/helper-plugin-utils@workspace:packages/babel-helper-plugin-utils": +"@babel/helper-plugin-utils@workspace:^7.10.1, @babel/helper-plugin-utils@workspace:^7.10.4, @babel/helper-plugin-utils@workspace:packages/babel-helper-plugin-utils": version: 0.0.0-use.local resolution: "@babel/helper-plugin-utils@workspace:packages/babel-helper-plugin-utils" languageName: unknown linkType: soft -"@babel/helper-regex@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/helper-regex@npm:7.10.1" - dependencies: - lodash: ^4.17.13 - checksum: 2ca4e4c46c3ab75e4e052d1fae45c89ae9e3200173c7f37537700ef2fbc43c57c77fe54dad397a9f261532f277b0df5b743c7e0923fc782a2f6337ae6de2e388 - languageName: node - linkType: hard - -"@babel/helper-regex@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/helper-regex@npm:7.8.3" +"@babel/helper-regex@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/helper-regex@npm:7.10.4" dependencies: lodash: ^4.17.13 - checksum: b36d0111bc99e4b8c2e6d338bd2c321f51eeb281dcf3763cbfbb8d91cfe7da8cf8df0dc6ee7892848abb1794eeae8650275b8787de62d51f62cbde02a8d1cbad + checksum: 4f8883dca4d5eb36c80736633fb8c361aff7002a60840100621c1984f68aa013951a68d877a22de5805272f49793cd06e7fc81f3dcb22364467b48e90e364e9e languageName: node linkType: hard @@ -836,20 +690,20 @@ __metadata: version: 0.0.0-use.local resolution: "@babel/helper-regex@workspace:packages/babel-helper-regex" dependencies: - lodash: ^4.17.13 + lodash: ^4.17.19 languageName: unknown linkType: soft -"@babel/helper-remap-async-to-generator@npm:^7.10.1, @babel/helper-remap-async-to-generator@npm:^7.10.3": - version: 7.10.3 - resolution: "@babel/helper-remap-async-to-generator@npm:7.10.3" +"@babel/helper-remap-async-to-generator@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/helper-remap-async-to-generator@npm:7.10.4" dependencies: - "@babel/helper-annotate-as-pure": ^7.10.1 - "@babel/helper-wrap-function": ^7.10.1 - "@babel/template": ^7.10.3 - "@babel/traverse": ^7.10.3 - "@babel/types": ^7.10.3 - checksum: 4fa0c3eb4b49ca03fcc3dd97b0657a8ccc32a1ba7301afdbe9cadf9f1494d0acb1f59f56e261c9a7818741bab63e3f8c986a72c43d92a0482b41a4288f75bf3e + "@babel/helper-annotate-as-pure": ^7.10.4 + "@babel/helper-wrap-function": ^7.10.4 + "@babel/template": ^7.10.4 + "@babel/traverse": ^7.10.4 + "@babel/types": ^7.10.4 + checksum: 258395dbab35546aecaf8f8b0b5a2c223cddbd11a41cd85e7571911adf1742ff7146dbf6cf53f14ba3d8f3ae2c54ec9bc396fcf31c66aa56d1dd692b10e99299 languageName: node linkType: hard @@ -865,27 +719,15 @@ __metadata: languageName: unknown linkType: soft -"@babel/helper-replace-supers@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/helper-replace-supers@npm:7.10.1" - dependencies: - "@babel/helper-member-expression-to-functions": ^7.10.1 - "@babel/helper-optimise-call-expression": ^7.10.1 - "@babel/traverse": ^7.10.1 - "@babel/types": ^7.10.1 - checksum: 9775d4d6e3f6822cc3de421dce7c487fa87bc90c07dd92aa646a8171ba93fb9f6d679ab7c0a5f47ddfc5db21988ee74b2e985e6b39588833a56c3ae2dd86460a - languageName: node - linkType: hard - -"@babel/helper-replace-supers@npm:^7.8.6": - version: 7.9.6 - resolution: "@babel/helper-replace-supers@npm:7.9.6" +"@babel/helper-replace-supers@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/helper-replace-supers@npm:7.10.4" dependencies: - "@babel/helper-member-expression-to-functions": ^7.8.3 - "@babel/helper-optimise-call-expression": ^7.8.3 - "@babel/traverse": ^7.9.6 - "@babel/types": ^7.9.6 - checksum: 1b08944da1b7dd4969c4350407fc9566918381dde4964f407c8ec37fa4f5bc6ed39b346a8517cc07afb3b8cf1fb2fdf3bb6d3b33a5a247ba102ebd0e90e0a203 + "@babel/helper-member-expression-to-functions": ^7.10.4 + "@babel/helper-optimise-call-expression": ^7.10.4 + "@babel/traverse": ^7.10.4 + "@babel/types": ^7.10.4 + checksum: 2d7e0627cda8d6f360e52d9c962746fb5818cb6599072d4473fc1e7a2eacfb1a2605a1727d95ae9af66e06e1b84c0a67d40ae16446f838d367de11ae198ee0f8 languageName: node linkType: hard @@ -900,23 +742,13 @@ __metadata: languageName: unknown linkType: soft -"@babel/helper-simple-access@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/helper-simple-access@npm:7.10.1" +"@babel/helper-simple-access@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/helper-simple-access@npm:7.10.4" dependencies: - "@babel/template": ^7.10.1 - "@babel/types": ^7.10.1 - checksum: ca6fdb478c6e3940338cf4bf7b3593ecd473203dc3fe66b5e52637143a67a764dd8365567293c7e363eba5bed71cbbb56b5ba568870b19bcb44df32447cd1da9 - languageName: node - linkType: hard - -"@babel/helper-simple-access@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/helper-simple-access@npm:7.8.3" - dependencies: - "@babel/template": ^7.8.3 - "@babel/types": ^7.8.3 - checksum: 1cdd8a6710e97238d15f1200881b86366b2f0b10c3c04c726b4092919afd1fdba9dd43fad8648a5e565c10fdb9654a9885ae1679526128aca7cf6e746ad458f3 + "@babel/template": ^7.10.4 + "@babel/types": ^7.10.4 + checksum: a7ce52a2295b9290b70cfbdd5667ec42de1a170de2f9d6e8321b3864e631bca729fbb537fbcc85396b7ce921abc2c844a452e70996fcd582dd31433c33ef0f9d languageName: node linkType: hard @@ -929,60 +761,63 @@ __metadata: languageName: unknown linkType: soft -"@babel/helper-split-export-declaration@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/helper-split-export-declaration@npm:7.10.1" +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.11.0": + version: 7.11.0 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.11.0" dependencies: - "@babel/types": ^7.10.1 - checksum: 5363b0649bb8ec4e6a160f63824ccc6b2499d860a34e272e8eb63d4d80e627734a2843be2ff90059a5effe80f83800d356ad545f496a864a1b6393705f8347af + "@babel/types": ^7.11.0 + checksum: c5995c834fbaeb8d573184c54e637add2c1b558f6f8a52a84d0c1777a564b634b94917f2b232d1ee4a96ae34587fdeb28b5dae1a45f3e3620cbff0da340aa287 languageName: node linkType: hard -"@babel/helper-split-export-declaration@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/helper-split-export-declaration@npm:7.8.3" +"@babel/helper-skip-transparent-expression-wrappers@workspace:^7.11.0, @babel/helper-skip-transparent-expression-wrappers@workspace:packages/babel-helper-skip-transparent-expression-wrappers": + version: 0.0.0-use.local + resolution: "@babel/helper-skip-transparent-expression-wrappers@workspace:packages/babel-helper-skip-transparent-expression-wrappers" + dependencies: + "@babel/traverse": "workspace:^7.11.0" + "@babel/types": "workspace:^7.11.0" + languageName: unknown + linkType: soft + +"@babel/helper-split-export-declaration@npm:^7.10.4, @babel/helper-split-export-declaration@npm:^7.11.0": + version: 7.11.0 + resolution: "@babel/helper-split-export-declaration@npm:7.11.0" dependencies: - "@babel/types": ^7.8.3 - checksum: dd72c412171315f1952f30a7a71a237fb4f1b11edfc4ae8945db905f000e945f6c7a791d166a5c3fb90dd8336bbf9891091bd7f139eaf7ea4dfb30c54c888eb1 + "@babel/types": ^7.11.0 + checksum: ddfc44d0cf75ee3a73e71b18e8b9b67d256f6e8496e550ab0b1342ef8cd62dd232c13ac77569e319869b1515a9733863e69a143e76f52e9fc1b51ee374b8869b languageName: node linkType: hard -"@babel/helper-split-export-declaration@workspace:^7.10.4, @babel/helper-split-export-declaration@workspace:packages/babel-helper-split-export-declaration": +"@babel/helper-split-export-declaration@workspace:^7.10.4, @babel/helper-split-export-declaration@workspace:^7.11.0, @babel/helper-split-export-declaration@workspace:packages/babel-helper-split-export-declaration": version: 0.0.0-use.local resolution: "@babel/helper-split-export-declaration@workspace:packages/babel-helper-split-export-declaration" dependencies: - "@babel/types": "workspace:^7.10.4" + "@babel/types": "workspace:^7.11.0" languageName: unknown linkType: soft -"@babel/helper-transform-fixture-test-runner@workspace:^7.10.4, @babel/helper-transform-fixture-test-runner@workspace:packages/babel-helper-transform-fixture-test-runner": +"@babel/helper-transform-fixture-test-runner@workspace:^7.10.4, @babel/helper-transform-fixture-test-runner@workspace:^7.10.5, @babel/helper-transform-fixture-test-runner@workspace:packages/babel-helper-transform-fixture-test-runner": version: 0.0.0-use.local resolution: "@babel/helper-transform-fixture-test-runner@workspace:packages/babel-helper-transform-fixture-test-runner" dependencies: "@babel/code-frame": "workspace:^7.10.4" - "@babel/core": "workspace:^7.10.4" - "@babel/helper-fixtures": "workspace:^7.10.4" + "@babel/core": "workspace:^7.10.5" + "@babel/helper-fixtures": "workspace:^7.10.5" "@babel/polyfill": "workspace:^7.10.4" babel-check-duplicated-nodes: ^1.0.0 - escape-string-regexp: ^4.0.0 - jest: ^25.1.0 - jest-diff: ^25.1.0 - lodash: ^4.17.13 + jest: ^24.8.0 + jest-diff: ^24.8.0 + lodash: ^4.17.19 + quick-lru: 5.1.0 + resolve: ^1.3.2 source-map: ^0.5.0 languageName: unknown linkType: soft -"@babel/helper-validator-identifier@npm:^7.10.3": - version: 7.10.3 - resolution: "@babel/helper-validator-identifier@npm:7.10.3" - checksum: 0eb0b199eba82b61e9bc979f6ed1ee669e6796ad0fa914c7b829c32b879af504cf928687683455c3e58ef8c0707e35c88cab84ed4635c05cd3076ed5684b5cc3 - languageName: node - linkType: hard - -"@babel/helper-validator-identifier@npm:^7.9.0, @babel/helper-validator-identifier@npm:^7.9.5": - version: 7.9.5 - resolution: "@babel/helper-validator-identifier@npm:7.9.5" - checksum: f4dd825c0b959d2b634a7b8397f826e6b69d0a0213686ed3a0fc1ed42d278e374d821dc036dffc3a27223b8465eb62a6c30363f5e20427f29c6b6f8bef456ca3 +"@babel/helper-validator-identifier@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/helper-validator-identifier@npm:7.10.4" + checksum: 25098ef842e3ffecdd9a7216f6173da7ad7be1b0b3e454a9f6965055154b9ad7a4acd2f218ba3d2efc0821bdab97837b3cb815844af7d72f66f89d446a54efc6 languageName: node linkType: hard @@ -995,15 +830,15 @@ __metadata: languageName: unknown linkType: soft -"@babel/helper-wrap-function@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/helper-wrap-function@npm:7.10.1" +"@babel/helper-wrap-function@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/helper-wrap-function@npm:7.10.4" dependencies: - "@babel/helper-function-name": ^7.10.1 - "@babel/template": ^7.10.1 - "@babel/traverse": ^7.10.1 - "@babel/types": ^7.10.1 - checksum: 17c85bcc3b9cedf1e27aefcafc8a543eecdd4343e44e599796d7657b19662b9500d7067035f5dc2c4daf5d7c9826022af23ddfd1aaaa22a62a152265cdc387f5 + "@babel/helper-function-name": ^7.10.4 + "@babel/template": ^7.10.4 + "@babel/traverse": ^7.10.4 + "@babel/types": ^7.10.4 + checksum: 4d5fe2db333b8f64f85057562ab49d825ad64ec53b94b92d2229645f7373e6e67a51e9eb108ac5d91933687a576ab4cd1f663a66caf140a6911d2a07e7efba24 languageName: node linkType: hard @@ -1018,25 +853,14 @@ __metadata: languageName: unknown linkType: soft -"@babel/helpers@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/helpers@npm:7.10.1" - dependencies: - "@babel/template": ^7.10.1 - "@babel/traverse": ^7.10.1 - "@babel/types": ^7.10.1 - checksum: 4951a0d845c99ff8e4f47b04226306d24d59e27407ce9dcb510bfad694d6341cc387ddd1b52c1c22e31570a75c8dd5627090f28d5887c210e183d9444940de1c - languageName: node - linkType: hard - -"@babel/helpers@npm:^7.9.6": - version: 7.9.6 - resolution: "@babel/helpers@npm:7.9.6" +"@babel/helpers@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/helpers@npm:7.10.4" dependencies: - "@babel/template": ^7.8.3 - "@babel/traverse": ^7.9.6 - "@babel/types": ^7.9.6 - checksum: 1ffe25b91f63553a40fbe1ba80de8963683a45dc5a3760ee039253555798cc446d438e6fca1fefbe2b8969269653c210daff11b391e26fe4b977e5e54bf3cc77 + "@babel/template": ^7.10.4 + "@babel/traverse": ^7.10.4 + "@babel/types": ^7.10.4 + checksum: 96859c490ac07fe30fe2b6ad8e474325d2504ffcc8b720b0f22a01e8334d79b4fb3051720c2146390579f7781cbc5923cb32d4e23e51b811c83aaa644fe17f2a languageName: node linkType: hard @@ -1051,25 +875,14 @@ __metadata: languageName: unknown linkType: soft -"@babel/highlight@npm:^7.10.3": - version: 7.10.3 - resolution: "@babel/highlight@npm:7.10.3" +"@babel/highlight@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/highlight@npm:7.10.4" dependencies: - "@babel/helper-validator-identifier": ^7.10.3 + "@babel/helper-validator-identifier": ^7.10.4 chalk: ^2.0.0 js-tokens: ^4.0.0 - checksum: e16cf08acc870cbc4f355519ce92df0d285f69d04da669f809a2cd8d0fe9070408768a19822fd623f16ce0c86c9c248489e7b191085acd3ac69dccc9c6c9a930 - languageName: node - linkType: hard - -"@babel/highlight@npm:^7.8.3": - version: 7.9.0 - resolution: "@babel/highlight@npm:7.9.0" - dependencies: - "@babel/helper-validator-identifier": ^7.9.0 - chalk: ^2.0.0 - js-tokens: ^4.0.0 - checksum: 9887f2fe93b10b53bffb70cccd22dff179a10230985c67dbcf8f27a536714777b8ed68548181af80f132125e8ff7464362b73081ed1510899b5040734a91e202 + checksum: c167b938af9797e7630dd922398ceb1a079469085b9c0a7274f093f9f2b1ef9f0a5efec89592e81cbab7c87a537d32c238cea97d288b7af9a0d26b2bceb7a439 languageName: node linkType: hard @@ -1088,15 +901,18 @@ __metadata: version: 0.0.0-use.local resolution: "@babel/node@workspace:packages/babel-node" dependencies: - "@babel/core": "workspace:^7.10.4" - "@babel/helper-fixtures": "workspace:^7.10.4" - "@babel/register": "workspace:^7.10.4" - "@babel/runtime": "workspace:^7.10.4" + "@babel/core": "workspace:^7.10.5" + "@babel/helper-fixtures": "workspace:^7.10.5" + "@babel/register": "workspace:^7.10.5" + "@babel/runtime": "workspace:^7.10.5" commander: ^4.0.1 core-js: ^3.2.1 fs-readdir-recursive: ^1.0.0 - lodash: ^4.17.13 + lodash: ^4.17.19 + make-dir: ^2.1.0 + node-environment-flags: ^1.0.5 regenerator-runtime: ^0.13.4 + resolve: ^1.13.1 rimraf: ^3.0.0 v8flags: ^3.1.1 peerDependencies: @@ -1106,30 +922,21 @@ __metadata: languageName: unknown linkType: soft -"@babel/parser@npm:^7.0.0, @babel/parser@npm:^7.1.0, @babel/parser@npm:^7.8.6, @babel/parser@npm:^7.9.6": - version: 7.9.6 - resolution: "@babel/parser@npm:7.9.6" - bin: - parser: ./bin/babel-parser.js - checksum: 95ece64d01b30eb29964a6c678844b8bb3d9e2289f956467c58c9bed68c52a9b09f500b98d8488d0df636b4d062c5abe0a9611d27d6761d278e4c3208e4295c4 - languageName: node - linkType: hard - -"@babel/parser@npm:^7.10.3": - version: 7.10.3 - resolution: "@babel/parser@npm:7.10.3" +"@babel/parser@npm:^7.0.0, @babel/parser@npm:^7.1.0, @babel/parser@npm:^7.10.4, @babel/parser@npm:^7.11.0, @babel/parser@npm:^7.4.3": + version: 7.11.0 + resolution: "@babel/parser@npm:7.11.0" bin: parser: ./bin/babel-parser.js - checksum: e6ca5dd22f0effc4fdd5bba50528c940a192300340d06da5b2d2bda22ea30c22ad6c988a3dcfbb0c8b6920d96d9db477fc186fc9b1e425e29443cc7d9df3851d + checksum: c9b8b5fcba74c34e175ef1ecc1c65f4c1f718b00d96e8878c56b95f332c60c0e978a27bb4e99851603f20aa74fa8fcee0f2bff0bf2c08c90281be8d2d04469ac languageName: node linkType: hard -"@babel/parser@workspace:^7.10.4, @babel/parser@workspace:packages/babel-parser": +"@babel/parser@workspace:^7.10.4, @babel/parser@workspace:^7.11.0, @babel/parser@workspace:^7.11.1, @babel/parser@workspace:packages/babel-parser": version: 0.0.0-use.local resolution: "@babel/parser@workspace:packages/babel-parser" dependencies: "@babel/code-frame": "workspace:^7.10.4" - "@babel/helper-fixtures": "workspace:^7.10.4" + "@babel/helper-fixtures": "workspace:^7.10.5" "@babel/helper-validator-identifier": "workspace:^7.10.4" charcodes: ^0.2.0 bin: @@ -1173,24 +980,24 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-proposal-async-generator-functions@npm:^7.10.3": - version: 7.10.3 - resolution: "@babel/plugin-proposal-async-generator-functions@npm:7.10.3" +"@babel/plugin-proposal-async-generator-functions@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-proposal-async-generator-functions@npm:7.10.4" dependencies: - "@babel/helper-plugin-utils": ^7.10.3 - "@babel/helper-remap-async-to-generator": ^7.10.3 + "@babel/helper-plugin-utils": ^7.10.4 + "@babel/helper-remap-async-to-generator": ^7.10.4 "@babel/plugin-syntax-async-generators": ^7.8.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: c4140379192a75f02f12d92932837a18513574e4a2e0ec41ca564a63fd0760b4362ba5e4a001ac01aca2c373ef3c8e46be3487c749a3193d5ec00502523419c4 + checksum: 273afe524db29b4c00bbb54087bacad31fb298b21fb83bc1aba0b8eaa20036a3b4c8a634a50006e3c815b1f75e52e71fce907a001bb39e24d542725ed341bd78 languageName: node linkType: hard -"@babel/plugin-proposal-async-generator-functions@workspace:^7.10.4, @babel/plugin-proposal-async-generator-functions@workspace:packages/babel-plugin-proposal-async-generator-functions": +"@babel/plugin-proposal-async-generator-functions@workspace:^7.10.4, @babel/plugin-proposal-async-generator-functions@workspace:^7.10.5, @babel/plugin-proposal-async-generator-functions@workspace:packages/babel-plugin-proposal-async-generator-functions": version: 0.0.0-use.local resolution: "@babel/plugin-proposal-async-generator-functions@workspace:packages/babel-plugin-proposal-async-generator-functions" dependencies: - "@babel/core": "workspace:^7.10.4" + "@babel/core": "workspace:^7.10.5" "@babel/helper-plugin-test-runner": "workspace:^7.10.4" "@babel/helper-plugin-utils": "workspace:^7.10.4" "@babel/helper-remap-async-to-generator": "workspace:^7.10.4" @@ -1200,15 +1007,15 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-proposal-class-properties@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-proposal-class-properties@npm:7.10.1" +"@babel/plugin-proposal-class-properties@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-proposal-class-properties@npm:7.10.4" dependencies: - "@babel/helper-create-class-features-plugin": ^7.10.1 - "@babel/helper-plugin-utils": ^7.10.1 + "@babel/helper-create-class-features-plugin": ^7.10.4 + "@babel/helper-plugin-utils": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 22fde163b52d7641fe6bde96e13d11c533d50fdb36aeb72c47bfce26754e0e9dcfaa53ab8629353ea9f6dc6531b4ead2e7993412aa87e9d7d8cc6d50e9c75702 + checksum: 32cf34c077eb2612e7f9a599078a51ed53807167b8cfe01702a777bf9efaec254820e2c3c52ce801e8619d40226065f311b8190b36c21f8b853c7f340dccca1f languageName: node linkType: hard @@ -1225,12 +1032,12 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-proposal-decorators@workspace:^7.10.4, @babel/plugin-proposal-decorators@workspace:packages/babel-plugin-proposal-decorators": +"@babel/plugin-proposal-decorators@workspace:^7.10.4, @babel/plugin-proposal-decorators@workspace:^7.10.5, @babel/plugin-proposal-decorators@workspace:packages/babel-plugin-proposal-decorators": version: 0.0.0-use.local resolution: "@babel/plugin-proposal-decorators@workspace:packages/babel-plugin-proposal-decorators" dependencies: - "@babel/core": "workspace:^7.10.4" - "@babel/helper-create-class-features-plugin": "workspace:^7.10.4" + "@babel/core": "workspace:^7.10.5" + "@babel/helper-create-class-features-plugin": "workspace:^7.10.5" "@babel/helper-plugin-test-runner": "workspace:^7.10.4" "@babel/helper-plugin-utils": "workspace:^7.10.4" "@babel/plugin-syntax-decorators": "workspace:^7.10.4" @@ -1252,15 +1059,15 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-proposal-dynamic-import@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-proposal-dynamic-import@npm:7.10.1" +"@babel/plugin-proposal-dynamic-import@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-proposal-dynamic-import@npm:7.10.4" dependencies: - "@babel/helper-plugin-utils": ^7.10.1 + "@babel/helper-plugin-utils": ^7.10.4 "@babel/plugin-syntax-dynamic-import": ^7.8.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 0a20bda26f7ce3f21293fda1177ea4434f2a6712ce70fad1a5c0d1acc94623ed40f179a9bd4942f07ae1de2ae48b44e85ef34c8f9e511c91a2c32a067050a789 + checksum: 0ded8305a774d2885ead96e9fda66ec0fc01085c123427b4ecd71314ea08a2b753e8bdbf28f127eafa9cbd7d2d08c7302506ae6f9c0e1c0895818a4c1604f45b languageName: node linkType: hard @@ -1290,15 +1097,15 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-proposal-export-namespace-from@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-proposal-export-namespace-from@npm:7.10.1" +"@babel/plugin-proposal-export-namespace-from@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-proposal-export-namespace-from@npm:7.10.4" dependencies: - "@babel/helper-plugin-utils": ^7.10.1 + "@babel/helper-plugin-utils": ^7.10.4 "@babel/plugin-syntax-export-namespace-from": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 8213765affbd3419bbb341862f0c7204d042d432809775ac226d2f35f87fd6e662855eda1a09de30ba8cf321ee3780adfdcbb1c3acbca03498477d25ae7091dd + checksum: b17727e66f86119de1f8b3d7b48351ec2b339f95a7c45238c0c11c9d81491696689d68204d79f45cdede007ed674424a6d255463285c2d66abbb76f09417ae28 languageName: node linkType: hard @@ -1315,11 +1122,11 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-proposal-function-bind@workspace:^7.10.4, @babel/plugin-proposal-function-bind@workspace:packages/babel-plugin-proposal-function-bind": +"@babel/plugin-proposal-function-bind@workspace:^7.10.5, @babel/plugin-proposal-function-bind@workspace:packages/babel-plugin-proposal-function-bind": version: 0.0.0-use.local resolution: "@babel/plugin-proposal-function-bind@workspace:packages/babel-plugin-proposal-function-bind" dependencies: - "@babel/core": "workspace:^7.10.4" + "@babel/core": "workspace:^7.10.5" "@babel/helper-plugin-test-runner": "workspace:^7.10.4" "@babel/helper-plugin-utils": "workspace:^7.10.4" "@babel/plugin-syntax-function-bind": "workspace:^7.10.4" @@ -1342,15 +1149,15 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-proposal-json-strings@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-proposal-json-strings@npm:7.10.1" +"@babel/plugin-proposal-json-strings@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-proposal-json-strings@npm:7.10.4" dependencies: - "@babel/helper-plugin-utils": ^7.10.1 + "@babel/helper-plugin-utils": ^7.10.4 "@babel/plugin-syntax-json-strings": ^7.8.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 13d7451961df3ffdece0401379273f5e01175a03344f6cd572e7e3a30e2e231309a23fd5c8aedeb3132a510ac420348a60d53b4283b78de646c8cea27cf99bdd + checksum: 340397166125ea2d4e2b2c15b5bb8845dc6cb5dc2bcd9ff52b5e767b8337e38ff1daa66aa7eb461b4abed3d242376e93d972ebe6799b5a1a3c65b1feb8833dfe languageName: node linkType: hard @@ -1367,11 +1174,23 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-proposal-logical-assignment-operators@workspace:^7.10.4, @babel/plugin-proposal-logical-assignment-operators@workspace:packages/babel-plugin-proposal-logical-assignment-operators": +"@babel/plugin-proposal-logical-assignment-operators@npm:^7.11.0": + version: 7.11.0 + resolution: "@babel/plugin-proposal-logical-assignment-operators@npm:7.11.0" + dependencies: + "@babel/helper-plugin-utils": ^7.10.4 + "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: a87e80bcfdfcbdbd6fa3b34198948d4a9c0e2a8965efcd525215fc8244e7b47f7cb5e69c6c5d42646cdab6aeaebf3e138a33ebe0c44a4163e4ad995b85f008b5 + languageName: node + linkType: hard + +"@babel/plugin-proposal-logical-assignment-operators@workspace:^7.11.0, @babel/plugin-proposal-logical-assignment-operators@workspace:packages/babel-plugin-proposal-logical-assignment-operators": version: 0.0.0-use.local resolution: "@babel/plugin-proposal-logical-assignment-operators@workspace:packages/babel-plugin-proposal-logical-assignment-operators" dependencies: - "@babel/core": "workspace:^7.10.4" + "@babel/core": "workspace:^7.11.0" "@babel/helper-plugin-test-runner": "workspace:^7.10.4" "@babel/helper-plugin-utils": "workspace:^7.10.4" "@babel/plugin-proposal-nullish-coalescing-operator": "workspace:^7.10.4" @@ -1382,15 +1201,15 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-proposal-nullish-coalescing-operator@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-proposal-nullish-coalescing-operator@npm:7.10.1" +"@babel/plugin-proposal-nullish-coalescing-operator@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-proposal-nullish-coalescing-operator@npm:7.10.4" dependencies: - "@babel/helper-plugin-utils": ^7.10.1 + "@babel/helper-plugin-utils": ^7.10.4 "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 5b32af68cf5af096af5e6d2dda2d84017a014485bcae7558041322a8290567f87fa3ce2266fb1b6b59fd71a297b159d2ad404051593d472497a121c7cbef2d40 + checksum: 5a20d8bcbf2926dde3e9edcf847eaa5485d0d0fea76d0683ef1cafb11e0c35e46620391916283e1a9c0f76351e8c5ecccebf0d3a6bdf24559c5ad381433a0e3a languageName: node linkType: hard @@ -1407,15 +1226,15 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-proposal-numeric-separator@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-proposal-numeric-separator@npm:7.10.1" +"@babel/plugin-proposal-numeric-separator@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-proposal-numeric-separator@npm:7.10.4" dependencies: - "@babel/helper-plugin-utils": ^7.10.1 - "@babel/plugin-syntax-numeric-separator": ^7.10.1 + "@babel/helper-plugin-utils": ^7.10.4 + "@babel/plugin-syntax-numeric-separator": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f1d8bf5049e4649f335ac71fe06cc4ebb686ae7516675fca4bfb27e94507a0b91eeca1c935d2fa3ce29d742ea4a7d3e6d3170be0e6d3f374405f62dbe126c7cd + checksum: 344eff491f0a7bb17958ce00db34af5671ec3d9dc87c29766208ab7a3c8ea769730c9f2420c55c54ecd24ffdd5df01f258d54eb41ccd35911e974c549a697e4b languageName: node linkType: hard @@ -1432,24 +1251,24 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-proposal-object-rest-spread@npm:^7.10.1, @babel/plugin-proposal-object-rest-spread@npm:^7.10.3": - version: 7.10.3 - resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.10.3" +"@babel/plugin-proposal-object-rest-spread@npm:^7.11.0": + version: 7.11.0 + resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.11.0" dependencies: - "@babel/helper-plugin-utils": ^7.10.3 + "@babel/helper-plugin-utils": ^7.10.4 "@babel/plugin-syntax-object-rest-spread": ^7.8.0 - "@babel/plugin-transform-parameters": ^7.10.1 + "@babel/plugin-transform-parameters": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f9c499730456313ff3973803480c68a5309f28573d7ed66eda0bd774709039a5d57f032fe8583c8609bbb560283653d227defa890f101935cbb94139e5c7cf26 + checksum: 5071094245f02ce9b1b090597f51cf8510c7936425ac2358b561447b09bcdd231b5b52896f63cc1a96aa6c2ab7a952b61d9fee6b286686f7dc8697728dd5d66d languageName: node linkType: hard -"@babel/plugin-proposal-object-rest-spread@workspace:^7.10.4, @babel/plugin-proposal-object-rest-spread@workspace:packages/babel-plugin-proposal-object-rest-spread": +"@babel/plugin-proposal-object-rest-spread@workspace:^7.11.0, @babel/plugin-proposal-object-rest-spread@workspace:packages/babel-plugin-proposal-object-rest-spread": version: 0.0.0-use.local resolution: "@babel/plugin-proposal-object-rest-spread@workspace:packages/babel-plugin-proposal-object-rest-spread" dependencies: - "@babel/core": "workspace:^7.10.4" + "@babel/core": "workspace:^7.11.0" "@babel/helper-plugin-test-runner": "workspace:^7.10.4" "@babel/helper-plugin-utils": "workspace:^7.10.4" "@babel/plugin-syntax-object-rest-spread": ^7.8.0 @@ -1459,15 +1278,15 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-proposal-optional-catch-binding@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-proposal-optional-catch-binding@npm:7.10.1" +"@babel/plugin-proposal-optional-catch-binding@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-proposal-optional-catch-binding@npm:7.10.4" dependencies: - "@babel/helper-plugin-utils": ^7.10.1 + "@babel/helper-plugin-utils": ^7.10.4 "@babel/plugin-syntax-optional-catch-binding": ^7.8.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: ef3d8895ffcc2c58cb916c2d92a49a7cd982ac627cfae5bb3bf4a0041f5a9e67fa9247df2c2a14a9ef2e255cda85fc240f303777ecaea4cffd53c46dfd07fb70 + checksum: 56a3a62131cdc7b7481a005dacd26f83ae10936e2dbe0b06a98cb767b13cdc859504d862a166be8d1e2ac4bc0ddfc7aa9fa7135a68e126bfcba1bcb0585928d0 languageName: node linkType: hard @@ -1484,25 +1303,27 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-proposal-optional-chaining@npm:^7.10.3": - version: 7.10.3 - resolution: "@babel/plugin-proposal-optional-chaining@npm:7.10.3" +"@babel/plugin-proposal-optional-chaining@npm:^7.11.0": + version: 7.11.0 + resolution: "@babel/plugin-proposal-optional-chaining@npm:7.11.0" dependencies: - "@babel/helper-plugin-utils": ^7.10.3 + "@babel/helper-plugin-utils": ^7.10.4 + "@babel/helper-skip-transparent-expression-wrappers": ^7.11.0 "@babel/plugin-syntax-optional-chaining": ^7.8.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: fbeffd5cb06df853e1a7c53b7c713ed1f2abd89abbd85f90679446ae285e14744887f997f87c20ddcadb5048b2164dc0077294ed08cc5ff287ce2c4701aa6d8a + checksum: fb59410944f66de515e34eb68a5fa2c530db7f87d2e599230f5d512ebf1d4c92d2e10a39ec012feefc1cc748a3e3b0be25967997bff23af9bb6f7c1402d3eda7 languageName: node linkType: hard -"@babel/plugin-proposal-optional-chaining@workspace:^7.10.4, @babel/plugin-proposal-optional-chaining@workspace:packages/babel-plugin-proposal-optional-chaining": +"@babel/plugin-proposal-optional-chaining@workspace:^7.11.0, @babel/plugin-proposal-optional-chaining@workspace:packages/babel-plugin-proposal-optional-chaining": version: 0.0.0-use.local resolution: "@babel/plugin-proposal-optional-chaining@workspace:packages/babel-plugin-proposal-optional-chaining" dependencies: - "@babel/core": "workspace:^7.10.4" + "@babel/core": "workspace:^7.11.0" "@babel/helper-plugin-test-runner": "workspace:^7.10.4" "@babel/helper-plugin-utils": "workspace:^7.10.4" + "@babel/helper-skip-transparent-expression-wrappers": "workspace:^7.11.0" "@babel/plugin-syntax-optional-chaining": ^7.8.0 "@babel/plugin-transform-block-scoping": "workspace:^7.10.4" peerDependencies: @@ -1514,7 +1335,7 @@ __metadata: version: 0.0.0-use.local resolution: "@babel/plugin-proposal-partial-application@workspace:packages/babel-plugin-proposal-partial-application" dependencies: - "@babel/core": "workspace:^7.10.4" + "@babel/core": "workspace:^7.10.5" "@babel/helper-plugin-test-runner": "workspace:^7.10.4" "@babel/helper-plugin-utils": "workspace:^7.10.4" "@babel/plugin-syntax-partial-application": "workspace:^7.10.4" @@ -1523,11 +1344,11 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-proposal-pipeline-operator@workspace:^7.10.4, @babel/plugin-proposal-pipeline-operator@workspace:packages/babel-plugin-proposal-pipeline-operator": +"@babel/plugin-proposal-pipeline-operator@workspace:^7.10.4, @babel/plugin-proposal-pipeline-operator@workspace:^7.10.5, @babel/plugin-proposal-pipeline-operator@workspace:packages/babel-plugin-proposal-pipeline-operator": version: 0.0.0-use.local resolution: "@babel/plugin-proposal-pipeline-operator@workspace:packages/babel-plugin-proposal-pipeline-operator" dependencies: - "@babel/core": "workspace:^7.10.4" + "@babel/core": "workspace:^7.10.5" "@babel/helper-plugin-test-runner": "workspace:^7.10.4" "@babel/helper-plugin-utils": "workspace:^7.10.4" "@babel/plugin-syntax-pipeline-operator": "workspace:^7.10.4" @@ -1536,15 +1357,15 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-proposal-private-methods@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-proposal-private-methods@npm:7.10.1" +"@babel/plugin-proposal-private-methods@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-proposal-private-methods@npm:7.10.4" dependencies: - "@babel/helper-create-class-features-plugin": ^7.10.1 - "@babel/helper-plugin-utils": ^7.10.1 + "@babel/helper-create-class-features-plugin": ^7.10.4 + "@babel/helper-plugin-utils": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: bc20dfb2c777536b6c2b8d3b3007a20824cf6b8b96c1c11e5270f27a3211e2b4c90e79834b0e7f71da850144d4f951c9327ec551b305b7894578c6714fd24ee5 + checksum: 7a29e63aaf68e25059570253c0f3b1046000ed2d43f66cb458a90c6d5fa4f1cc58f2197778ee0d07f773520980bd076609f94789d7f6b8637b9927d62ddfe6fe languageName: node linkType: hard @@ -1587,27 +1408,15 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-proposal-unicode-property-regex@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-proposal-unicode-property-regex@npm:7.10.1" - dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.10.1 - "@babel/helper-plugin-utils": ^7.10.1 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: f8242abfdf5cf44a04377b3d7e16d68c7664784ee5b04a5ba8e281de9739bb178675a38f4344de74246fb4bb1f583e017b79ead43bca4c3199aded2a8e4b8c3e - languageName: node - linkType: hard - -"@babel/plugin-proposal-unicode-property-regex@npm:^7.4.4": - version: 7.8.8 - resolution: "@babel/plugin-proposal-unicode-property-regex@npm:7.8.8" +"@babel/plugin-proposal-unicode-property-regex@npm:^7.10.4, @babel/plugin-proposal-unicode-property-regex@npm:^7.4.4": + version: 7.10.4 + resolution: "@babel/plugin-proposal-unicode-property-regex@npm:7.10.4" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.8.8 - "@babel/helper-plugin-utils": ^7.8.3 + "@babel/helper-create-regexp-features-plugin": ^7.10.4 + "@babel/helper-plugin-utils": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f7aa13afc1d93f3e825ae63e94b1d8b28d2a517d2200c76310b462e8463a776067c44ded826651e23a971489a8f20df6335b3da4fe06aaec01f1cae8fc0b7e5b + checksum: 41e271cf08bad32a0e86dedb67ed4329a119466ec1531a69397915fbac6032f8452e5b0bb7205a069a6a728c370375a944efabaec155d861b9e4028e0f434667 languageName: node linkType: hard @@ -1646,25 +1455,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-class-properties@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-syntax-class-properties@npm:7.10.1" +"@babel/plugin-syntax-class-properties@npm:^7.10.4, @babel/plugin-syntax-class-properties@npm:^7.8.3": + version: 7.10.4 + resolution: "@babel/plugin-syntax-class-properties@npm:7.10.4" dependencies: - "@babel/helper-plugin-utils": ^7.10.1 + "@babel/helper-plugin-utils": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: a8560f829796cb82b8deccc8bb034bf6696dc0ccbdb32853fc6177612921dc4ae017ec5dae04dc9c251e55391576627b9c830baab91d6efe21d047f4c20eb224 - languageName: node - linkType: hard - -"@babel/plugin-syntax-class-properties@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-class-properties@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: b80f7a4e1592bd76d854d96cd67e20e9d10ef30bf767dca97d3679ae928b31cb706e1a258c034191f9ec463a2430551d3e1e49b12abd6425b958613c8e81246e + checksum: 8d0c1a3f5a922c2cd9387c7313e5516d58bfb6e60885b8d953ae23b6432aafe14be0fa1a2d4348c02f2eaaca82fecd76b7f622bff439775505c021b00a12dcbb languageName: node linkType: hard @@ -1679,6 +1477,16 @@ __metadata: languageName: unknown linkType: soft +"@babel/plugin-syntax-decimal@workspace:^7.11.0, @babel/plugin-syntax-decimal@workspace:packages/babel-plugin-syntax-decimal": + version: 0.0.0-use.local + resolution: "@babel/plugin-syntax-decimal@workspace:packages/babel-plugin-syntax-decimal" + dependencies: + "@babel/helper-plugin-utils": "workspace:^7.10.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + languageName: unknown + linkType: soft + "@babel/plugin-syntax-decorators@workspace:^7.10.4, @babel/plugin-syntax-decorators@workspace:packages/babel-plugin-syntax-decorators": version: 0.0.0-use.local resolution: "@babel/plugin-syntax-decorators@workspace:packages/babel-plugin-syntax-decorators" @@ -1734,14 +1542,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-flow@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-syntax-flow@npm:7.10.1" +"@babel/plugin-syntax-flow@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-syntax-flow@npm:7.10.4" dependencies: - "@babel/helper-plugin-utils": ^7.10.1 + "@babel/helper-plugin-utils": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 0bf22f2de17be1eae03fd33e5562c99ac094243e79fd01b777ee6e8fdc762cf9b26854ecc924d01cccedcaed1aa6efea292ce28de38178948e4862f2f801c56c + checksum: 96d32d0411ac94429714f0bfda399b26b1ecee0757b645105cc3ffbb85cdef0d7f9959529d38ee44d1c17e989876b3f86f8a61f41430667ddea6d176e78d52cb languageName: node linkType: hard @@ -1778,6 +1586,17 @@ __metadata: languageName: unknown linkType: soft +"@babel/plugin-syntax-import-meta@npm:^7.8.3": + version: 7.10.4 + resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" + dependencies: + "@babel/helper-plugin-utils": ^7.10.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 685ee8f0b5b675952e02e1cabcde4d92638918a66ed515b2663e2e0b2246210a0768325423d5642f8687653a449357826675ccfcb712676be260a0ae13313828 + languageName: node + linkType: hard + "@babel/plugin-syntax-import-meta@workspace:^7.10.4, @babel/plugin-syntax-import-meta@workspace:packages/babel-plugin-syntax-import-meta": version: 0.0.0-use.local resolution: "@babel/plugin-syntax-import-meta@workspace:packages/babel-plugin-syntax-import-meta" @@ -1811,14 +1630,14 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-syntax-logical-assignment-operators@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.8.3" +"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4, @babel/plugin-syntax-logical-assignment-operators@npm:^7.8.3": + version: 7.10.4 + resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" dependencies: - "@babel/helper-plugin-utils": ^7.8.3 + "@babel/helper-plugin-utils": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f711dcf8ea6fe59e50ad75546aa89ad88e02247811653ed1482c0bf833449b46fbb7acb713c5ce410a246a1ad043f9dc3b974e0a1f7d85cb76761d6a3f8ed4b5 + checksum: 5b82f717707d278e58d12649932bf3327923361f051cd4517a5b63d7ebfe39cb6cdfb37aa199b5a441db305301a3c8de01c946d25d1f4c4ecb94322a23ac9e73 languageName: node linkType: hard @@ -1855,25 +1674,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-numeric-separator@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.1" - dependencies: - "@babel/helper-plugin-utils": ^7.10.1 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: ca349b22dc6f3d3a674b51e2536abbfa5a51d52a7e97627fac6872862d12593d73c3e360e2b3c06c588d1cee11f0f473a234ebe4a8ec6a12f479d053a5aaab4f - languageName: node - linkType: hard - -"@babel/plugin-syntax-numeric-separator@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-numeric-separator@npm:7.8.3" +"@babel/plugin-syntax-numeric-separator@npm:^7.10.4, @babel/plugin-syntax-numeric-separator@npm:^7.8.3": + version: 7.10.4 + resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4" dependencies: - "@babel/helper-plugin-utils": ^7.8.3 + "@babel/helper-plugin-utils": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b12fb19d0cb795b26c2b7262ee6ca20effbd4556ec6aa1fa1fa579979c08541d2b2db33e3cae2a333f22460c6a36dd646af79a70a662b7fe22675cdbe6bc3001 + checksum: 47ae8782939ccc41f94b1d46b8b7a63363b003b8b7544bddae8dd454a8d51b38bbd4f9c26e91ecfb5fc16dc5f2228700e3030def63c5d07046073ec8fabc4665 languageName: node linkType: hard @@ -1888,7 +1696,7 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-syntax-object-rest-spread@npm:^7.7.4, @babel/plugin-syntax-object-rest-spread@npm:^7.8.0, @babel/plugin-syntax-object-rest-spread@npm:^7.8.3": +"@babel/plugin-syntax-object-rest-spread@npm:^7.0.0, @babel/plugin-syntax-object-rest-spread@npm:^7.7.4, @babel/plugin-syntax-object-rest-spread@npm:^7.8.0, @babel/plugin-syntax-object-rest-spread@npm:^7.8.3": version: 7.8.3 resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3" dependencies: @@ -1965,14 +1773,14 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-syntax-top-level-await@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-syntax-top-level-await@npm:7.10.1" +"@babel/plugin-syntax-top-level-await@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-syntax-top-level-await@npm:7.10.4" dependencies: - "@babel/helper-plugin-utils": ^7.10.1 + "@babel/helper-plugin-utils": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 9e934bafeafb1959d95da1a664b3c69156b3bb3808cf042a61aeb1aca7d076016b1111d00521ff70419978de2e165e704a6b8e51de51dfa265283b874bf49829 + checksum: 998d87fbd38a2c7d1b630ccd0a90430a70dec6b7fb23fc37c60cbc10de7112a094c786602d9c8e3093568f538eb2642705006682ce58eb922f2eda889af3ad48 languageName: node linkType: hard @@ -1998,14 +1806,14 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-transform-arrow-functions@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-transform-arrow-functions@npm:7.10.1" +"@babel/plugin-transform-arrow-functions@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.10.4" dependencies: - "@babel/helper-plugin-utils": ^7.10.1 + "@babel/helper-plugin-utils": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 1624148126db56f4ceddab2610546f690b14370ced3ece6bf529314bd1d03d6269af6944176d322baeb13278807b4f5e5572a420cff5d787c4489e305dd70f5c + checksum: ec5b1d6ec6b61baf93cff41016e30f9d410a6a24fd8adc6e8790b168781470ad52dbf34c8e6897bed7c62eb79c20f59f96e6014acb8f7fd6b91c89ed1c515acb languageName: node linkType: hard @@ -2022,16 +1830,16 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-transform-async-to-generator@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-transform-async-to-generator@npm:7.10.1" +"@babel/plugin-transform-async-to-generator@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.10.4" dependencies: - "@babel/helper-module-imports": ^7.10.1 - "@babel/helper-plugin-utils": ^7.10.1 - "@babel/helper-remap-async-to-generator": ^7.10.1 + "@babel/helper-module-imports": ^7.10.4 + "@babel/helper-plugin-utils": ^7.10.4 + "@babel/helper-remap-async-to-generator": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: c7b5d7ff9c9086f15fa52f306d4213b9b100431e8e84b55d088e8510c1781be0d37121d0c8b4fc08075fa708eed8269c458a8082c6e4064c743c25cee8db6f6a + checksum: c4cddae691f303aecc5124dfd4cbc9eba09523b714b92fa4a567cf4add212c057b93d7598cd6dda79645230c777290fc13ec17f6384255c8bdce50692539abe1 languageName: node linkType: hard @@ -2049,14 +1857,14 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-transform-block-scoped-functions@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.10.1" +"@babel/plugin-transform-block-scoped-functions@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.10.4" dependencies: - "@babel/helper-plugin-utils": ^7.10.1 + "@babel/helper-plugin-utils": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 0a06b5b46a9e181bdea9cabfaa538f86d1af34085342ba7678571ad6215b0e12aa531afcc32c41d8205a2351bf4db551a2296d40b39f6e8e1421838a2971696e + checksum: d608f55104576798ec224d1b222ee33a22968bc0653b54c316c0a591bf4c2681b87c6222266d978ab273c19ef44e6976eaeac4da8928694312433a01616cc73f languageName: node linkType: hard @@ -2072,46 +1880,45 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-transform-block-scoping@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-transform-block-scoping@npm:7.10.1" +"@babel/plugin-transform-block-scoping@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-transform-block-scoping@npm:7.10.4" dependencies: - "@babel/helper-plugin-utils": ^7.10.1 + "@babel/helper-plugin-utils": ^7.10.4 lodash: ^4.17.13 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 9f75505bab38eb3b2344269a7196acd040cfd4e80bfa9fa687f3fb86f23a53fb47e3d1b8c38a59b5f8f32ddc5fce1cc7d5aa0573eb45f63759dd6db6d767e963 + checksum: 55283d5f2e4c3062e1d2314f0817558d66e42aecb8fbeeb7974e18d02dfcf8534018081a9e55279a431caed5262f2d161e6673af0e7b2748a360e31977bc446a languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@workspace:^7.10.4, @babel/plugin-transform-block-scoping@workspace:packages/babel-plugin-transform-block-scoping": +"@babel/plugin-transform-block-scoping@workspace:^7.10.4, @babel/plugin-transform-block-scoping@workspace:^7.11.1, @babel/plugin-transform-block-scoping@workspace:packages/babel-plugin-transform-block-scoping": version: 0.0.0-use.local resolution: "@babel/plugin-transform-block-scoping@workspace:packages/babel-plugin-transform-block-scoping" dependencies: - "@babel/core": "workspace:^7.10.4" + "@babel/core": "workspace:^7.11.1" "@babel/helper-plugin-test-runner": "workspace:^7.10.4" "@babel/helper-plugin-utils": "workspace:^7.10.4" - lodash: ^4.17.13 peerDependencies: "@babel/core": ^7.0.0-0 languageName: unknown linkType: soft -"@babel/plugin-transform-classes@npm:^7.10.3": - version: 7.10.3 - resolution: "@babel/plugin-transform-classes@npm:7.10.3" - dependencies: - "@babel/helper-annotate-as-pure": ^7.10.1 - "@babel/helper-define-map": ^7.10.3 - "@babel/helper-function-name": ^7.10.3 - "@babel/helper-optimise-call-expression": ^7.10.3 - "@babel/helper-plugin-utils": ^7.10.3 - "@babel/helper-replace-supers": ^7.10.1 - "@babel/helper-split-export-declaration": ^7.10.1 +"@babel/plugin-transform-classes@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-transform-classes@npm:7.10.4" + dependencies: + "@babel/helper-annotate-as-pure": ^7.10.4 + "@babel/helper-define-map": ^7.10.4 + "@babel/helper-function-name": ^7.10.4 + "@babel/helper-optimise-call-expression": ^7.10.4 + "@babel/helper-plugin-utils": ^7.10.4 + "@babel/helper-replace-supers": ^7.10.4 + "@babel/helper-split-export-declaration": ^7.10.4 globals: ^11.1.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2548575c1f23a8e7ecbafeee35a3cdaff3236dd7eac96d310a53eda29a3328614b544eec0397c5812e3581a61b281942f0aa81378149a86022bf16e16b91f323 + checksum: c5ba85f73658eb060c83fafda960572c9ceb4e47650c539fbde474d37f133a0112031c4602964cf5f9ef967916e4bbd4afa8b1210cd64ec6fb71519521e28348 languageName: node linkType: hard @@ -2134,14 +1941,14 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-transform-computed-properties@npm:^7.10.3": - version: 7.10.3 - resolution: "@babel/plugin-transform-computed-properties@npm:7.10.3" +"@babel/plugin-transform-computed-properties@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-transform-computed-properties@npm:7.10.4" dependencies: - "@babel/helper-plugin-utils": ^7.10.3 + "@babel/helper-plugin-utils": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: a8cfa3647c864c840905013c0c2c6cd74b06de2dfe46b4d2be2e602caf0d1bcc9755004a5082abcd2c12de67dd0c46d27188e7b08a6ca5f415984b639696370d + checksum: c69c53881deaa1595fd974328997f1c4731586df5e6be310269107becb83efb0fd8abbe7177320c6b1fdd8828bfe42301f6649e7589da8472a65ecda72cd8d32 languageName: node linkType: hard @@ -2157,14 +1964,14 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-transform-destructuring@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-transform-destructuring@npm:7.10.1" +"@babel/plugin-transform-destructuring@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-transform-destructuring@npm:7.10.4" dependencies: - "@babel/helper-plugin-utils": ^7.10.1 + "@babel/helper-plugin-utils": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: c49864818a2a89ec955d3e122459de7a3bdce82784967cffd924b293566534c475b5b01e3108a9b6b17e5a2b1f871fbd136656d5f0f28572a1fcf83e22fd6f80 + checksum: 2ea714834691b08805227a5335707e556aff087507c9fdccb7265ed56ca9ee39635945d102f5a6f418ade08f3f61ce3f4ebc345d36060254d06d6e08a5693f0a languageName: node linkType: hard @@ -2180,27 +1987,15 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-transform-dotall-regex@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-transform-dotall-regex@npm:7.10.1" - dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.10.1 - "@babel/helper-plugin-utils": ^7.10.1 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: f1827a100416e9b54fe8e3c9c0bfa03984aa83d0d0e75c2fe5b58a0a1e78d70f106c5a8ab46c8a5a22a6acd17e9a6d3e4633dc06123ef7c83cf076131d4ec24a - languageName: node - linkType: hard - -"@babel/plugin-transform-dotall-regex@npm:^7.4.4": - version: 7.8.3 - resolution: "@babel/plugin-transform-dotall-regex@npm:7.8.3" +"@babel/plugin-transform-dotall-regex@npm:^7.10.4, @babel/plugin-transform-dotall-regex@npm:^7.4.4": + version: 7.10.4 + resolution: "@babel/plugin-transform-dotall-regex@npm:7.10.4" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.8.3 - "@babel/helper-plugin-utils": ^7.8.3 + "@babel/helper-create-regexp-features-plugin": ^7.10.4 + "@babel/helper-plugin-utils": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e0b28ea6b224f3e00b81bd447f42aff82a2f6f3722ba5c9763e8cf3bc3994a55bd9a142fc68d83f41595d663528791d671d5bfc08637443fb13ee5296a7de73d + checksum: 284cce72dfade92b51e8a66742ac7e9449f3d9e379ea2185777e600b000fd1ba0614786ccd9f753a52e2a896235ba7381d82767d7ade0352fd32ec5c90781bc7 languageName: node linkType: hard @@ -2217,14 +2012,14 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-transform-duplicate-keys@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-transform-duplicate-keys@npm:7.10.1" +"@babel/plugin-transform-duplicate-keys@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-transform-duplicate-keys@npm:7.10.4" dependencies: - "@babel/helper-plugin-utils": ^7.10.1 + "@babel/helper-plugin-utils": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b3a2d7585d8d61cbaaa73f5fcc8494db52e0f7c399f5950bd4227c55e1d49d5b104dd3e0b4a95f07d69e17293a575eb0fa4143ee74ebf9a081c7f347c58e7327 + checksum: 60897c7c2f49f687b5699c486a84f91f16bd8951c306795199bbc908073000db3d693f4ca04058d62ef09bec61fccd4d9c379ef8086754297d4440b1677047f2 languageName: node linkType: hard @@ -2240,15 +2035,15 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-transform-exponentiation-operator@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.10.1" +"@babel/plugin-transform-exponentiation-operator@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.10.4" dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor": ^7.10.1 - "@babel/helper-plugin-utils": ^7.10.1 + "@babel/helper-builder-binary-assignment-operator-visitor": ^7.10.4 + "@babel/helper-plugin-utils": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 02c836eff7872d96ba588b5ce4512b8b23d9cf408d296ae314e2c1408889eddfe69014fd58c8e7bef3f2af1090045d1bb4def8d23d8497fd95a6f72cc6c5357a + checksum: fb086b4482cce50adc59dcc5713f4a4fe082bad176b360f5bb3fabc47461cdfed6bbf739a84535a78bc26f743bca74f31f195ec8c223cba8acafa299f5361fe1 languageName: node linkType: hard @@ -2279,15 +2074,15 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-transform-flow-strip-types@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-transform-flow-strip-types@npm:7.10.1" +"@babel/plugin-transform-flow-strip-types@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-transform-flow-strip-types@npm:7.10.4" dependencies: - "@babel/helper-plugin-utils": ^7.10.1 - "@babel/plugin-syntax-flow": ^7.10.1 + "@babel/helper-plugin-utils": ^7.10.4 + "@babel/plugin-syntax-flow": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 6b9843bd1459526931cc641410b7b50677088c72dcb6f230d7a7995369bb54c30d5aa7b0ec9fcb1275c0c1323d708048d5ddee63c90abb88a685f11ae0a8d914 + checksum: 704d4c8a80e017b642e8d531bec124929da84f1cc6e226fb57a3c3084d30f08f922a5fed7a9d2b1728ba45f20d87f89a438a4f630c578756715cc732703f0d7f languageName: node linkType: hard @@ -2304,14 +2099,14 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-transform-for-of@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-transform-for-of@npm:7.10.1" +"@babel/plugin-transform-for-of@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-transform-for-of@npm:7.10.4" dependencies: - "@babel/helper-plugin-utils": ^7.10.1 + "@babel/helper-plugin-utils": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 31e6f80d8cf11b4d848f93be6d918e70ff550714e68d9c935d12ab450bdddc486221680c862efecb21f5fde3b04242f6c09e9892a75781332015b8e322d1acff + checksum: 86c02bbf98763179f881f58f7b3c6536ed6da36db9190f6a285a61298584ecbef253e1d1e7ffae3cdc216c47bca7987d96e3a4c652edd3134994a146da831e4e languageName: node linkType: hard @@ -2327,15 +2122,15 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-transform-function-name@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-transform-function-name@npm:7.10.1" +"@babel/plugin-transform-function-name@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-transform-function-name@npm:7.10.4" dependencies: - "@babel/helper-function-name": ^7.10.1 - "@babel/helper-plugin-utils": ^7.10.1 + "@babel/helper-function-name": ^7.10.4 + "@babel/helper-plugin-utils": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 03b49042af9e2b48e931e98dd7b2eb89c677f175df9f29c00d352944a9bb9fcd94d09f35e76cff084cce75a4192ebc074d84f36a4308273d6282b64f545375d8 + checksum: 64d8bf2de2a290d1c5d0c5f1d5f57fc64ff02705bc9740fc217f026d7aea7a1823ef22e28c6aa101ee7f81b55485801938bbc2210530845eee7fc0305ccdde0c languageName: node linkType: hard @@ -2376,14 +2171,14 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-transform-literals@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-transform-literals@npm:7.10.1" +"@babel/plugin-transform-literals@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-transform-literals@npm:7.10.4" dependencies: - "@babel/helper-plugin-utils": ^7.10.1 + "@babel/helper-plugin-utils": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 94d53c7b2db05a4c8cc2e575b7cbfe3b1464002e633f596d92bf4de37005e1e776259898d54a564eb3aab1d62501075c992c01aa30f11d79d93a244f36242dbe + checksum: 53cd3f43672cb9361175e21cddb9eb39d260ddb1ca6206c669ec5a6519db16609cb46e88af700b3da5b2a9ce09ea035f9557ca60e679341d737b1988f5ba6088 languageName: node linkType: hard @@ -2399,14 +2194,14 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-transform-member-expression-literals@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-transform-member-expression-literals@npm:7.10.1" +"@babel/plugin-transform-member-expression-literals@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.10.4" dependencies: - "@babel/helper-plugin-utils": ^7.10.1 + "@babel/helper-plugin-utils": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: c975a1155578ce0fbe7630176334b1dada9f50be4d38e1e3134ea4ae4e1e15f645c0758975bbb9e627d8f4631086ebd53ef93c18a5217c027d01291b5b11ecb4 + checksum: e6a1844cb542ea43a83fc0ac81f630ab5ac1547aaf595acfb9f9c17e98b5aa1f7aca21f84657c111260e6e7a2404643355ea8c2b5fd434915b106c3e1c2f431e languageName: node linkType: hard @@ -2422,25 +2217,25 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-transform-modules-amd@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-transform-modules-amd@npm:7.10.1" +"@babel/plugin-transform-modules-amd@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-transform-modules-amd@npm:7.10.4" dependencies: - "@babel/helper-module-transforms": ^7.10.1 - "@babel/helper-plugin-utils": ^7.10.1 + "@babel/helper-module-transforms": ^7.10.4 + "@babel/helper-plugin-utils": ^7.10.4 babel-plugin-dynamic-import-node: ^2.3.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: ab96b9a8915ceffb2479d4d4540e6bbeadd688ff6ec453ad82dbfa15f9e1b4c9c04469f29589dbbe32adf70a191951ee1d56443088750746411bc5d72bbf218c + checksum: 71ff939170aef170ab1e9f11989f23f7b48fe99d7b0e8156626a5daa8a770b7194dfd060a5642690258a61b1ef4c3e62e21d6bfaf4f60ed2a29cc14a2ff727d0 languageName: node linkType: hard -"@babel/plugin-transform-modules-amd@workspace:^7.10.4, @babel/plugin-transform-modules-amd@workspace:packages/babel-plugin-transform-modules-amd": +"@babel/plugin-transform-modules-amd@workspace:^7.10.4, @babel/plugin-transform-modules-amd@workspace:^7.10.5, @babel/plugin-transform-modules-amd@workspace:packages/babel-plugin-transform-modules-amd": version: 0.0.0-use.local resolution: "@babel/plugin-transform-modules-amd@workspace:packages/babel-plugin-transform-modules-amd" dependencies: - "@babel/core": "workspace:^7.10.4" - "@babel/helper-module-transforms": "workspace:^7.10.4" + "@babel/core": "workspace:^7.10.5" + "@babel/helper-module-transforms": "workspace:^7.10.5" "@babel/helper-plugin-test-runner": "workspace:^7.10.4" "@babel/helper-plugin-utils": "workspace:^7.10.4" babel-plugin-dynamic-import-node: ^2.3.3 @@ -2449,17 +2244,17 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-transform-modules-commonjs@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.10.1" +"@babel/plugin-transform-modules-commonjs@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.10.4" dependencies: - "@babel/helper-module-transforms": ^7.10.1 - "@babel/helper-plugin-utils": ^7.10.1 - "@babel/helper-simple-access": ^7.10.1 + "@babel/helper-module-transforms": ^7.10.4 + "@babel/helper-plugin-utils": ^7.10.4 + "@babel/helper-simple-access": ^7.10.4 babel-plugin-dynamic-import-node: ^2.3.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e10ee7d470d5cab7aaebbcf8a48e9e3bbf5dcfe48c84db476ca6b3e3ea7bc9e1515974fe15a56589e71e0510e6aa123a00b700983d362fee12e8833374c8a550 + checksum: 42176865089a2800e888c41beaf3688e00b9b71b5bc65ca238342c83e9d38ec141eaa405182688a8294b344cd8a7ed36ab2da2662c38a40e2c736fed48ae7178 languageName: node linkType: hard @@ -2479,27 +2274,27 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-transform-modules-systemjs@npm:^7.10.3": - version: 7.10.3 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.10.3" +"@babel/plugin-transform-modules-systemjs@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.10.4" dependencies: - "@babel/helper-hoist-variables": ^7.10.3 - "@babel/helper-module-transforms": ^7.10.1 - "@babel/helper-plugin-utils": ^7.10.3 + "@babel/helper-hoist-variables": ^7.10.4 + "@babel/helper-module-transforms": ^7.10.4 + "@babel/helper-plugin-utils": ^7.10.4 babel-plugin-dynamic-import-node: ^2.3.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 635e9b09773fe9984c7ae18321cb410cfda2185e86583b9e52d3fb87dbe37d05cca047468cd8d4a1595f186cd3a911c64aad1bf119ca8d210146bccbd770e1c5 + checksum: 6dea9c6b46ea97b2924160c718c40dd85154cce48a6dd1835a5f829c339aceabc76af50f6404fe6d6f990785aa9f299c898afb2cd03ea19749104989cd9aea17 languageName: node linkType: hard -"@babel/plugin-transform-modules-systemjs@workspace:^7.10.4, @babel/plugin-transform-modules-systemjs@workspace:packages/babel-plugin-transform-modules-systemjs": +"@babel/plugin-transform-modules-systemjs@workspace:^7.10.4, @babel/plugin-transform-modules-systemjs@workspace:^7.10.5, @babel/plugin-transform-modules-systemjs@workspace:packages/babel-plugin-transform-modules-systemjs": version: 0.0.0-use.local resolution: "@babel/plugin-transform-modules-systemjs@workspace:packages/babel-plugin-transform-modules-systemjs" dependencies: - "@babel/core": "workspace:^7.10.4" + "@babel/core": "workspace:^7.10.5" "@babel/helper-hoist-variables": "workspace:^7.10.4" - "@babel/helper-module-transforms": "workspace:^7.10.4" + "@babel/helper-module-transforms": "workspace:^7.10.5" "@babel/helper-plugin-test-runner": "workspace:^7.10.4" "@babel/helper-plugin-utils": "workspace:^7.10.4" "@babel/plugin-syntax-dynamic-import": ^7.8.0 @@ -2509,15 +2304,15 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-transform-modules-umd@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-transform-modules-umd@npm:7.10.1" +"@babel/plugin-transform-modules-umd@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-transform-modules-umd@npm:7.10.4" dependencies: - "@babel/helper-module-transforms": ^7.10.1 - "@babel/helper-plugin-utils": ^7.10.1 + "@babel/helper-module-transforms": ^7.10.4 + "@babel/helper-plugin-utils": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10b1e5efa9c5cbf1fd57d2de42eccd21c3648876567b135b332ee0da27b48edab901e9e6ebfb89fe69c5e655a818ee0d0efb36d40535ac134b66dcfaf7319ef7 + checksum: b0c3f47b9e36dd2fffb8f31ee6449410b59bcb8c544552bc91c2f565ea34c8b9dc4396b478e38ba885b96777de6fdd38cf2053307c189837b54429290ecfa720 languageName: node linkType: hard @@ -2534,14 +2329,14 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.10.3": - version: 7.10.3 - resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.10.3" +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.10.4" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.8.3 + "@babel/helper-create-regexp-features-plugin": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0 - checksum: 0e2936f88f25d3b2843306824f3ec9608ed8402ecb1dd8a1d1542914b6f4cdcb75e0323083fdf7b8c7854fabe3d60350b3b2387f92cf83b0b5844d16db359dcf + checksum: 6b868806fda6cab6ff011990473a424199059f75a9eb12d0e421e01460244e0164f837af8b76e415bc390bf6502d5372ad9d56fd270cd1cfff7e0d19facc237f languageName: node linkType: hard @@ -2559,14 +2354,14 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-transform-new-target@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-transform-new-target@npm:7.10.1" +"@babel/plugin-transform-new-target@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-transform-new-target@npm:7.10.4" dependencies: - "@babel/helper-plugin-utils": ^7.10.1 + "@babel/helper-plugin-utils": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 684e98e2af60ce65b418f00e0f6c99aeee9782bed4d37d6a8ff19c7983ab921192881963ed8d9a584de2308c1ac6f0ef881635ca4d2e27bee8efc7392335de63 + checksum: a4742428d2c942d11b8cd91beaf6e3e1509416b563bf74959e4d103ffa954176d639cb44eb3b5992321897253eda6d921f21f18af1d20da30534dcccdd474bec languageName: node linkType: hard @@ -2608,15 +2403,15 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-transform-object-super@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-transform-object-super@npm:7.10.1" +"@babel/plugin-transform-object-super@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-transform-object-super@npm:7.10.4" dependencies: - "@babel/helper-plugin-utils": ^7.10.1 - "@babel/helper-replace-supers": ^7.10.1 + "@babel/helper-plugin-utils": ^7.10.4 + "@babel/helper-replace-supers": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 3a9242965ebf0afbe575b3249b6711457aa2f0e78f450f70e53a0b8ba85ab8769f285a588c8a02f3745c9eea4d1b97562a8d2437aea4a8c6bc1db885d365729e + checksum: 30485dd88ba30dc1584d08a3c2b61f61e3ca5b0850a183e3c655a3bcd7fa49fd3c5c1d5de5da2baa811b97d65d52fec11a39deb3acca4acbacd63ae632335d0c languageName: node linkType: hard @@ -2633,23 +2428,23 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-transform-parameters@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-transform-parameters@npm:7.10.1" +"@babel/plugin-transform-parameters@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-transform-parameters@npm:7.10.4" dependencies: - "@babel/helper-get-function-arity": ^7.10.1 - "@babel/helper-plugin-utils": ^7.10.1 + "@babel/helper-get-function-arity": ^7.10.4 + "@babel/helper-plugin-utils": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: ba279fc6737c59235c7978dda34dfeb1365cf4189eb5205858550d8e9cb448417c1666d38de663f8ae98e5e8c2aef46e1abd03470fa0f1b9055f509269e1d01b + checksum: a46ebb41465cf4f6d09a960cb291ecebf12b87007df59a0dc30c129b9a55f72fcb2c8bc5a938d0039a90749e2a6dfa4b4d106722d017a6024c294c7e4c47a92f languageName: node linkType: hard -"@babel/plugin-transform-parameters@workspace:^7.10.4, @babel/plugin-transform-parameters@workspace:packages/babel-plugin-transform-parameters": +"@babel/plugin-transform-parameters@workspace:^7.10.4, @babel/plugin-transform-parameters@workspace:^7.10.5, @babel/plugin-transform-parameters@workspace:packages/babel-plugin-transform-parameters": version: 0.0.0-use.local resolution: "@babel/plugin-transform-parameters@workspace:packages/babel-plugin-transform-parameters" dependencies: - "@babel/core": "workspace:^7.10.4" + "@babel/core": "workspace:^7.10.5" "@babel/helper-get-function-arity": "workspace:^7.10.4" "@babel/helper-plugin-test-runner": "workspace:^7.10.4" "@babel/helper-plugin-utils": "workspace:^7.10.4" @@ -2658,14 +2453,14 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-transform-property-literals@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-transform-property-literals@npm:7.10.1" +"@babel/plugin-transform-property-literals@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-transform-property-literals@npm:7.10.4" dependencies: - "@babel/helper-plugin-utils": ^7.10.1 + "@babel/helper-plugin-utils": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 35ac820269b12af62566ffaf3c5fd0fc7711c8b14c162c78c79bc07a48820ef4fb9f909893ae9e6c322b22b11e20ef4915c84d35ba07794656968380637b5e3b + checksum: 06ced62af42371e315830b84b71e043a08fbdac995945b7b15d9987430d3eea9f3aed646c3b50e4b4aaa2fadf46a824b2a2ce49e379db7157647a37d751603c6 languageName: node linkType: hard @@ -2694,14 +2489,14 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-transform-proto-to-assign@workspace:^7.10.4, @babel/plugin-transform-proto-to-assign@workspace:packages/babel-plugin-transform-proto-to-assign": +"@babel/plugin-transform-proto-to-assign@workspace:^7.10.5, @babel/plugin-transform-proto-to-assign@workspace:packages/babel-plugin-transform-proto-to-assign": version: 0.0.0-use.local resolution: "@babel/plugin-transform-proto-to-assign@workspace:packages/babel-plugin-transform-proto-to-assign" dependencies: - "@babel/core": "workspace:^7.10.4" + "@babel/core": "workspace:^7.10.5" "@babel/helper-plugin-test-runner": "workspace:^7.10.4" "@babel/helper-plugin-utils": "workspace:^7.10.4" - lodash: ^4.17.13 + lodash: ^4.17.19 peerDependencies: "@babel/core": ^7.0.0-0 languageName: unknown @@ -2784,11 +2579,11 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-transform-react-jsx-source@workspace:^7.10.4, @babel/plugin-transform-react-jsx-source@workspace:packages/babel-plugin-transform-react-jsx-source": +"@babel/plugin-transform-react-jsx-source@workspace:^7.10.4, @babel/plugin-transform-react-jsx-source@workspace:^7.10.5, @babel/plugin-transform-react-jsx-source@workspace:packages/babel-plugin-transform-react-jsx-source": version: 0.0.0-use.local resolution: "@babel/plugin-transform-react-jsx-source@workspace:packages/babel-plugin-transform-react-jsx-source" dependencies: - "@babel/core": "workspace:^7.10.4" + "@babel/core": "workspace:^7.10.5" "@babel/helper-plugin-test-runner": "workspace:^7.10.4" "@babel/helper-plugin-utils": "workspace:^7.10.4" "@babel/plugin-syntax-jsx": "workspace:^7.10.4" @@ -2825,14 +2620,14 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-transform-regenerator@npm:^7.10.3": - version: 7.10.3 - resolution: "@babel/plugin-transform-regenerator@npm:7.10.3" +"@babel/plugin-transform-regenerator@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-transform-regenerator@npm:7.10.4" dependencies: regenerator-transform: ^0.14.2 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 6b1270d294ace95220a19fe239480a4b2c2d4ce4716cbfdbb3a7e5df9a68c193d6fc8089010a658ed20e35b086d5de6f817aaeb5fc4e09f24e34edb5ece09104 + checksum: 932b35c5ed2f91b09afbea141789d561e8ce5af280f668107fb2768bc3e441c102c37051a964749837053c7be266a224a9ddc5acc562f997b9fef406ca47b179 languageName: node linkType: hard @@ -2848,14 +2643,14 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-transform-reserved-words@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-transform-reserved-words@npm:7.10.1" +"@babel/plugin-transform-reserved-words@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-transform-reserved-words@npm:7.10.4" dependencies: - "@babel/helper-plugin-utils": ^7.10.1 + "@babel/helper-plugin-utils": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 1c6de1e80678686099dc229e5c02da698ff1c5d6b7d4a88638813370ef8dda192232e9ebb68c8ae39d09ea77d18a2823f11942a9031b27a3c6cd8c747b591532 + checksum: 457433e66e54b527a4b27473eaab0302a868ed74c8b9fcb33a8a7fd24e66bdb764d6bff505de79fcfb35444debca66fd12b51c9df53e6cf817b784ad9f46ae91 languageName: node linkType: hard @@ -2871,48 +2666,50 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-transform-runtime@npm:^7.10.1": - version: 7.10.3 - resolution: "@babel/plugin-transform-runtime@npm:7.10.3" +"@babel/plugin-transform-runtime@npm:^7.11.0": + version: 7.11.0 + resolution: "@babel/plugin-transform-runtime@npm:7.11.0" dependencies: - "@babel/helper-module-imports": ^7.10.3 - "@babel/helper-plugin-utils": ^7.10.3 + "@babel/helper-module-imports": ^7.10.4 + "@babel/helper-plugin-utils": ^7.10.4 resolve: ^1.8.1 semver: ^5.5.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 02ee43fd5ba1f1770497ded75e1910dfd709a5cee2a29475e6222c61f7e68de68385dad3b268406e3dd2d6da74a46e208014433f8d7be94d7e997b4c0111078f + checksum: fc327b4f15366b821165cd0aec18688fbb596c056d5316190d51264e8ecb7a0a7d53c7e204709148de76dd07bf4556314ccf4bf33a1515d494e52ddf9992b67d languageName: node linkType: hard -"@babel/plugin-transform-runtime@workspace:^7.10.4, @babel/plugin-transform-runtime@workspace:packages/babel-plugin-transform-runtime": +"@babel/plugin-transform-runtime@workspace:^7.11.0, @babel/plugin-transform-runtime@workspace:packages/babel-plugin-transform-runtime": version: 0.0.0-use.local resolution: "@babel/plugin-transform-runtime@workspace:packages/babel-plugin-transform-runtime" dependencies: - "@babel/core": "workspace:^7.10.4" + "@babel/core": "workspace:^7.11.0" "@babel/helper-module-imports": "workspace:^7.10.4" "@babel/helper-plugin-test-runner": "workspace:^7.10.4" "@babel/helper-plugin-utils": "workspace:^7.10.4" "@babel/helpers": "workspace:^7.10.4" "@babel/plugin-transform-typeof-symbol": "workspace:^7.10.4" - "@babel/preset-env": "workspace:^7.10.4" - "@babel/runtime": "workspace:^7.10.4" + "@babel/preset-env": "workspace:^7.11.0" + "@babel/runtime": "workspace:^7.11.0" + "@babel/runtime-corejs3": "workspace:^7.11.0" "@babel/template": "workspace:^7.10.4" - "@babel/types": "workspace:^7.10.4" + "@babel/types": "workspace:^7.11.0" + resolve: ^1.8.1 semver: ^5.5.1 peerDependencies: "@babel/core": ^7.0.0-0 languageName: unknown linkType: soft -"@babel/plugin-transform-shorthand-properties@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-transform-shorthand-properties@npm:7.10.1" +"@babel/plugin-transform-shorthand-properties@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.10.4" dependencies: - "@babel/helper-plugin-utils": ^7.10.1 + "@babel/helper-plugin-utils": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: ad3a31218f13fc7339e718a046054aa4c6626adbe67a610fdc38c54b185d504aa8b930161ed4150fa951e1842b47603a272a38c83e9399f3593731d1274c8977 + checksum: 91ba5aa0990a9ba2fdca39c98cdd687a7a0bc62c20c0243cbe02b8c580e51d55f2ee310df9decd7b8eb8e8395c68071ee69d22b953aafa0b2d436081d767317d languageName: node linkType: hard @@ -2928,38 +2725,40 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-transform-spread@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-transform-spread@npm:7.10.1" +"@babel/plugin-transform-spread@npm:^7.11.0": + version: 7.11.0 + resolution: "@babel/plugin-transform-spread@npm:7.11.0" dependencies: - "@babel/helper-plugin-utils": ^7.10.1 + "@babel/helper-plugin-utils": ^7.10.4 + "@babel/helper-skip-transparent-expression-wrappers": ^7.11.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 18dce6f52b8457fbeecd19c18be6100df7eefe7a1148836adadec94ac81f7c8710ce7492bde8e8159b4d410b2f40ee0f4ddee93bec214d336f2176ee17fd04c2 + checksum: b10b0608d993441b649160db357161222e9e39afb4fc17c004aa67861cf21bcbfe757099bc68338c5119bc3068d1e4dcd3783fc84d11c5e76134e24e2b5a13a2 languageName: node linkType: hard -"@babel/plugin-transform-spread@workspace:^7.10.4, @babel/plugin-transform-spread@workspace:packages/babel-plugin-transform-spread": +"@babel/plugin-transform-spread@workspace:^7.11.0, @babel/plugin-transform-spread@workspace:packages/babel-plugin-transform-spread": version: 0.0.0-use.local resolution: "@babel/plugin-transform-spread@workspace:packages/babel-plugin-transform-spread" dependencies: - "@babel/core": "workspace:^7.10.4" + "@babel/core": "workspace:^7.11.0" "@babel/helper-plugin-test-runner": "workspace:^7.10.4" "@babel/helper-plugin-utils": "workspace:^7.10.4" + "@babel/helper-skip-transparent-expression-wrappers": "workspace:^7.11.0" peerDependencies: "@babel/core": ^7.0.0-0 languageName: unknown linkType: soft -"@babel/plugin-transform-sticky-regex@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-transform-sticky-regex@npm:7.10.1" +"@babel/plugin-transform-sticky-regex@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-transform-sticky-regex@npm:7.10.4" dependencies: - "@babel/helper-plugin-utils": ^7.10.1 - "@babel/helper-regex": ^7.10.1 + "@babel/helper-plugin-utils": ^7.10.4 + "@babel/helper-regex": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 4cfce0397a6adf1f2cb19b386d594f3f156ae0c7fe8a4e5894e155c41886f931467ae89da845a83185b8eff30202b5146794227ccf395c3ea809c619f120d63d + checksum: 56eed04e484f03645bc57228b3c6057460a2ded9ead109aa895edef4475410f480896319c04f1dbe66fcfe8b5a49ead110ce50595eefee01a0ac6fbb2b2f7f8c languageName: node linkType: hard @@ -2988,23 +2787,23 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-transform-template-literals@npm:^7.10.3": - version: 7.10.3 - resolution: "@babel/plugin-transform-template-literals@npm:7.10.3" +"@babel/plugin-transform-template-literals@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-transform-template-literals@npm:7.10.4" dependencies: - "@babel/helper-annotate-as-pure": ^7.10.1 - "@babel/helper-plugin-utils": ^7.10.3 + "@babel/helper-annotate-as-pure": ^7.10.4 + "@babel/helper-plugin-utils": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 6892c8500b019efe4eb47dbc02ab14e16598b40d5c2367b51d46abf68fe2b72ca8007d0383e28e1863fa0f8493fceb95569f09cb349087adb54774f2d2b26162 + checksum: d2aab6e33bcb48b1e05d9dbc55d719aa516dd27149cd121a30ec264812b8eb1eb6360e8277614bc823fbbabca452adcb442d2cb6e3e1fddbd42ed6af19cde14d languageName: node linkType: hard -"@babel/plugin-transform-template-literals@workspace:^7.10.4, @babel/plugin-transform-template-literals@workspace:packages/babel-plugin-transform-template-literals": +"@babel/plugin-transform-template-literals@workspace:^7.10.4, @babel/plugin-transform-template-literals@workspace:^7.10.5, @babel/plugin-transform-template-literals@workspace:packages/babel-plugin-transform-template-literals": version: 0.0.0-use.local resolution: "@babel/plugin-transform-template-literals@workspace:packages/babel-plugin-transform-template-literals" dependencies: - "@babel/core": "workspace:^7.10.4" + "@babel/core": "workspace:^7.10.5" "@babel/helper-annotate-as-pure": "workspace:^7.10.4" "@babel/helper-plugin-test-runner": "workspace:^7.10.4" "@babel/helper-plugin-utils": "workspace:^7.10.4" @@ -3013,14 +2812,14 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-transform-typeof-symbol@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-transform-typeof-symbol@npm:7.10.1" +"@babel/plugin-transform-typeof-symbol@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.10.4" dependencies: - "@babel/helper-plugin-utils": ^7.10.1 + "@babel/helper-plugin-utils": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f957334f770e06a545244a85a6eef205d596679c8aa93203f75593dfc7fb1d8480d711c28ef5b8bc8a5cdc67cb2785a6967744fe5743caaaf90d2c92df17b36b + checksum: 13f3e7537220788f3d1b6a100769897c23dc084abe38e5e893a8e71f729f74a675af10999ac672cd83f3206a942dc5e9200dea5b0d474f37119de677af142737 languageName: node linkType: hard @@ -3039,12 +2838,12 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-transform-typescript@workspace:^7.10.4, @babel/plugin-transform-typescript@workspace:packages/babel-plugin-transform-typescript": +"@babel/plugin-transform-typescript@workspace:^7.10.4, @babel/plugin-transform-typescript@workspace:^7.11.0, @babel/plugin-transform-typescript@workspace:packages/babel-plugin-transform-typescript": version: 0.0.0-use.local resolution: "@babel/plugin-transform-typescript@workspace:packages/babel-plugin-transform-typescript" dependencies: - "@babel/core": "workspace:^7.10.4" - "@babel/helper-create-class-features-plugin": "workspace:^7.10.4" + "@babel/core": "workspace:^7.11.0" + "@babel/helper-create-class-features-plugin": "workspace:^7.10.5" "@babel/helper-plugin-test-runner": "workspace:^7.10.4" "@babel/helper-plugin-utils": "workspace:^7.10.4" "@babel/plugin-syntax-typescript": "workspace:^7.10.4" @@ -3053,14 +2852,14 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-transform-unicode-escapes@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-transform-unicode-escapes@npm:7.10.1" +"@babel/plugin-transform-unicode-escapes@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.10.4" dependencies: - "@babel/helper-plugin-utils": ^7.10.1 + "@babel/helper-plugin-utils": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 83a7236078f160679a94f89d2d76753f93263123bc7c1e05eb7845baa17e25404fe90258a457f64ed7a0d47f23984b71ac28843cd60ca966e400a0decf1556e7 + checksum: c7467a508fa834df8f251f714604fc1ed21c37e8a1443a24bcc1db353f647d28305f912c603924648081a717cb92557ea6bc47c5b011ebbe67f601e7dbaa6b5e languageName: node linkType: hard @@ -3076,15 +2875,15 @@ __metadata: languageName: unknown linkType: soft -"@babel/plugin-transform-unicode-regex@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/plugin-transform-unicode-regex@npm:7.10.1" +"@babel/plugin-transform-unicode-regex@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.10.4" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.10.1 - "@babel/helper-plugin-utils": ^7.10.1 + "@babel/helper-create-regexp-features-plugin": ^7.10.4 + "@babel/helper-plugin-utils": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 69a18cd773bde43d13377686823e08f01c97d738877e79d6a904b2f6b4c9ea1644ce18b85e852efc53696ec7733684630477e3b22dc3367f858e38a8feda7448 + checksum: 2e0762e7fa222c1e2c936ec0e94af336dfe5c69130499ada734b20e2c86f83907528c748258f3ee99e728eea3b183f9e0c9d61e3b3d4c83daa92308078cc1888 languageName: node linkType: hard @@ -3110,69 +2909,73 @@ __metadata: languageName: unknown linkType: soft -"@babel/preset-env@npm:^7.10.2": - version: 7.10.3 - resolution: "@babel/preset-env@npm:7.10.3" - dependencies: - "@babel/compat-data": ^7.10.3 - "@babel/helper-compilation-targets": ^7.10.2 - "@babel/helper-module-imports": ^7.10.3 - "@babel/helper-plugin-utils": ^7.10.3 - "@babel/plugin-proposal-async-generator-functions": ^7.10.3 - "@babel/plugin-proposal-class-properties": ^7.10.1 - "@babel/plugin-proposal-dynamic-import": ^7.10.1 - "@babel/plugin-proposal-json-strings": ^7.10.1 - "@babel/plugin-proposal-nullish-coalescing-operator": ^7.10.1 - "@babel/plugin-proposal-numeric-separator": ^7.10.1 - "@babel/plugin-proposal-object-rest-spread": ^7.10.3 - "@babel/plugin-proposal-optional-catch-binding": ^7.10.1 - "@babel/plugin-proposal-optional-chaining": ^7.10.3 - "@babel/plugin-proposal-private-methods": ^7.10.1 - "@babel/plugin-proposal-unicode-property-regex": ^7.10.1 +"@babel/preset-env@npm:^7.11.0": + version: 7.11.0 + resolution: "@babel/preset-env@npm:7.11.0" + dependencies: + "@babel/compat-data": ^7.11.0 + "@babel/helper-compilation-targets": ^7.10.4 + "@babel/helper-module-imports": ^7.10.4 + "@babel/helper-plugin-utils": ^7.10.4 + "@babel/plugin-proposal-async-generator-functions": ^7.10.4 + "@babel/plugin-proposal-class-properties": ^7.10.4 + "@babel/plugin-proposal-dynamic-import": ^7.10.4 + "@babel/plugin-proposal-export-namespace-from": ^7.10.4 + "@babel/plugin-proposal-json-strings": ^7.10.4 + "@babel/plugin-proposal-logical-assignment-operators": ^7.11.0 + "@babel/plugin-proposal-nullish-coalescing-operator": ^7.10.4 + "@babel/plugin-proposal-numeric-separator": ^7.10.4 + "@babel/plugin-proposal-object-rest-spread": ^7.11.0 + "@babel/plugin-proposal-optional-catch-binding": ^7.10.4 + "@babel/plugin-proposal-optional-chaining": ^7.11.0 + "@babel/plugin-proposal-private-methods": ^7.10.4 + "@babel/plugin-proposal-unicode-property-regex": ^7.10.4 "@babel/plugin-syntax-async-generators": ^7.8.0 - "@babel/plugin-syntax-class-properties": ^7.10.1 + "@babel/plugin-syntax-class-properties": ^7.10.4 "@babel/plugin-syntax-dynamic-import": ^7.8.0 + "@babel/plugin-syntax-export-namespace-from": ^7.8.3 "@babel/plugin-syntax-json-strings": ^7.8.0 + "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.0 - "@babel/plugin-syntax-numeric-separator": ^7.10.1 + "@babel/plugin-syntax-numeric-separator": ^7.10.4 "@babel/plugin-syntax-object-rest-spread": ^7.8.0 "@babel/plugin-syntax-optional-catch-binding": ^7.8.0 "@babel/plugin-syntax-optional-chaining": ^7.8.0 - "@babel/plugin-syntax-top-level-await": ^7.10.1 - "@babel/plugin-transform-arrow-functions": ^7.10.1 - "@babel/plugin-transform-async-to-generator": ^7.10.1 - "@babel/plugin-transform-block-scoped-functions": ^7.10.1 - "@babel/plugin-transform-block-scoping": ^7.10.1 - "@babel/plugin-transform-classes": ^7.10.3 - "@babel/plugin-transform-computed-properties": ^7.10.3 - "@babel/plugin-transform-destructuring": ^7.10.1 - "@babel/plugin-transform-dotall-regex": ^7.10.1 - "@babel/plugin-transform-duplicate-keys": ^7.10.1 - "@babel/plugin-transform-exponentiation-operator": ^7.10.1 - "@babel/plugin-transform-for-of": ^7.10.1 - "@babel/plugin-transform-function-name": ^7.10.1 - "@babel/plugin-transform-literals": ^7.10.1 - "@babel/plugin-transform-member-expression-literals": ^7.10.1 - "@babel/plugin-transform-modules-amd": ^7.10.1 - "@babel/plugin-transform-modules-commonjs": ^7.10.1 - "@babel/plugin-transform-modules-systemjs": ^7.10.3 - "@babel/plugin-transform-modules-umd": ^7.10.1 - "@babel/plugin-transform-named-capturing-groups-regex": ^7.10.3 - "@babel/plugin-transform-new-target": ^7.10.1 - "@babel/plugin-transform-object-super": ^7.10.1 - "@babel/plugin-transform-parameters": ^7.10.1 - "@babel/plugin-transform-property-literals": ^7.10.1 - "@babel/plugin-transform-regenerator": ^7.10.3 - "@babel/plugin-transform-reserved-words": ^7.10.1 - "@babel/plugin-transform-shorthand-properties": ^7.10.1 - "@babel/plugin-transform-spread": ^7.10.1 - "@babel/plugin-transform-sticky-regex": ^7.10.1 - "@babel/plugin-transform-template-literals": ^7.10.3 - "@babel/plugin-transform-typeof-symbol": ^7.10.1 - "@babel/plugin-transform-unicode-escapes": ^7.10.1 - "@babel/plugin-transform-unicode-regex": ^7.10.1 + "@babel/plugin-syntax-top-level-await": ^7.10.4 + "@babel/plugin-transform-arrow-functions": ^7.10.4 + "@babel/plugin-transform-async-to-generator": ^7.10.4 + "@babel/plugin-transform-block-scoped-functions": ^7.10.4 + "@babel/plugin-transform-block-scoping": ^7.10.4 + "@babel/plugin-transform-classes": ^7.10.4 + "@babel/plugin-transform-computed-properties": ^7.10.4 + "@babel/plugin-transform-destructuring": ^7.10.4 + "@babel/plugin-transform-dotall-regex": ^7.10.4 + "@babel/plugin-transform-duplicate-keys": ^7.10.4 + "@babel/plugin-transform-exponentiation-operator": ^7.10.4 + "@babel/plugin-transform-for-of": ^7.10.4 + "@babel/plugin-transform-function-name": ^7.10.4 + "@babel/plugin-transform-literals": ^7.10.4 + "@babel/plugin-transform-member-expression-literals": ^7.10.4 + "@babel/plugin-transform-modules-amd": ^7.10.4 + "@babel/plugin-transform-modules-commonjs": ^7.10.4 + "@babel/plugin-transform-modules-systemjs": ^7.10.4 + "@babel/plugin-transform-modules-umd": ^7.10.4 + "@babel/plugin-transform-named-capturing-groups-regex": ^7.10.4 + "@babel/plugin-transform-new-target": ^7.10.4 + "@babel/plugin-transform-object-super": ^7.10.4 + "@babel/plugin-transform-parameters": ^7.10.4 + "@babel/plugin-transform-property-literals": ^7.10.4 + "@babel/plugin-transform-regenerator": ^7.10.4 + "@babel/plugin-transform-reserved-words": ^7.10.4 + "@babel/plugin-transform-shorthand-properties": ^7.10.4 + "@babel/plugin-transform-spread": ^7.11.0 + "@babel/plugin-transform-sticky-regex": ^7.10.4 + "@babel/plugin-transform-template-literals": ^7.10.4 + "@babel/plugin-transform-typeof-symbol": ^7.10.4 + "@babel/plugin-transform-unicode-escapes": ^7.10.4 + "@babel/plugin-transform-unicode-regex": ^7.10.4 "@babel/preset-modules": ^0.1.3 - "@babel/types": ^7.10.3 + "@babel/types": ^7.11.0 browserslist: ^4.12.0 core-js-compat: ^3.6.2 invariant: ^2.2.2 @@ -3180,17 +2983,17 @@ __metadata: semver: ^5.5.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 02919266f17ea26c47950c12db4d40c55b0b835d565db4419415d3b569a67d748a877921445845e4a181493d24ce0df3ab5f224918de89f2be05132f0c091aff + checksum: 5ce0e1d188c14c47f3278d39f927e158ec9f66793d04891ad0b066413141f3ba6fffea720cc7408d9e8bce3cc8de63fff07884fd8331ca5c04fbf1fdedb17614 languageName: node linkType: hard -"@babel/preset-env@workspace:^7.10.4, @babel/preset-env@workspace:packages/babel-preset-env": +"@babel/preset-env@workspace:^7.11.0, @babel/preset-env@workspace:packages/babel-preset-env": version: 0.0.0-use.local resolution: "@babel/preset-env@workspace:packages/babel-preset-env" dependencies: "@babel/cli": "workspace:^7.10.4" - "@babel/compat-data": "workspace:^7.10.4" - "@babel/core": "workspace:^7.10.4" + "@babel/compat-data": "workspace:^7.11.0" + "@babel/core": "workspace:^7.11.0" "@babel/helper-compilation-targets": "workspace:^7.10.4" "@babel/helper-fixtures": "workspace:^7.10.4" "@babel/helper-module-imports": "workspace:^7.10.4" @@ -3199,18 +3002,22 @@ __metadata: "@babel/plugin-proposal-async-generator-functions": "workspace:^7.10.4" "@babel/plugin-proposal-class-properties": "workspace:^7.10.4" "@babel/plugin-proposal-dynamic-import": "workspace:^7.10.4" + "@babel/plugin-proposal-export-namespace-from": "workspace:^7.10.4" "@babel/plugin-proposal-json-strings": "workspace:^7.10.4" + "@babel/plugin-proposal-logical-assignment-operators": "workspace:^7.11.0" "@babel/plugin-proposal-nullish-coalescing-operator": "workspace:^7.10.4" "@babel/plugin-proposal-numeric-separator": "workspace:^7.10.4" - "@babel/plugin-proposal-object-rest-spread": "workspace:^7.10.4" + "@babel/plugin-proposal-object-rest-spread": "workspace:^7.11.0" "@babel/plugin-proposal-optional-catch-binding": "workspace:^7.10.4" - "@babel/plugin-proposal-optional-chaining": "workspace:^7.10.4" + "@babel/plugin-proposal-optional-chaining": "workspace:^7.11.0" "@babel/plugin-proposal-private-methods": "workspace:^7.10.4" "@babel/plugin-proposal-unicode-property-regex": "workspace:^7.10.4" "@babel/plugin-syntax-async-generators": ^7.8.0 "@babel/plugin-syntax-class-properties": "workspace:^7.10.4" "@babel/plugin-syntax-dynamic-import": ^7.2.0 + "@babel/plugin-syntax-export-namespace-from": ^7.8.3 "@babel/plugin-syntax-json-strings": ^7.8.0 + "@babel/plugin-syntax-logical-assignment-operators": "workspace:^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.0 "@babel/plugin-syntax-numeric-separator": "workspace:^7.10.4" "@babel/plugin-syntax-object-rest-spread": ^7.8.0 @@ -3243,14 +3050,14 @@ __metadata: "@babel/plugin-transform-regenerator": "workspace:^7.10.4" "@babel/plugin-transform-reserved-words": "workspace:^7.10.4" "@babel/plugin-transform-shorthand-properties": "workspace:^7.10.4" - "@babel/plugin-transform-spread": "workspace:^7.10.4" + "@babel/plugin-transform-spread": "workspace:^7.11.0" "@babel/plugin-transform-sticky-regex": "workspace:^7.10.4" "@babel/plugin-transform-template-literals": "workspace:^7.10.4" "@babel/plugin-transform-typeof-symbol": "workspace:^7.10.4" "@babel/plugin-transform-unicode-escapes": "workspace:^7.10.4" "@babel/plugin-transform-unicode-regex": "workspace:^7.10.4" "@babel/preset-modules": ^0.1.3 - "@babel/types": "workspace:^7.10.4" + "@babel/types": "workspace:^7.11.0" browserslist: ^4.12.0 core-js-compat: ^3.6.2 invariant: ^2.2.2 @@ -3261,15 +3068,15 @@ __metadata: languageName: unknown linkType: soft -"@babel/preset-flow@npm:^7.10.1": - version: 7.10.1 - resolution: "@babel/preset-flow@npm:7.10.1" +"@babel/preset-flow@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/preset-flow@npm:7.10.4" dependencies: - "@babel/helper-plugin-utils": ^7.10.1 - "@babel/plugin-transform-flow-strip-types": ^7.10.1 + "@babel/helper-plugin-utils": ^7.10.4 + "@babel/plugin-transform-flow-strip-types": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: bc30712ca38dd87488e32856b56951a6589033a8d1b4aa88f9cb6d10b643aaec922fe2cb33715a006d2b65514fb7de8c1ff10a2b6ca27bd7ae86fed1902847bb + checksum: bc28862a09cb0fd58bb36b08f2f9390cc977945784cd1d3b47e62db92c9ee65a442799392d0c9be22041d9c1b530655bc22633bffed9ee723fa400aaeea75274 languageName: node linkType: hard @@ -3334,32 +3141,32 @@ __metadata: languageName: unknown linkType: soft -"@babel/register@npm:^7.10.1": - version: 7.10.3 - resolution: "@babel/register@npm:7.10.3" +"@babel/register@npm:^7.10.5": + version: 7.10.5 + resolution: "@babel/register@npm:7.10.5" dependencies: find-cache-dir: ^2.0.0 - lodash: ^4.17.13 + lodash: ^4.17.19 make-dir: ^2.1.0 pirates: ^4.0.0 source-map-support: ^0.5.16 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 736aa953517cc8c4198a37bd877c7c40ee5d0a1c2cb4241022f4d33dc1aa7bb28e3151806538aefb57eff285fa03630ad87dd9ad696dee833977191a860819d5 + checksum: 4dfa1cda59c98e696b20509eeee540de664958fc9ac5be33ee11a3f8a9e00caa1ca51506dc283d29c2f82edfa65e7841439f049fd664fddb7318d4334f71934e languageName: node linkType: hard -"@babel/register@workspace:^7.10.4, @babel/register@workspace:packages/babel-register": +"@babel/register@workspace:^7.10.5, @babel/register@workspace:packages/babel-register": version: 0.0.0-use.local resolution: "@babel/register@workspace:packages/babel-register" dependencies: - "@babel/core": "workspace:^7.10.4" + "@babel/core": "workspace:^7.10.5" "@babel/plugin-transform-modules-commonjs": "workspace:^7.10.4" browserify: 16.5.0 default-require-extensions: ^2.0.0 - escape-string-regexp: ^4.0.0 - find-cache-dir: ^3.2.0 - lodash: ^4.17.13 + find-cache-dir: ^2.0.0 + lodash: ^4.17.19 + make-dir: ^2.1.0 pirates: ^4.0.0 source-map-support: ^0.5.16 peerDependencies: @@ -3377,7 +3184,17 @@ __metadata: languageName: unknown linkType: soft -"@babel/runtime-corejs3@workspace:^7.10.4, @babel/runtime-corejs3@workspace:packages/babel-runtime-corejs3": +"@babel/runtime-corejs3@npm:^7.8.3": + version: 7.10.4 + resolution: "@babel/runtime-corejs3@npm:7.10.4" + dependencies: + core-js-pure: ^3.0.0 + regenerator-runtime: ^0.13.4 + checksum: 5621e6b5c680751b14c9827f8569153646c43335d4cfc9d7ee22b576a7a8455b1029b2b9d8f64c39fd3ce574e4e311cccafdf1ece484538529db37dd14560b0d + languageName: node + linkType: hard + +"@babel/runtime-corejs3@workspace:^7.10.4, @babel/runtime-corejs3@workspace:^7.11.0, @babel/runtime-corejs3@workspace:packages/babel-runtime-corejs3": version: 0.0.0-use.local resolution: "@babel/runtime-corejs3@workspace:packages/babel-runtime-corejs3" dependencies: @@ -3386,25 +3203,16 @@ __metadata: languageName: unknown linkType: soft -"@babel/runtime@npm:^7.10.2": - version: 7.10.3 - resolution: "@babel/runtime@npm:7.10.3" - dependencies: - regenerator-runtime: ^0.13.4 - checksum: 19dc20d10dab2c4fc31c0fb3ba0615d685cc4d7cde38a427c5f0aec8b9efdd4d9c282caf4c67bd264ffe324a48e9a95d0c1f0109c31ae47297b9d87ff912eab6 - languageName: node - linkType: hard - -"@babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.9.2": - version: 7.9.6 - resolution: "@babel/runtime@npm:7.9.6" +"@babel/runtime@npm:^7.11.0, @babel/runtime@npm:^7.8.4": + version: 7.11.0 + resolution: "@babel/runtime@npm:7.11.0" dependencies: regenerator-runtime: ^0.13.4 - checksum: ff94d6861daea1c6e4639f2e6d22992539fab45ce6ef468de37e0dd0df109aee94276f72fc962b48946dde0b8554a71343fc398ea5a565cab59c596829ccc2ad + checksum: 212e99737b26f7f0b5bd552dcfddccd82f1bcb61e3f564afb82b9cb61b72d613ae8c18c6f7006729e4ab3c4ab2b821f86c1f324033199c03936cfa9c0d413a5e languageName: node linkType: hard -"@babel/runtime@workspace:^7.10.4, @babel/runtime@workspace:packages/babel-runtime": +"@babel/runtime@workspace:^7.10.4, @babel/runtime@workspace:^7.10.5, @babel/runtime@workspace:^7.11.0, @babel/runtime@workspace:packages/babel-runtime": version: 0.0.0-use.local resolution: "@babel/runtime@workspace:packages/babel-runtime" dependencies: @@ -3417,32 +3225,33 @@ __metadata: version: 0.0.0-use.local resolution: "@babel/standalone@workspace:packages/babel-standalone" dependencies: - "@babel/core": "workspace:^7.10.4" + "@babel/core": "workspace:^7.11.1" "@babel/helper-plugin-utils": "workspace:^7.10.4" "@babel/plugin-external-helpers": "workspace:^7.10.4" - "@babel/plugin-proposal-async-generator-functions": "workspace:^7.10.4" + "@babel/plugin-proposal-async-generator-functions": "workspace:^7.10.5" "@babel/plugin-proposal-class-properties": "workspace:^7.10.4" - "@babel/plugin-proposal-decorators": "workspace:^7.10.4" + "@babel/plugin-proposal-decorators": "workspace:^7.10.5" "@babel/plugin-proposal-do-expressions": "workspace:^7.10.4" "@babel/plugin-proposal-dynamic-import": "workspace:^7.10.4" "@babel/plugin-proposal-export-default-from": "workspace:^7.10.4" "@babel/plugin-proposal-export-namespace-from": "workspace:^7.10.4" - "@babel/plugin-proposal-function-bind": "workspace:^7.10.4" + "@babel/plugin-proposal-function-bind": "workspace:^7.10.5" "@babel/plugin-proposal-function-sent": "workspace:^7.10.4" "@babel/plugin-proposal-json-strings": "workspace:^7.10.4" - "@babel/plugin-proposal-logical-assignment-operators": "workspace:^7.10.4" + "@babel/plugin-proposal-logical-assignment-operators": "workspace:^7.11.0" "@babel/plugin-proposal-nullish-coalescing-operator": "workspace:^7.10.4" "@babel/plugin-proposal-numeric-separator": "workspace:^7.10.4" - "@babel/plugin-proposal-object-rest-spread": "workspace:^7.10.4" + "@babel/plugin-proposal-object-rest-spread": "workspace:^7.11.0" "@babel/plugin-proposal-optional-catch-binding": "workspace:^7.10.4" - "@babel/plugin-proposal-optional-chaining": "workspace:^7.10.4" - "@babel/plugin-proposal-pipeline-operator": "workspace:^7.10.4" + "@babel/plugin-proposal-optional-chaining": "workspace:^7.11.0" + "@babel/plugin-proposal-pipeline-operator": "workspace:^7.10.5" "@babel/plugin-proposal-private-methods": "workspace:^7.10.4" "@babel/plugin-proposal-private-property-in-object": "workspace:^7.10.4" "@babel/plugin-proposal-throw-expressions": "workspace:^7.10.4" "@babel/plugin-proposal-unicode-property-regex": "workspace:^7.10.4" "@babel/plugin-syntax-async-generators": ^7.8.0 "@babel/plugin-syntax-class-properties": "workspace:^7.10.4" + "@babel/plugin-syntax-decimal": "workspace:^7.11.0" "@babel/plugin-syntax-decorators": "workspace:^7.10.4" "@babel/plugin-syntax-do-expressions": "workspace:^7.10.4" "@babel/plugin-syntax-export-default-from": "workspace:^7.10.4" @@ -3461,7 +3270,7 @@ __metadata: "@babel/plugin-transform-arrow-functions": "workspace:^7.10.4" "@babel/plugin-transform-async-to-generator": "workspace:^7.10.4" "@babel/plugin-transform-block-scoped-functions": "workspace:^7.10.4" - "@babel/plugin-transform-block-scoping": "workspace:^7.10.4" + "@babel/plugin-transform-block-scoping": "workspace:^7.11.1" "@babel/plugin-transform-classes": "workspace:^7.10.4" "@babel/plugin-transform-computed-properties": "workspace:^7.10.4" "@babel/plugin-transform-destructuring": "workspace:^7.10.4" @@ -3476,19 +3285,19 @@ __metadata: "@babel/plugin-transform-jscript": "workspace:^7.10.4" "@babel/plugin-transform-literals": "workspace:^7.10.4" "@babel/plugin-transform-member-expression-literals": "workspace:^7.10.4" - "@babel/plugin-transform-modules-amd": "workspace:^7.10.4" + "@babel/plugin-transform-modules-amd": "workspace:^7.10.5" "@babel/plugin-transform-modules-commonjs": "workspace:^7.10.4" - "@babel/plugin-transform-modules-systemjs": "workspace:^7.10.4" + "@babel/plugin-transform-modules-systemjs": "workspace:^7.10.5" "@babel/plugin-transform-modules-umd": "workspace:^7.10.4" "@babel/plugin-transform-named-capturing-groups-regex": "workspace:^7.10.4" "@babel/plugin-transform-new-target": "workspace:^7.10.4" "@babel/plugin-transform-object-assign": "workspace:^7.10.4" "@babel/plugin-transform-object-set-prototype-of-to-assign": "workspace:^7.10.4" "@babel/plugin-transform-object-super": "workspace:^7.10.4" - "@babel/plugin-transform-parameters": "workspace:^7.10.4" + "@babel/plugin-transform-parameters": "workspace:^7.10.5" "@babel/plugin-transform-property-literals": "workspace:^7.10.4" "@babel/plugin-transform-property-mutators": "workspace:^7.10.4" - "@babel/plugin-transform-proto-to-assign": "workspace:^7.10.4" + "@babel/plugin-transform-proto-to-assign": "workspace:^7.10.5" "@babel/plugin-transform-react-constant-elements": "workspace:^7.10.4" "@babel/plugin-transform-react-display-name": "workspace:^7.10.4" "@babel/plugin-transform-react-inline-elements": "workspace:^7.10.4" @@ -3496,45 +3305,34 @@ __metadata: "@babel/plugin-transform-react-jsx-compat": "workspace:^7.10.4" "@babel/plugin-transform-react-jsx-development": "workspace:^7.10.4" "@babel/plugin-transform-react-jsx-self": "workspace:^7.10.4" - "@babel/plugin-transform-react-jsx-source": "workspace:^7.10.4" + "@babel/plugin-transform-react-jsx-source": "workspace:^7.10.5" "@babel/plugin-transform-regenerator": "workspace:^7.10.4" "@babel/plugin-transform-reserved-words": "workspace:^7.10.4" - "@babel/plugin-transform-runtime": "workspace:^7.10.4" + "@babel/plugin-transform-runtime": "workspace:^7.11.0" "@babel/plugin-transform-shorthand-properties": "workspace:^7.10.4" - "@babel/plugin-transform-spread": "workspace:^7.10.4" + "@babel/plugin-transform-spread": "workspace:^7.11.0" "@babel/plugin-transform-sticky-regex": "workspace:^7.10.4" "@babel/plugin-transform-strict-mode": "workspace:^7.10.4" - "@babel/plugin-transform-template-literals": "workspace:^7.10.4" + "@babel/plugin-transform-template-literals": "workspace:^7.10.5" "@babel/plugin-transform-typeof-symbol": "workspace:^7.10.4" - "@babel/plugin-transform-typescript": "workspace:^7.10.4" + "@babel/plugin-transform-typescript": "workspace:^7.11.0" "@babel/plugin-transform-unicode-escapes": "workspace:^7.10.4" "@babel/plugin-transform-unicode-regex": "workspace:^7.10.4" - "@babel/preset-env": "workspace:^7.10.4" + "@babel/preset-env": "workspace:^7.11.0" "@babel/preset-flow": "workspace:^7.10.4" "@babel/preset-react": "workspace:^7.10.4" "@babel/preset-typescript": "workspace:^7.10.4" languageName: unknown linkType: soft -"@babel/template@npm:^7.10.1, @babel/template@npm:^7.10.3": - version: 7.10.3 - resolution: "@babel/template@npm:7.10.3" - dependencies: - "@babel/code-frame": ^7.10.3 - "@babel/parser": ^7.10.3 - "@babel/types": ^7.10.3 - checksum: 1b2df7f93f3505b221574b439e503e926ae3a91b28f4ff2f66e25a9bd74d8cd473d1086e36edcbe34f4198b138785fca76ba613082e9da5eea43eddf9f143b28 - languageName: node - linkType: hard - -"@babel/template@npm:^7.3.3, @babel/template@npm:^7.8.3, @babel/template@npm:^7.8.6": - version: 7.8.6 - resolution: "@babel/template@npm:7.8.6" +"@babel/template@npm:^7.10.4, @babel/template@npm:^7.3.3, @babel/template@npm:^7.4.0": + version: 7.10.4 + resolution: "@babel/template@npm:7.10.4" dependencies: - "@babel/code-frame": ^7.8.3 - "@babel/parser": ^7.8.6 - "@babel/types": ^7.8.6 - checksum: 90ff89fe2a436b27276e8048bbfeb96098917fc2903b5cb81e903c987df65ed0ab94b1829320c5810e66786e14a03dda44920c9afc73084bc8fdbcbee1743348 + "@babel/code-frame": ^7.10.4 + "@babel/parser": ^7.10.4 + "@babel/types": ^7.10.4 + checksum: 23a5c4f7ab77d3f0cfeca3f8462f3b8a85d605d7c56bd917b46e9061aca2c8e84558d1209b8e365eb0e038d92fc387d42382c3072e3ad75087f9a04649e7bea6 languageName: node linkType: hard @@ -3548,87 +3346,59 @@ __metadata: languageName: unknown linkType: soft -"@babel/traverse@npm:^7.0.0, @babel/traverse@npm:^7.1.0, @babel/traverse@npm:^7.9.6": - version: 7.9.6 - resolution: "@babel/traverse@npm:7.9.6" - dependencies: - "@babel/code-frame": ^7.8.3 - "@babel/generator": ^7.9.6 - "@babel/helper-function-name": ^7.9.5 - "@babel/helper-split-export-declaration": ^7.8.3 - "@babel/parser": ^7.9.6 - "@babel/types": ^7.9.6 - debug: ^4.1.0 - globals: ^11.1.0 - lodash: ^4.17.13 - checksum: 7f4d3f9622a904319eee1bf528258f4c7ad58734bc72896b8fa1af1a0f586e0d90c384760279b30b0c9f3702a67efe701a534eb3dfb96e265561db0e7e9fcf29 - languageName: node - linkType: hard - -"@babel/traverse@npm:^7.10.1, @babel/traverse@npm:^7.10.3": - version: 7.10.3 - resolution: "@babel/traverse@npm:7.10.3" +"@babel/traverse@npm:^7.0.0, @babel/traverse@npm:^7.1.0, @babel/traverse@npm:^7.10.4, @babel/traverse@npm:^7.11.0, @babel/traverse@npm:^7.4.3": + version: 7.11.0 + resolution: "@babel/traverse@npm:7.11.0" dependencies: - "@babel/code-frame": ^7.10.3 - "@babel/generator": ^7.10.3 - "@babel/helper-function-name": ^7.10.3 - "@babel/helper-split-export-declaration": ^7.10.1 - "@babel/parser": ^7.10.3 - "@babel/types": ^7.10.3 + "@babel/code-frame": ^7.10.4 + "@babel/generator": ^7.11.0 + "@babel/helper-function-name": ^7.10.4 + "@babel/helper-split-export-declaration": ^7.11.0 + "@babel/parser": ^7.11.0 + "@babel/types": ^7.11.0 debug: ^4.1.0 globals: ^11.1.0 - lodash: ^4.17.13 - checksum: cfe64b335777bfc57633b50aaf219ed53f49be40eefd82c11d9182d40ba2a16f523368ff57f9a5df88f41bbf65ed89f1c1d0caab1170eaebe05f0b94c7c9781e + lodash: ^4.17.19 + checksum: 81e4bb3020f18474d873be18c1ff56816c9de1ed38bffb933976b04904c626d2fa9a7c621658360e38c0b125175cc04f4946f19c10f65941632d17fdc4d399dc languageName: node linkType: hard -"@babel/traverse@workspace:^7.10.4, @babel/traverse@workspace:packages/babel-traverse": +"@babel/traverse@workspace:^7.10.4, @babel/traverse@workspace:^7.11.0, @babel/traverse@workspace:packages/babel-traverse": version: 0.0.0-use.local resolution: "@babel/traverse@workspace:packages/babel-traverse" dependencies: "@babel/code-frame": "workspace:^7.10.4" - "@babel/generator": "workspace:^7.10.4" + "@babel/generator": "workspace:^7.11.0" "@babel/helper-function-name": "workspace:^7.10.4" "@babel/helper-plugin-test-runner": "workspace:^7.10.4" - "@babel/helper-split-export-declaration": "workspace:^7.10.4" - "@babel/parser": "workspace:^7.10.4" - "@babel/types": "workspace:^7.10.4" + "@babel/helper-split-export-declaration": "workspace:^7.11.0" + "@babel/parser": "workspace:^7.11.0" + "@babel/types": "workspace:^7.11.0" debug: ^4.1.0 - globals: ^12.3.0 - lodash: ^4.17.13 + globals: ^11.1.0 + lodash: ^4.17.19 languageName: unknown linkType: soft -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3, @babel/types@npm:^7.8.6, @babel/types@npm:^7.9.0, @babel/types@npm:^7.9.5, @babel/types@npm:^7.9.6": - version: 7.9.6 - resolution: "@babel/types@npm:7.9.6" - dependencies: - "@babel/helper-validator-identifier": ^7.9.5 - lodash: ^4.17.13 - to-fast-properties: ^2.0.0 - checksum: e67bd07450ea341d18a77e8027bca7486759b8c91bb01cfaa82de306b879f3c64232edb5d3e64851de541a135a3fcf18d98dddc887d3da920e61b6308c11bc09 - languageName: node - linkType: hard - -"@babel/types@npm:^7.10.1, @babel/types@npm:^7.10.3": - version: 7.10.3 - resolution: "@babel/types@npm:7.10.3" +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.10.4, @babel/types@npm:^7.11.0, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.0, @babel/types@npm:^7.4.4": + version: 7.11.0 + resolution: "@babel/types@npm:7.11.0" dependencies: - "@babel/helper-validator-identifier": ^7.10.3 - lodash: ^4.17.13 + "@babel/helper-validator-identifier": ^7.10.4 + lodash: ^4.17.19 to-fast-properties: ^2.0.0 - checksum: 7c41a5a0e66b7ccd002cc9e395ccd269c6a1e94035193f66f021cca0880c9e999eb1a25fa363e4295a4a5b5b3653a8f5bb13bf2d0abc9e8e427ad9aaedcf1935 + checksum: 46e2fcd49d1c6d3261fcc3e88906fa39661a193365325ca94b9b1d59f949cef8546e3aba3e13a122b1bf2a493120ad00c06533ae0c428ad60ce81ee2a2649964 languageName: node linkType: hard -"@babel/types@workspace:^7.10.4, @babel/types@workspace:packages/babel-types": +"@babel/types@workspace:^7.10.4, @babel/types@workspace:^7.10.5, @babel/types@workspace:^7.11.0, @babel/types@workspace:packages/babel-types": version: 0.0.0-use.local resolution: "@babel/types@workspace:packages/babel-types" dependencies: - "@babel/generator": "workspace:^7.10.4" + "@babel/generator": "workspace:^7.11.0" "@babel/helper-validator-identifier": "workspace:^7.10.4" - "@babel/parser": "workspace:^7.10.4" - lodash: ^4.17.13 + "@babel/parser": "workspace:^7.11.0" + lodash: ^4.17.19 to-fast-properties: ^2.0.0 languageName: unknown linkType: soft @@ -3641,14 +3411,14 @@ __metadata: linkType: hard "@cnakazawa/watch@npm:^1.0.3": - version: 1.0.4 - resolution: "@cnakazawa/watch@npm:1.0.4" + version: 1.0.3 + resolution: "@cnakazawa/watch@npm:1.0.3" dependencies: exec-sh: ^0.3.2 minimist: ^1.2.0 bin: - watch: cli.js - checksum: 7909f89bbee917b2a5932fd178b48b5291f417293538b1e8e68a5fa5815b3d6d4873c591d965f84559cd3e7b669c42a749ab706ef792368de39b95541ae4627d + watch: ./cli.js + checksum: a2f004ddd98f2910e4bd7c2854620559a3e09a7be22142869cdc27d184dd1bd68f3964a896179f73bd09a697487ac457308da03a3a5c42cf1bce6824750c7323 languageName: node linkType: hard @@ -3735,14 +3505,15 @@ __metadata: linkType: hard "@istanbuljs/load-nyc-config@npm:^1.0.0": - version: 1.0.0 - resolution: "@istanbuljs/load-nyc-config@npm:1.0.0" + version: 1.1.0 + resolution: "@istanbuljs/load-nyc-config@npm:1.1.0" dependencies: camelcase: ^5.3.1 find-up: ^4.1.0 + get-package-type: ^0.1.0 js-yaml: ^3.13.1 resolve-from: ^5.0.0 - checksum: ef4e27e6fdf192aceadca2e92ce9c930c43c574930afd45853efd31ba3bfdaff5627d62deecdb2520df5582e860184a1097ddf64b27cc886f85679bbb6a0e956 + checksum: f7f3b1c922bf5e36a7f747b2a80fedc9c2e1ebd7e03dc73082fca7c1066cc4e2e2ac39827aded6a087c32294e9c032ff3e50bc9041fcf757b4a38ca97418b652 languageName: node linkType: hard @@ -3753,6 +3524,17 @@ __metadata: languageName: node linkType: hard +"@jest/console@npm:^24.7.1, @jest/console@npm:^24.9.0": + version: 24.9.0 + resolution: "@jest/console@npm:24.9.0" + dependencies: + "@jest/source-map": ^24.9.0 + chalk: ^2.0.1 + slash: ^2.0.0 + checksum: 74f7e051e60c65f90bd540e26e46c89ab633a029029afe11b2d78bda4cd102ba7962e342b61acf100f20318ae0b0a85cbb0e2b85074eb1adfe5995e658753734 + languageName: node + linkType: hard + "@jest/console@npm:^25.5.0": version: 25.5.0 resolution: "@jest/console@npm:25.5.0" @@ -3766,6 +3548,42 @@ __metadata: languageName: node linkType: hard +"@jest/core@npm:^24.9.0": + version: 24.9.0 + resolution: "@jest/core@npm:24.9.0" + dependencies: + "@jest/console": ^24.7.1 + "@jest/reporters": ^24.9.0 + "@jest/test-result": ^24.9.0 + "@jest/transform": ^24.9.0 + "@jest/types": ^24.9.0 + ansi-escapes: ^3.0.0 + chalk: ^2.0.1 + exit: ^0.1.2 + graceful-fs: ^4.1.15 + jest-changed-files: ^24.9.0 + jest-config: ^24.9.0 + jest-haste-map: ^24.9.0 + jest-message-util: ^24.9.0 + jest-regex-util: ^24.3.0 + jest-resolve: ^24.9.0 + jest-resolve-dependencies: ^24.9.0 + jest-runner: ^24.9.0 + jest-runtime: ^24.9.0 + jest-snapshot: ^24.9.0 + jest-util: ^24.9.0 + jest-validate: ^24.9.0 + jest-watcher: ^24.9.0 + micromatch: ^3.1.10 + p-each-series: ^1.0.0 + realpath-native: ^1.1.0 + rimraf: ^2.5.4 + slash: ^2.0.0 + strip-ansi: ^5.0.0 + checksum: ce1e33782c03ba8acf3cacf02fff5319def05c97e8c3abc2e9f28b250d8c8d94638d8e1d38dc6123bbd307192c08d6f435e0a38512a29a6ff51e5f48d2ce1ed7 + languageName: node + linkType: hard + "@jest/core@npm:^25.5.4": version: 25.5.4 resolution: "@jest/core@npm:25.5.4" @@ -3802,6 +3620,18 @@ __metadata: languageName: node linkType: hard +"@jest/environment@npm:^24.9.0": + version: 24.9.0 + resolution: "@jest/environment@npm:24.9.0" + dependencies: + "@jest/fake-timers": ^24.9.0 + "@jest/transform": ^24.9.0 + "@jest/types": ^24.9.0 + jest-mock: ^24.9.0 + checksum: 77f7313e1b913253b63edc5742aa9fa5e07f38d39b703d5f6246e4dd9778718b99313514c6245fe37791e64fd98fc7cc2fd12c98c75b05d916ec67a877d3943c + languageName: node + linkType: hard + "@jest/environment@npm:^25.5.0": version: 25.5.0 resolution: "@jest/environment@npm:25.5.0" @@ -3813,6 +3643,17 @@ __metadata: languageName: node linkType: hard +"@jest/fake-timers@npm:^24.9.0": + version: 24.9.0 + resolution: "@jest/fake-timers@npm:24.9.0" + dependencies: + "@jest/types": ^24.9.0 + jest-message-util: ^24.9.0 + jest-mock: ^24.9.0 + checksum: 5c03cc46de3be3b6a208d325fb4a92f127c8273cbbc691cf0454609ad47f15fdb2fcc8b60aae93ee745ee1f0fc95e64629ba203108a876f94141a59009db6796 + languageName: node + linkType: hard + "@jest/fake-timers@npm:^25.5.0": version: 25.5.0 resolution: "@jest/fake-timers@npm:25.5.0" @@ -3837,6 +3678,35 @@ __metadata: languageName: node linkType: hard +"@jest/reporters@npm:^24.9.0": + version: 24.9.0 + resolution: "@jest/reporters@npm:24.9.0" + dependencies: + "@jest/environment": ^24.9.0 + "@jest/test-result": ^24.9.0 + "@jest/transform": ^24.9.0 + "@jest/types": ^24.9.0 + chalk: ^2.0.1 + exit: ^0.1.2 + glob: ^7.1.2 + istanbul-lib-coverage: ^2.0.2 + istanbul-lib-instrument: ^3.0.1 + istanbul-lib-report: ^2.0.4 + istanbul-lib-source-maps: ^3.0.1 + istanbul-reports: ^2.2.6 + jest-haste-map: ^24.9.0 + jest-resolve: ^24.9.0 + jest-runtime: ^24.9.0 + jest-util: ^24.9.0 + jest-worker: ^24.6.0 + node-notifier: ^5.4.2 + slash: ^2.0.0 + source-map: ^0.6.0 + string-length: ^2.0.0 + checksum: 38c3c2f0e6dac7866bc9e5e3ae960ab74988300860a2a66248bfc2bd40a96532a20ad9b83b260929b14a119ac52eddd9e7e26c90015186dcf5b507aa9e8d5758 + languageName: node + linkType: hard + "@jest/reporters@npm:^25.5.1": version: 25.5.1 resolution: "@jest/reporters@npm:25.5.1" @@ -3873,6 +3743,17 @@ __metadata: languageName: node linkType: hard +"@jest/source-map@npm:^24.3.0, @jest/source-map@npm:^24.9.0": + version: 24.9.0 + resolution: "@jest/source-map@npm:24.9.0" + dependencies: + callsites: ^3.0.0 + graceful-fs: ^4.1.15 + source-map: ^0.6.0 + checksum: 1bbebf706b36ffed3d49077f4a12bd8edba726ecef94f32b61315076377ea076bd77bc50d84dc0edb8a67ec78a56a5e6169feb283392a1809adeac148139123d + languageName: node + linkType: hard + "@jest/source-map@npm:^25.5.0": version: 25.5.0 resolution: "@jest/source-map@npm:25.5.0" @@ -3884,6 +3765,17 @@ __metadata: languageName: node linkType: hard +"@jest/test-result@npm:^24.9.0": + version: 24.9.0 + resolution: "@jest/test-result@npm:24.9.0" + dependencies: + "@jest/console": ^24.9.0 + "@jest/types": ^24.9.0 + "@types/istanbul-lib-coverage": ^2.0.0 + checksum: e8e91f3dbdbd47c25b3ce72c33dc14590b3d650485d0b6955d3c19028a82e16a29641cf3f766a856e992b1af8c9e824b098d7ea36bc98f30532a4cbfba8e080a + languageName: node + linkType: hard + "@jest/test-result@npm:^25.5.0": version: 25.5.0 resolution: "@jest/test-result@npm:25.5.0" @@ -3896,6 +3788,18 @@ __metadata: languageName: node linkType: hard +"@jest/test-sequencer@npm:^24.9.0": + version: 24.9.0 + resolution: "@jest/test-sequencer@npm:24.9.0" + dependencies: + "@jest/test-result": ^24.9.0 + jest-haste-map: ^24.9.0 + jest-runner: ^24.9.0 + jest-runtime: ^24.9.0 + checksum: 38be116ee4bd2e81c03c7d18c5ea9a78306737edc7c0a980aa826aa3eae4ab4f25d8f805a2b38911dff6ba91d70995e2a3ea9222e6c27cad395dcc19691b7410 + languageName: node + linkType: hard + "@jest/test-sequencer@npm:^25.5.4": version: 25.5.4 resolution: "@jest/test-sequencer@npm:25.5.4" @@ -3909,6 +3813,30 @@ __metadata: languageName: node linkType: hard +"@jest/transform@npm:^24.9.0": + version: 24.9.0 + resolution: "@jest/transform@npm:24.9.0" + dependencies: + "@babel/core": ^7.1.0 + "@jest/types": ^24.9.0 + babel-plugin-istanbul: ^5.1.0 + chalk: ^2.0.1 + convert-source-map: ^1.4.0 + fast-json-stable-stringify: ^2.0.0 + graceful-fs: ^4.1.15 + jest-haste-map: ^24.9.0 + jest-regex-util: ^24.9.0 + jest-util: ^24.9.0 + micromatch: ^3.1.10 + pirates: ^4.0.1 + realpath-native: ^1.1.0 + slash: ^2.0.0 + source-map: ^0.6.1 + write-file-atomic: 2.4.1 + checksum: 73c5ad0ae6bae5c60261b6b256b995f099f84a964580537154293edc63ab0e9fb6e3dda737c04aafd9daa815f19b6fb437e611f4f811f8041bd37e8192709650 + languageName: node + linkType: hard + "@jest/transform@npm:^25.5.1": version: 25.5.1 resolution: "@jest/transform@npm:25.5.1" @@ -3933,6 +3861,17 @@ __metadata: languageName: node linkType: hard +"@jest/types@npm:^24.9.0": + version: 24.9.0 + resolution: "@jest/types@npm:24.9.0" + dependencies: + "@types/istanbul-lib-coverage": ^2.0.0 + "@types/istanbul-reports": ^1.1.1 + "@types/yargs": ^13.0.0 + checksum: 7cd388ad9d3a6de7e0ca29cbaf34dd9da9f6485d26747fc2ef6732bf06dc98d79519b7f3684b7287bd6d5168c394d8f806dc1343bd3c1b3cdc3e85486a518c63 + languageName: node + linkType: hard + "@jest/types@npm:^25.5.0": version: 25.5.0 resolution: "@jest/types@npm:25.5.0" @@ -3945,30 +3884,30 @@ __metadata: languageName: node linkType: hard -"@lerna/add@npm:3.20.0": - version: 3.20.0 - resolution: "@lerna/add@npm:3.20.0" +"@lerna/add@npm:3.19.0": + version: 3.19.0 + resolution: "@lerna/add@npm:3.19.0" dependencies: "@evocateur/pacote": ^9.6.3 - "@lerna/bootstrap": 3.20.0 + "@lerna/bootstrap": 3.18.5 "@lerna/command": 3.18.5 - "@lerna/filter-options": 3.20.0 + "@lerna/filter-options": 3.18.4 "@lerna/npm-conf": 3.16.0 "@lerna/validation-error": 3.13.0 dedent: ^0.7.0 npm-package-arg: ^6.1.0 p-map: ^2.1.0 semver: ^6.2.0 - checksum: 6f0717fe7cd6090e9ba83f29835d91ae93bd721ec8d081c8aa0c2e559573f270fcdab9df271d5851b11dc2063fe325d9df9d78773665c3140302c6fb7c1f5d71 + checksum: b5afde2f97d26fc39b76dfea941b75d876674f092e4fd76cd6c31b79d520d6896a8996f3575d9f9b6172d6cc9d9f526a3333885c28f4427023c486a53dfeec16 languageName: node linkType: hard -"@lerna/bootstrap@npm:3.20.0": - version: 3.20.0 - resolution: "@lerna/bootstrap@npm:3.20.0" +"@lerna/bootstrap@npm:3.18.5": + version: 3.18.5 + resolution: "@lerna/bootstrap@npm:3.18.5" dependencies: "@lerna/command": 3.18.5 - "@lerna/filter-options": 3.20.0 + "@lerna/filter-options": 3.18.4 "@lerna/has-npm-version": 3.16.5 "@lerna/npm-install": 3.16.5 "@lerna/package-graph": 3.18.5 @@ -3990,19 +3929,19 @@ __metadata: p-waterfall: ^1.0.0 read-package-tree: ^5.1.6 semver: ^6.2.0 - checksum: d56e084f557da317673ce48e6a88b2b07c92875b53be6fbaa8b45638613c8aec5437edcf9a29f4351ff4258f6a7af47d4ef3caf70d7ba5d9a8540d58ccc82725 + checksum: 4300da15623280b51246f61ecc1109fe45db8c05e61a1837b6afb03238cd5f8a4994f01b4d421cacd972700415c22158b84116b7476dbd772a332ca04067fa6c languageName: node linkType: hard -"@lerna/changed@npm:3.20.0": - version: 3.20.0 - resolution: "@lerna/changed@npm:3.20.0" +"@lerna/changed@npm:3.18.5": + version: 3.18.5 + resolution: "@lerna/changed@npm:3.18.5" dependencies: - "@lerna/collect-updates": 3.20.0 + "@lerna/collect-updates": 3.18.0 "@lerna/command": 3.18.5 "@lerna/listable": 3.18.5 "@lerna/output": 3.13.0 - checksum: 205ed0bdab3c993bc3fe5f9a165083a3e11203f32b6a9a9ca7b67a0fa0b4e15245bb78094e17dc11a3c03de7b933cd25ff9cd7502821ee3f881241ca241d9377 + checksum: afe7a873a393515a0e2bec7edfb4c106d1086f3dbcdc415d33eee0896ae5527cc0ecb42e1b7d50233fa46d0889fbfd4960a7baef3b04602d78e629ec3cdf2963 languageName: node linkType: hard @@ -4017,7 +3956,7 @@ __metadata: languageName: node linkType: hard -"@lerna/child-process@npm:3.16.5": +"@lerna/child-process@npm:3.16.5, @lerna/child-process@npm:^3.3.0": version: 3.16.5 resolution: "@lerna/child-process@npm:3.16.5" dependencies: @@ -4028,19 +3967,19 @@ __metadata: languageName: node linkType: hard -"@lerna/clean@npm:3.20.0": - version: 3.20.0 - resolution: "@lerna/clean@npm:3.20.0" +"@lerna/clean@npm:3.18.5": + version: 3.18.5 + resolution: "@lerna/clean@npm:3.18.5" dependencies: "@lerna/command": 3.18.5 - "@lerna/filter-options": 3.20.0 + "@lerna/filter-options": 3.18.4 "@lerna/prompt": 3.18.5 "@lerna/pulse-till-done": 3.13.0 "@lerna/rimraf-dir": 3.16.5 p-map: ^2.1.0 p-map-series: ^1.0.0 p-waterfall: ^1.0.0 - checksum: a53cad74c632d54386c03142daf978b1c5268e76877bbef14cb87188a0e471e8746e2e5abf04b88b8fd5824c657088061628698b4367638c37c1cddc44faeb93 + checksum: 0108b6fe24e5a558e62298bbec395c518d3a731c7b6df48a21a9604ec791257a26281581856914389f7414c6eb7c65ebde39003892a2ded6ea0a56a44e37a00e languageName: node linkType: hard @@ -4068,6 +4007,19 @@ __metadata: languageName: node linkType: hard +"@lerna/collect-updates@npm:3.18.0": + version: 3.16.0 + resolution: "@lerna/collect-updates@https://github.com/babel/lerna.git#commit:ae87fff020c5ad00366878c14b749e8ee0a34145" + dependencies: + "@lerna/child-process": ^3.3.0 + "@lerna/describe-ref": ^3.6.0 + minimatch: ^3.0.4 + npmlog: ^4.1.2 + slash: ^2.0.0 + checksum: a5c9d138ee4c04dfbd4b508ce38bbcc0587ed4466a5c53d740a629cf209d480038f739bf82e93080d2399b871030e4694bce85e63061590429878c09f9a4190b + languageName: node + linkType: hard + "@lerna/collect-updates@npm:3.20.0": version: 3.20.0 resolution: "@lerna/collect-updates@npm:3.20.0" @@ -4155,7 +4107,7 @@ __metadata: languageName: node linkType: hard -"@lerna/describe-ref@npm:3.16.5": +"@lerna/describe-ref@npm:3.16.5, @lerna/describe-ref@npm:^3.6.0": version: 3.16.5 resolution: "@lerna/describe-ref@npm:3.16.5" dependencies: @@ -4177,31 +4129,30 @@ __metadata: languageName: node linkType: hard -"@lerna/exec@npm:3.20.0": - version: 3.20.0 - resolution: "@lerna/exec@npm:3.20.0" +"@lerna/exec@npm:3.18.5": + version: 3.18.5 + resolution: "@lerna/exec@npm:3.18.5" dependencies: "@lerna/child-process": 3.16.5 "@lerna/command": 3.18.5 - "@lerna/filter-options": 3.20.0 - "@lerna/profiler": 3.20.0 + "@lerna/filter-options": 3.18.4 "@lerna/run-topologically": 3.18.5 "@lerna/validation-error": 3.13.0 p-map: ^2.1.0 - checksum: 1d129e4e2bdedaf1f3eac6f5d1f4faca0bdbaa5cd30530bb10c4b21fdb17fcbd67b6f415d9cf8544aa459ddda199a822a3a98183a9ea526107012d85756401a7 + checksum: 1602b5ee76b81815c5d45fcfba218df91150abcc049b5855e60c62f4dfd1963573d1d09db230c3ac4282cfced11bf49d054489cdf9dee99c86d6e5f7cd045da1 languageName: node linkType: hard -"@lerna/filter-options@npm:3.20.0": - version: 3.20.0 - resolution: "@lerna/filter-options@npm:3.20.0" +"@lerna/filter-options@npm:3.18.4": + version: 3.18.4 + resolution: "@lerna/filter-options@npm:3.18.4" dependencies: - "@lerna/collect-updates": 3.20.0 + "@lerna/collect-updates": 3.18.0 "@lerna/filter-packages": 3.18.0 dedent: ^0.7.0 figgy-pudding: ^3.5.1 npmlog: ^4.1.2 - checksum: c1befe98935e5333009b4fd62cd2c96447645c80b04d633073e871965f4b5182829b3fc1ffa109fc84069e98a57969a0836c8215897613c0a0b0bb594b39eea7 + checksum: 3480bed53d3a6310a338b25fbeb67747012a0014442d49b4e10042c9edcc177ea749178708c225c8841904511368ec25a66b5a9df5e706bc0d117eeb230a0d65 languageName: node linkType: hard @@ -4293,17 +4244,6 @@ __metadata: languageName: node linkType: hard -"@lerna/info@npm:3.20.0": - version: 3.20.0 - resolution: "@lerna/info@npm:3.20.0" - dependencies: - "@lerna/command": 3.18.5 - "@lerna/output": 3.13.0 - envinfo: ^7.3.1 - checksum: f637ef999a16eb8c6b690512cd9ba8b4092487255a01a038877d8b302733aef323ce58af4f4183e145cd8924ec53ceb6e6118ec5b6dff8935f128ff74b9be56d - languageName: node - linkType: hard - "@lerna/init@npm:3.18.5": version: 3.18.5 resolution: "@lerna/init@npm:3.18.5" @@ -4330,15 +4270,15 @@ __metadata: languageName: node linkType: hard -"@lerna/list@npm:3.20.0": - version: 3.20.0 - resolution: "@lerna/list@npm:3.20.0" +"@lerna/list@npm:3.18.5": + version: 3.18.5 + resolution: "@lerna/list@npm:3.18.5" dependencies: "@lerna/command": 3.18.5 - "@lerna/filter-options": 3.20.0 + "@lerna/filter-options": 3.18.4 "@lerna/listable": 3.18.5 "@lerna/output": 3.13.0 - checksum: 88f14b6dfbc36ed5c4daa8ceef154f55d94dbd5ae0851df28979797e75f2a59e9d3d97331aa39088573153990fc1dbd3f3d2d80a5d040d54500950eff2e2d270 + checksum: 109dc34232a2ec45d65de7696444e6b77c0406e5a24623194bb40f03cf6a81dd00fc1f51d6640c16ae1b672a1c9b1878b0b5e87fdd3c809ccdec6defba8594ae languageName: node linkType: hard @@ -4556,18 +4496,6 @@ __metadata: languageName: node linkType: hard -"@lerna/profiler@npm:3.20.0": - version: 3.20.0 - resolution: "@lerna/profiler@npm:3.20.0" - dependencies: - figgy-pudding: ^3.5.1 - fs-extra: ^8.1.0 - npmlog: ^4.1.2 - upath: ^1.2.0 - checksum: 587ff49a1ef6eb21ce9554791d28c17a28f199ef90a87f5c74d781d4dfea48abeb9611ab6f6789c1d43cb8edce53e6672e848b6ccc971ae7de8d11dc306ffdc8 - languageName: node - linkType: hard - "@lerna/project@npm:3.18.0": version: 3.18.0 resolution: "@lerna/project@npm:3.18.0" @@ -4598,16 +4526,16 @@ __metadata: languageName: node linkType: hard -"@lerna/publish@npm:3.20.2": - version: 3.20.2 - resolution: "@lerna/publish@npm:3.20.2" +"@lerna/publish@npm:3.18.5": + version: 3.18.5 + resolution: "@lerna/publish@npm:3.18.5" dependencies: "@evocateur/libnpmaccess": ^3.1.2 "@evocateur/npm-registry-fetch": ^4.0.0 "@evocateur/pacote": ^9.6.3 "@lerna/check-working-tree": 3.16.5 "@lerna/child-process": 3.16.5 - "@lerna/collect-updates": 3.20.0 + "@lerna/collect-updates": 3.18.0 "@lerna/command": 3.18.5 "@lerna/describe-ref": 3.16.5 "@lerna/log-packed": 3.16.0 @@ -4623,7 +4551,7 @@ __metadata: "@lerna/run-lifecycle": 3.16.2 "@lerna/run-topologically": 3.18.5 "@lerna/validation-error": 3.13.0 - "@lerna/version": 3.20.2 + "@lerna/version": 3.18.5 figgy-pudding: ^3.5.1 fs-extra: ^8.1.0 npm-package-arg: ^6.1.0 @@ -4632,7 +4560,7 @@ __metadata: p-map: ^2.1.0 p-pipe: ^1.2.0 semver: ^6.2.0 - checksum: 6725cb2106a8fcde919a5fadcacbb5d05e68ffed08a0e9c2aa34f29fc91138abcfbdebf441760b268170ea1c409b5c66f8afd0a7b8890240e963bbeac949b393 + checksum: 2b36227a8c9751a5307b6c74f53e2ae3cea4da32cc90794a2a8f5b672cae3e50bf3912e2bdc0d63ad2decd778bb3efae7656c559ed0b77a5afc4934086845220 languageName: node linkType: hard @@ -4701,20 +4629,19 @@ __metadata: languageName: node linkType: hard -"@lerna/run@npm:3.20.0": - version: 3.20.0 - resolution: "@lerna/run@npm:3.20.0" +"@lerna/run@npm:3.18.5": + version: 3.18.5 + resolution: "@lerna/run@npm:3.18.5" dependencies: "@lerna/command": 3.18.5 - "@lerna/filter-options": 3.20.0 + "@lerna/filter-options": 3.18.4 "@lerna/npm-run-script": 3.16.5 "@lerna/output": 3.13.0 - "@lerna/profiler": 3.20.0 "@lerna/run-topologically": 3.18.5 "@lerna/timer": 3.13.0 "@lerna/validation-error": 3.13.0 p-map: ^2.1.0 - checksum: 226d00c3b2ce1fc3c97b1a68bf01929aa5fdd2e45d18e690a189cfd82dea6f4ae74a6047f977631aeebb1e03637afa24415a3152e5f41d3b158c367c38f32260 + checksum: f1e386fc575a3c74d5ac4d998878b978049f69f38487cdf0b0081313d0d618597bbc1b8f69a34e7442e431cb122a8336f7b1628a162800f89afcad37735e9856 languageName: node linkType: hard @@ -4883,23 +4810,14 @@ __metadata: languageName: node linkType: hard -"@octokit/auth-token@npm:^2.4.0": - version: 2.4.0 - resolution: "@octokit/auth-token@npm:2.4.0" +"@octokit/endpoint@npm:^5.5.0": + version: 5.5.1 + resolution: "@octokit/endpoint@npm:5.5.1" dependencies: "@octokit/types": ^2.0.0 - checksum: 481cfe972a9201e1fc89e64da0c5f664752d231cc35dbaf163164dcb515772addb2af285314699c8fd71d707cbf74c5629622af8937b02dfb0d588e69908d213 - languageName: node - linkType: hard - -"@octokit/endpoint@npm:^6.0.1": - version: 6.0.1 - resolution: "@octokit/endpoint@npm:6.0.1" - dependencies: - "@octokit/types": ^2.11.1 is-plain-object: ^3.0.0 - universal-user-agent: ^5.0.0 - checksum: 11e947fcdd61a1c944e2f08d91b4554c67fa7c76be7a990039dcad0ecd57182a3f3e9d300cae0bf4b4ada18ebeb5e21fe4d504c1ca8610bbdc98b6b6054101fe + universal-user-agent: ^4.0.0 + checksum: c7c966dc82ae4d8a37da2bad281bbe1842ecedce108aa9d9f57528b9131590105ac305d99ad3bef27cf86bdbd7c72e39426f9adf90d73c3c92a833390a28e409 languageName: node linkType: hard @@ -4910,78 +4828,37 @@ __metadata: languageName: node linkType: hard -"@octokit/plugin-paginate-rest@npm:^1.1.1": - version: 1.1.2 - resolution: "@octokit/plugin-paginate-rest@npm:1.1.2" - dependencies: - "@octokit/types": ^2.0.1 - checksum: 3a60026e4c5a921209177eee505bafe8cfa81cfe838a364cd17294e0b5a549961bcfb0455f7ae3d51453a1ef686505a48c4a4d92f9153b3c27a0da69487e05db - languageName: node - linkType: hard - -"@octokit/plugin-request-log@npm:^1.0.0": - version: 1.0.0 - resolution: "@octokit/plugin-request-log@npm:1.0.0" - checksum: fa9e3bd25fb1ec89b28ac0fa11bfc70f4d105ec603c958444a83ff0a6e5076aa1cdc6279e6344e79cac118cf8a0eae26b277e57c9dc08b7ec12aab16d196c66f - languageName: node - linkType: hard - -"@octokit/plugin-rest-endpoint-methods@npm:2.4.0": - version: 2.4.0 - resolution: "@octokit/plugin-rest-endpoint-methods@npm:2.4.0" - dependencies: - "@octokit/types": ^2.0.1 - deprecation: ^2.3.1 - checksum: 5b4673449fe320576769df70417a40de54760906971341f2576da76571b914a8e5d6144ca5f38b7b29c14d5549ebc0a52ad3cbaa110449b70f83c02ca0ff4287 - languageName: node - linkType: hard - -"@octokit/request-error@npm:^1.0.2": - version: 1.2.1 - resolution: "@octokit/request-error@npm:1.2.1" - dependencies: - "@octokit/types": ^2.0.0 - deprecation: ^2.0.0 - once: ^1.4.0 - checksum: 8612f7a03728828a2e6389dc0007c5d9078405defea9025175e75404036d00ca8ceb847e662ebba2cf5a08861d8eb80ec0cdfec0732682999c99bf7173759ff7 - languageName: node - linkType: hard - -"@octokit/request-error@npm:^2.0.0": - version: 2.0.0 - resolution: "@octokit/request-error@npm:2.0.0" +"@octokit/request-error@npm:^1.0.1, @octokit/request-error@npm:^1.0.2": + version: 1.2.0 + resolution: "@octokit/request-error@npm:1.2.0" dependencies: "@octokit/types": ^2.0.0 deprecation: ^2.0.0 once: ^1.4.0 - checksum: dd508dc7bea24ef84dc37f00c1b2e9b4b572e1f7c2d8e78cb40a9b9d007e47e341df0570ecb185e2fd2a81afe16dcded6bfcdc66376af59122db0eee3dbe220e + checksum: 1b24a916ca6e30aecc43defae064fbb4a0eb6680385d2c937030b07a469df668ca0b55eea62f29e78b184b7450c7bb15ef72d255a69f6520cefd1b5e6288a17e languageName: node linkType: hard "@octokit/request@npm:^5.2.0": - version: 5.4.2 - resolution: "@octokit/request@npm:5.4.2" + version: 5.3.1 + resolution: "@octokit/request@npm:5.3.1" dependencies: - "@octokit/endpoint": ^6.0.1 - "@octokit/request-error": ^2.0.0 - "@octokit/types": ^2.11.1 + "@octokit/endpoint": ^5.5.0 + "@octokit/request-error": ^1.0.1 + "@octokit/types": ^2.0.0 deprecation: ^2.0.0 is-plain-object: ^3.0.0 node-fetch: ^2.3.0 once: ^1.4.0 - universal-user-agent: ^5.0.0 - checksum: 4e215376a466d20b6abdf3d48106acb88b18b17a667a53d69760cd6094e3f7ebdc8d7f952c1174c68916ca175c802c8ffef0d16f8dfc51356047a547346fe6db + universal-user-agent: ^4.0.0 + checksum: 1d9db84e942d1d93813523e4c652f04c50899e78de7abb7678b8646d9f7782f6b1a457d7f8a906a104bf47f647dde6cf3bff3379518c4df57950b228c6bb2f27 languageName: node linkType: hard "@octokit/rest@npm:^16.28.4": - version: 16.43.1 - resolution: "@octokit/rest@npm:16.43.1" + version: 16.35.0 + resolution: "@octokit/rest@npm:16.35.0" dependencies: - "@octokit/auth-token": ^2.4.0 - "@octokit/plugin-paginate-rest": ^1.1.1 - "@octokit/plugin-request-log": ^1.0.0 - "@octokit/plugin-rest-endpoint-methods": 2.4.0 "@octokit/request": ^5.2.0 "@octokit/request-error": ^1.0.2 atob-lite: ^2.0.0 @@ -4994,16 +4871,16 @@ __metadata: octokit-pagination-methods: ^1.1.0 once: ^1.4.0 universal-user-agent: ^4.0.0 - checksum: b28b0bbf2776436bba3935cdcfffb2a5b30a80d93c7f53c5c86aed668231ed3a43fcc72610782f9fdf3b438a24d9ff0c16c1a219f5458b4f6eb659dbcae37ee9 + checksum: a79ecfde66e298a3c992bf0f1d41eb406322cc8ab3b00510d25fb78e3ec408c449d6285b22f44ad983a92225187bc3ad85efc0b295f7895fa729132db16e1a2f languageName: node linkType: hard -"@octokit/types@npm:^2.0.0, @octokit/types@npm:^2.0.1, @octokit/types@npm:^2.11.1": - version: 2.15.0 - resolution: "@octokit/types@npm:2.15.0" +"@octokit/types@npm:^2.0.0": + version: 2.0.2 + resolution: "@octokit/types@npm:2.0.2" dependencies: "@types/node": ">= 8" - checksum: 6092b002a1eccc9bf68f821b2e4f8e7e0b6020559172b909741374a9b68dd4b233e11ff216f173d50d9f7d00cd690af9fb08accd5a5242c8968b91c98f324438 + checksum: bf9f98b45d772da47fe49c5b7478930125d37f68b46d7e060d374eeba71557822ffbe1aba9054e61a14ae60b81d112fc1afdb1d7610e983b4fb4d6f1c5ea76f9 languageName: node linkType: hard @@ -5028,33 +4905,46 @@ __metadata: linkType: hard "@sinonjs/commons@npm:^1.7.0": - version: 1.7.2 - resolution: "@sinonjs/commons@npm:1.7.2" + version: 1.8.1 + resolution: "@sinonjs/commons@npm:1.8.1" dependencies: type-detect: 4.0.8 - checksum: 3155d046f2540bd8d13a2fb77c8526c17b9d9eb964f0f4b82f250d20787b30e79db622c7ba9a1cb36f7340e99ba47f64bc91f56ca95eecad09e83066ddcf3da3 + checksum: adbf84a27bc895ca7bbe8ea9f53df9b5625a3d4fd54bc9390c88fa86a75b9d6d56722032336ab294c184862a09640932d794c347a4ed265c9ea126d966d0bf23 + languageName: node + linkType: hard + +"@types/babel__core@npm:^7.1.0": + version: 7.1.3 + resolution: "@types/babel__core@npm:7.1.3" + dependencies: + "@babel/parser": ^7.1.0 + "@babel/types": ^7.0.0 + "@types/babel__generator": "*" + "@types/babel__template": "*" + "@types/babel__traverse": "*" + checksum: 8f558936f7290554d307c89dbc44a5ce904018006b3991a524bf1c4642ed371079e29d489159c016483fbe1468f85ee2a44213efd04b44f1f65fb0fde3606f94 languageName: node linkType: hard "@types/babel__core@npm:^7.1.7": - version: 7.1.7 - resolution: "@types/babel__core@npm:7.1.7" + version: 7.1.9 + resolution: "@types/babel__core@npm:7.1.9" dependencies: "@babel/parser": ^7.1.0 "@babel/types": ^7.0.0 "@types/babel__generator": "*" "@types/babel__template": "*" "@types/babel__traverse": "*" - checksum: f440303059ca39cf036ddbb13a86dd23ca427c2631f4482f73de9f5a518ef62ebc7d407de727fea1845fabbbec62f8dea00fd559b0c8894f92d920a2c376ded4 + checksum: 251c4d3c2ae220b12b57143ca1ac7766d9e86da3819fbdf26ccae969b3fde041c0a21d893d96c08e4cca16373b4a209d06bd258c23d4df5e684ea47f5d158ffb languageName: node linkType: hard "@types/babel__generator@npm:*": - version: 7.6.1 - resolution: "@types/babel__generator@npm:7.6.1" + version: 7.6.0 + resolution: "@types/babel__generator@npm:7.6.0" dependencies: "@babel/types": ^7.0.0 - checksum: d9f19e0e47fe7df97e41029b656ca85e66124509b36b0ccaa5cc68617fe243240bd4431246b8928b9f08abf3818bbd6c94ba934cc7f88faaa2e32a38f5b728a8 + checksum: 97228549b9bba6351d92891b29acfa7eb324a832a6b1d8373042ae8b1bce4e2aa300e9a349e1ec10d06115f597adcd3881635da8dfe7e21724da19e56800fe09 languageName: node linkType: hard @@ -5069,11 +4959,11 @@ __metadata: linkType: hard "@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.6": - version: 7.0.11 - resolution: "@types/babel__traverse@npm:7.0.11" + version: 7.0.8 + resolution: "@types/babel__traverse@npm:7.0.8" dependencies: "@babel/types": ^7.3.0 - checksum: 0d5653c39dd42af7d1056cf1221a99a5ba5848315c369e802a1afd0daf17df96cfde3098b5376d578c07e7275e11b8230d496185c1bb90943052dc989bd5e1fb + checksum: 01ac8f7c1426184330a3d510b7701cc731da0f1778772e7c8c31edd1350b21ea55ee28a8de2e1546dff679cd05c731b03505231965a92ec2422f17dc81800bf9 languageName: node linkType: hard @@ -5085,9 +4975,9 @@ __metadata: linkType: hard "@types/estree@npm:*": - version: 0.0.44 - resolution: "@types/estree@npm:0.0.44" - checksum: b8b905f9dabd23ff3f566397a60e24cff5e56f076b89ef34acf4281e6819c75a534c827f473d777cf1bed06d054b3e717fad3816308febc3bc55018db9b9a1e9 + version: 0.0.40 + resolution: "@types/estree@npm:0.0.40" + checksum: 3bbf5cf1b142ad498a5eb28e882567860fab5e933dc74a8f2aa86a76fe50427308afa6f698acb1bc47ef8247b45eec46da35d4ff96cb8e3172953f6c17f51c13 languageName: node linkType: hard @@ -5133,11 +5023,11 @@ __metadata: linkType: hard "@types/istanbul-lib-report@npm:*": - version: 3.0.0 - resolution: "@types/istanbul-lib-report@npm:3.0.0" + version: 1.1.1 + resolution: "@types/istanbul-lib-report@npm:1.1.1" dependencies: "@types/istanbul-lib-coverage": "*" - checksum: 78aa9f859b6d1b2c02387b401e4e42fdec2e26ffede392e544da108abc6aff35c95b40821116ca46006d94c8b405ffd64465c32514549e997b04f8363de1af5e + checksum: 0aaec460503d10df1445b875fd445c814d635ddc47ea145ed4bdaa5eb13f4360478829ea64f54f7fc30e2a6fec537fa0abde5d2503c9bbf37384d73863b0b980 languageName: node linkType: hard @@ -5158,6 +5048,13 @@ __metadata: languageName: node linkType: hard +"@types/json5@npm:^0.0.29": + version: 0.0.29 + resolution: "@types/json5@npm:0.0.29" + checksum: 66e9ac0143ec521522c7bb670301e9836ee886207eeed1aab6d4854a1b19b404ab3a54cd8d449f9b1f13acc357f540be96f8ac2d1e86e301eab52ae0f9a4066f + languageName: node + linkType: hard + "@types/minimatch@npm:*": version: 3.0.3 resolution: "@types/minimatch@npm:3.0.3" @@ -5173,9 +5070,9 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:>= 8": - version: 13.13.5 - resolution: "@types/node@npm:13.13.5" - checksum: 101f43e900e7df94bf5f8c1a6d5caec16d94e545177e59f7ab6f97c925137377abd9af2cc87d7873c7b9a532c7f38840562d8f2726786e33efa9afa17644f6e4 + version: 12.12.15 + resolution: "@types/node@npm:12.12.15" + checksum: 3f68af6f288ab0994be8d69f2e9f2a530b276ac8de4bc48492897e9c204492ce706072effdadda21f399490688bfb35ffb0f4aa674f6a2e72b27d0cc3b094842 languageName: node linkType: hard @@ -5223,32 +5120,40 @@ __metadata: languageName: node linkType: hard +"@types/yargs@npm:^13.0.0": + version: 13.0.3 + resolution: "@types/yargs@npm:13.0.3" + dependencies: + "@types/yargs-parser": "*" + checksum: c3c88fbb20fc45913ce0395e54c5d893599ac98cd618c11ac0bfbc8f5dc2ee090403bdc7f817c960908b777a4d02ac9bc746e5110b9edbf6132765a835b6abf8 + languageName: node + linkType: hard + "@types/yargs@npm:^15.0.0": - version: 15.0.4 - resolution: "@types/yargs@npm:15.0.4" + version: 15.0.5 + resolution: "@types/yargs@npm:15.0.5" dependencies: "@types/yargs-parser": "*" - checksum: 03117288be47750740fd8bb670cf987360fc49b374348ce0c17efa743dcfdb52aa97ce001c606924fb062fe24800f680d0db78e1e5bc32c5e3a9f0248050d4d7 + checksum: 2133c8cb5878d13959844f98e546e69dacdf44cd9baf87d84c828a1a093febfc97c8f4df19cffd34a4a4f726a3cdb1851da4391176accf56534c5f8a1c271f46 languageName: node linkType: hard "@typescript-eslint/experimental-utils@npm:^2.5.0": - version: 2.31.0 - resolution: "@typescript-eslint/experimental-utils@npm:2.31.0" + version: 2.19.0 + resolution: "@typescript-eslint/experimental-utils@npm:2.19.0" dependencies: "@types/json-schema": ^7.0.3 - "@typescript-eslint/typescript-estree": 2.31.0 + "@typescript-eslint/typescript-estree": 2.19.0 eslint-scope: ^5.0.0 - eslint-utils: ^2.0.0 peerDependencies: eslint: "*" - checksum: 7e0758b0dde03febbde0b25c4f6356dd8dab4adbf8dcfc91f1ee44f057e63e10e4fcec2156e2d5fa4f1159c4be856e3b0b4a55dfa88b02e7c4ab53748e1c0e01 + checksum: e37464fada574c98bb460497912d8dfc6c7e70ad3a929af87985c90240190829b4ce85a20918d053d7c09e973ad6021fa3ea5a523a79d402e7be1223ec7b814b languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:2.31.0": - version: 2.31.0 - resolution: "@typescript-eslint/typescript-estree@npm:2.31.0" +"@typescript-eslint/typescript-estree@npm:2.19.0": + version: 2.19.0 + resolution: "@typescript-eslint/typescript-estree@npm:2.19.0" dependencies: debug: ^4.1.1 eslint-visitor-keys: ^1.1.0 @@ -5262,7 +5167,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: edbe58ebe51902b37cbdc81851f4881b84a4216b438da422aab5b619266cfed23c075f8863e5cc2bf8d17bcd4b2bf3554f21a19b5719483f738a09a5a3d17365 + checksum: 212131d93cf99919d39890630ba7a169f81a4a897f8865b78c3dddf1f89fe1b3b2f072dab9b8384918bde97eeefb5026f9aa6cad7e73d6cf2a74180bc8564e0e languageName: node linkType: hard @@ -5303,7 +5208,7 @@ __metadata: languageName: node linkType: hard -"acorn-globals@npm:^4.3.2": +"acorn-globals@npm:^4.1.0, acorn-globals@npm:^4.3.2": version: 4.3.4 resolution: "acorn-globals@npm:4.3.4" dependencies: @@ -5313,7 +5218,7 @@ __metadata: languageName: node linkType: hard -"acorn-jsx@npm:^5.0.0, acorn-jsx@npm:^5.2.0": +"acorn-jsx@npm:^5.2.0": version: 5.2.0 resolution: "acorn-jsx@npm:5.2.0" peerDependencies: @@ -5341,13 +5246,22 @@ __metadata: linkType: hard "acorn-walk@npm:^7.0.0": - version: 7.1.1 - resolution: "acorn-walk@npm:7.1.1" - checksum: 7d465101e67cee78a8e0ddec0e553638d9df6fce3009d7a08f4680d6b6cabdd3c89e6893f748ee14ba49580e4721d25cc5fa37cd76b7569d361b07f4e0b038b6 + version: 7.0.0 + resolution: "acorn-walk@npm:7.0.0" + checksum: f60bd48e31004bbdc4cbe1db299032d336fd6ace1179af3e0c0a2c5dac4f8e43cb4af3a4abe7115289fd8262e956d979d5564920fcadf4f94da47898ed13b190 + languageName: node + linkType: hard + +"acorn@npm:^5.0.0, acorn@npm:^5.5.3": + version: 5.7.4 + resolution: "acorn@npm:5.7.4" + bin: + acorn: bin/acorn + checksum: 1ca0f3e95b48b40ff3a6eb28e7e07a26f7aea762138ee8698eec6a6a241f3729506fbd55520c4f00de8fd2a2af7704be17c9f1c2c017a413a855f3e95929b6a1 languageName: node linkType: hard -"acorn@npm:^6.0.1, acorn@npm:^6.0.7": +"acorn@npm:^6.0.1": version: 6.4.1 resolution: "acorn@npm:6.4.1" bin: @@ -5356,7 +5270,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^7.0.0, acorn@npm:^7.1.0, acorn@npm:^7.1.1": +"acorn@npm:^7.0.0, acorn@npm:^7.1.0, acorn@npm:^7.1.1, acorn@npm:^7.3.1": version: 7.3.1 resolution: "acorn@npm:7.3.1" bin: @@ -5402,15 +5316,34 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^6.10.0, ajv@npm:^6.10.2, ajv@npm:^6.5.5, ajv@npm:^6.9.1": - version: 6.12.2 - resolution: "ajv@npm:6.12.2" +"ajv@npm:^6.10.0, ajv@npm:^6.10.2, ajv@npm:^6.5.5": + version: 6.10.2 + resolution: "ajv@npm:6.10.2" + dependencies: + fast-deep-equal: ^2.0.1 + fast-json-stable-stringify: ^2.0.0 + json-schema-traverse: ^0.4.1 + uri-js: ^4.2.2 + checksum: e6170c10b6448432220ec8979a2e56f85d1e1a4d9c03d8b45a98cdbf6a03e24873e244777637f1af2ad68888323473807343873fa6f69644474ef63f843be556 + languageName: node + linkType: hard + +"ajv@npm:^6.12.3": + version: 6.12.3 + resolution: "ajv@npm:6.12.3" dependencies: fast-deep-equal: ^3.1.1 fast-json-stable-stringify: ^2.0.0 json-schema-traverse: ^0.4.1 uri-js: ^4.2.2 - checksum: 09f3d7992c4a6e554e65accab279878c2da2a7e3ca782032de51c7c91d80a43a3e2aeb26efb8e8950b3941a89882f21aaca1170dafada784a7a0f275b5e6e745 + checksum: b20a171bf30ede1635c6b1955bcc1db5a6b3e7dfa77f75aace9fb0db87375430c46d5cdd84158a0bf0a8da91e4da97bdb1afe5604a0969d8468b7c11143fdbba + languageName: node + linkType: hard + +"amdefine@npm:>=0.0.4": + version: 1.0.1 + resolution: "amdefine@npm:1.0.1" + checksum: 8b163d7cd3224b8648a6f9be045f1e111847d53acb21b3f9fca3b7ef20da63de4b256c6dfc175a340d9a2bb13fcab9f633089e2d4ac230ea9721db038962d256 languageName: node linkType: hard @@ -5423,6 +5356,13 @@ __metadata: languageName: node linkType: hard +"ansi-colors@npm:^4.1.1": + version: 4.1.1 + resolution: "ansi-colors@npm:4.1.1" + checksum: 50d8dfbce25602caea1b170ecf4c71c4c9c58d2d1e3186fb5712848c0610d05fe60b8bb6a9eaebd9b54f1db3baf6f603e04214cce597cc7799bc9f47fd9a797a + languageName: node + linkType: hard + "ansi-cyan@npm:^0.1.1": version: 0.1.1 resolution: "ansi-cyan@npm:0.1.1" @@ -5480,7 +5420,7 @@ __metadata: languageName: node linkType: hard -"ansi-regex@npm:^4.1.0": +"ansi-regex@npm:^4.0.0, ansi-regex@npm:^4.1.0": version: 4.1.0 resolution: "ansi-regex@npm:4.1.0" checksum: 53b6fe447cf92ee59739379de637af6f86b3b8a9537fbfe36a66f946f1d9d34afc3efe664ac31bcc7c3af042d43eabcfcfd3f790316d474bbc7b19a4b1d132dd @@ -5551,7 +5491,7 @@ __metadata: languageName: node linkType: hard -"anymatch@npm:^3.0.3, anymatch@npm:~3.1.1": +"anymatch@npm:^3.0.3": version: 3.1.1 resolution: "anymatch@npm:3.1.1" dependencies: @@ -5708,7 +5648,7 @@ __metadata: languageName: node linkType: hard -"array-includes@npm:^3.0.3": +"array-includes@npm:^3.1.1": version: 3.1.1 resolution: "array-includes@npm:3.1.1" dependencies: @@ -5793,7 +5733,7 @@ __metadata: languageName: node linkType: hard -"array.prototype.flat@npm:^1.2.1": +"array.prototype.flat@npm:^1.2.3": version: 1.2.3 resolution: "array.prototype.flat@npm:1.2.3" dependencies: @@ -5894,7 +5834,14 @@ __metadata: languageName: node linkType: hard -"async-settle@npm:^1.0.0": +"async-limiter@npm:~1.0.0": + version: 1.0.1 + resolution: "async-limiter@npm:1.0.1" + checksum: d123312ace75c07399ddc58e06cc028dacce35f71cdf59cf9b22f6c31dde221c22285e6185ede823ecb67f3b3065e26205eb9f74fcbba3f12ce7a2c2b09d7763 + languageName: node + linkType: hard + +"async-settle@npm:^1.0.0": version: 1.0.0 resolution: "async-settle@npm:1.0.0" dependencies: @@ -5917,7 +5864,7 @@ __metadata: languageName: node linkType: hard -"atob@npm:^2.1.2": +"atob@npm:^2.1.1": version: 2.1.2 resolution: "atob@npm:2.1.2" bin: @@ -5934,9 +5881,9 @@ __metadata: linkType: hard "aws4@npm:^1.8.0": - version: 1.9.1 - resolution: "aws4@npm:1.9.1" - checksum: d59822631844f9da1caf966cfab90ffafa22cc6c50835f9f5ebff83acdbcffc24eca44fa50d4aa191a6cee81747df38b9880547cc1df8a1380c80dd507b8e6ce + version: 1.9.0 + resolution: "aws4@npm:1.9.0" + checksum: d3686077ce9be14cce04189066c84351fc31cc370898b9fda97d26570024816e429e3facc35289e7a3bb7908621ab54bddc1f03e73ab7f17ce4ea844fc8c8197 languageName: node linkType: hard @@ -5947,17 +5894,20 @@ __metadata: languageName: node linkType: hard -"babel-eslint@npm:^11.0.0-beta.2": - version: 11.0.0-beta.2 - resolution: "babel-eslint@npm:11.0.0-beta.2" +"babel-jest@npm:^24.9.0": + version: 24.9.0 + resolution: "babel-jest@npm:24.9.0" dependencies: - eslint-scope: 5.0.0 - eslint-visitor-keys: ^1.1.0 - semver: ^6.3.0 + "@jest/transform": ^24.9.0 + "@jest/types": ^24.9.0 + "@types/babel__core": ^7.1.0 + babel-plugin-istanbul: ^5.1.0 + babel-preset-jest: ^24.9.0 + chalk: ^2.4.2 + slash: ^2.0.0 peerDependencies: - "@babel/core": ">=7.2.0" - eslint: ">= 6.0.0" - checksum: f8e2829765cad7ede03c103ff334341e59cedecb0812ce2fd8c841ade908b358a70836efd5596fe4b094bba67e6c0bd4e00388ec0189caaa42fa80565db0d267 + "@babel/core": ^7.0.0 + checksum: b8b74b2af2242958f29f40c83461f7add1d32d2f3195ec31e6a5e309c1096eab557adac6233d6095a7db505f95ddd07d5f61d0de7c66f263cb8f33c9c45d1562 languageName: node linkType: hard @@ -5988,6 +5938,18 @@ __metadata: languageName: node linkType: hard +"babel-plugin-istanbul@npm:^5.1.0": + version: 5.2.0 + resolution: "babel-plugin-istanbul@npm:5.2.0" + dependencies: + "@babel/helper-plugin-utils": ^7.0.0 + find-up: ^3.0.0 + istanbul-lib-instrument: ^3.3.0 + test-exclude: ^5.2.3 + checksum: e94429f5c2fbc6b098f8ded77addabe5d229a8c4c8d449b746396c9f05e419ef41e7582aa19f8c1674c6774f9029f686653796e15de494f63ceef40d1f60e083 + languageName: node + linkType: hard + "babel-plugin-istanbul@npm:^6.0.0": version: 6.0.0 resolution: "babel-plugin-istanbul@npm:6.0.0" @@ -6001,6 +5963,15 @@ __metadata: languageName: node linkType: hard +"babel-plugin-jest-hoist@npm:^24.9.0": + version: 24.9.0 + resolution: "babel-plugin-jest-hoist@npm:24.9.0" + dependencies: + "@types/babel__traverse": ^7.0.6 + checksum: 84c1d616d2d1674f8ac45c630328b639f31812436421b445ca9243874d81691f6bc1bb959955df67c1add23904758afc2ae5bcf1838f639cad6ca33903e858c0 + languageName: node + linkType: hard + "babel-plugin-jest-hoist@npm:^25.5.0": version: 25.5.0 resolution: "babel-plugin-jest-hoist@npm:25.5.0" @@ -6025,12 +5996,13 @@ __metadata: linkType: hard "babel-preset-current-node-syntax@npm:^0.1.2": - version: 0.1.2 - resolution: "babel-preset-current-node-syntax@npm:0.1.2" + version: 0.1.3 + resolution: "babel-preset-current-node-syntax@npm:0.1.3" dependencies: "@babel/plugin-syntax-async-generators": ^7.8.4 "@babel/plugin-syntax-bigint": ^7.8.3 "@babel/plugin-syntax-class-properties": ^7.8.3 + "@babel/plugin-syntax-import-meta": ^7.8.3 "@babel/plugin-syntax-json-strings": ^7.8.3 "@babel/plugin-syntax-logical-assignment-operators": ^7.8.3 "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 @@ -6040,7 +6012,19 @@ __metadata: "@babel/plugin-syntax-optional-chaining": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0 - checksum: f31cbcbf7ac867c6ebeafc26155fa273702c273734baeb561e7c9a9fec4078ee0048b843a821118d8bd4def3bf3091c2b412b0b27f93f13a77b79fc8e36b9c5c + checksum: 35ed34f14d3ebcf9b31275040434ac34224fe019f113290e00e5ff580322a9b8b3cc597267cda2eff02dce943745d8735f7664e17159ab569c51c2804258c340 + languageName: node + linkType: hard + +"babel-preset-jest@npm:^24.9.0": + version: 24.9.0 + resolution: "babel-preset-jest@npm:24.9.0" + dependencies: + "@babel/plugin-syntax-object-rest-spread": ^7.0.0 + babel-plugin-jest-hoist: ^24.9.0 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 6b85c399b8438685c7d9f4bd67c659bba24d929e2ffe18ffdaa88d8ad3f2ccad06cfdc28dbdd5e9d95ec49ec506e31452bf78f04663f55282e36abf445263845 languageName: node linkType: hard @@ -6060,26 +6044,23 @@ __metadata: version: 0.0.0-use.local resolution: "babel@workspace:." dependencies: - "@babel/cli": ^7.10.1 - "@babel/core": ^7.10.2 + "@babel/cli": ^7.10.4 + "@babel/core": ^7.11.0 "@babel/eslint-config-internal": "link:./eslint/babel-eslint-config-internal" - "@babel/eslint-parser": "link:./eslint/babel-eslint-parser" - "@babel/eslint-plugin-development": "link:./eslint/babel-eslint-plugin-development" + "@babel/eslint-parser": ^7.11.0 + "@babel/eslint-plugin-development": ^7.11.0 "@babel/eslint-plugin-development-internal": "link:./eslint/babel-eslint-plugin-development-internal" - "@babel/plugin-proposal-class-properties": ^7.10.1 - "@babel/plugin-proposal-dynamic-import": ^7.10.1 - "@babel/plugin-proposal-export-namespace-from": ^7.10.1 - "@babel/plugin-proposal-object-rest-spread": ^7.10.1 - "@babel/plugin-transform-flow-strip-types": ^7.10.1 - "@babel/plugin-transform-for-of": ^7.10.1 - "@babel/plugin-transform-modules-commonjs": ^7.10.1 - "@babel/plugin-transform-runtime": ^7.10.1 - "@babel/preset-env": ^7.10.2 - "@babel/preset-flow": ^7.10.1 - "@babel/register": ^7.10.1 - "@babel/runtime": ^7.10.2 + "@babel/plugin-proposal-dynamic-import": ^7.10.4 + "@babel/plugin-proposal-object-rest-spread": ^7.11.0 + "@babel/plugin-transform-flow-strip-types": ^7.10.4 + "@babel/plugin-transform-for-of": ^7.10.4 + "@babel/plugin-transform-modules-commonjs": ^7.10.4 + "@babel/plugin-transform-runtime": ^7.11.0 + "@babel/preset-env": ^7.11.0 + "@babel/preset-flow": ^7.10.4 + "@babel/register": ^7.10.5 + "@babel/runtime": ^7.11.0 "@rollup/plugin-json": 4.0.1 - babel-eslint: ^11.0.0-beta.2 babel-jest: ^25.1.0 babel-plugin-transform-charcodes: ^0.2.0 browserify: ^16.2.3 @@ -6088,10 +6069,10 @@ __metadata: charcodes: ^0.2.0 derequire: ^2.0.2 enhanced-resolve: ^3.0.0 - eslint: ^6.8.0 + eslint: ^7.5.0 eslint-import-resolver-node: ^0.3.3 eslint-plugin-flowtype: ^4.6.0 - eslint-plugin-import: ^2.20.1 + eslint-plugin-import: ^2.22.0 eslint-plugin-jest: ^23.8.2 eslint-plugin-prettier: ^3.1.2 fancy-log: ^1.3.3 @@ -6106,7 +6087,7 @@ __metadata: lerna: ^3.19.0 lerna-changelog: ^0.5.0 lint-staged: ^9.2.0 - lodash: ^4.17.13 + lodash: ^4.17.19 mergeiterator: ^1.2.5 prettier: ^2.0.5 pump: ^3.0.0 @@ -6198,22 +6179,6 @@ __metadata: languageName: node linkType: hard -"binary-extensions@npm:^2.0.0": - version: 2.0.0 - resolution: "binary-extensions@npm:2.0.0" - checksum: 76cc6a33dc69bc989c938d46b5333aaa28ad9d57bc7aa3b1ffcb5def448702328243298f331e91b62059545320db754c61158cece018db6998876125d2b3b7e5 - languageName: node - linkType: hard - -"bindings@npm:^1.5.0": - version: 1.5.0 - resolution: "bindings@npm:1.5.0" - dependencies: - file-uri-to-path: 1.0.0 - checksum: bd623dec58f126eb0c30f04a20da7080f06cdd5af26bf5a91615e70055fbba66c4cec5c88b156e8181c1d822f2392034a40a9121ef3ebc25638dc2163332b12d - languageName: node - linkType: hard - "bluebird@npm:^3.5.1, bluebird@npm:^3.5.3, bluebird@npm:^3.5.5": version: 3.7.2 resolution: "bluebird@npm:3.7.2" @@ -6221,17 +6186,10 @@ __metadata: languageName: node linkType: hard -"bn.js@npm:^4.0.0, bn.js@npm:^4.1.0, bn.js@npm:^4.4.0": - version: 4.11.8 - resolution: "bn.js@npm:4.11.8" - checksum: c1c20812fc35367c13d5d4387b88b6b1f60dd685006d928fe7710d2b4c95ace661b7c4e400f484e189874481a813965ca32f12e9cbb31c3ced465d96fab5bcd8 - languageName: node - linkType: hard - -"bn.js@npm:^5.1.1": - version: 5.1.1 - resolution: "bn.js@npm:5.1.1" - checksum: 67915e456a8f2c2549cb5e556ff8d6dc479b227a7a75ea66c1d5a42253bc9abc95ce08f0b1c37ba068d0d9b9bfb9f79f151087c9166d6fe0d1600c7849290fd6 +"bn.js@npm:^4.0.0, bn.js@npm:^4.1.0, bn.js@npm:^4.1.1, bn.js@npm:^4.4.0": + version: 4.11.9 + resolution: "bn.js@npm:4.11.9" + checksum: 31630d3560b28931010980886a0f657b37ce818ba237867cd838e89a1a0b71044fb4977aa56376616997b372bbb3f55d3bb25e5378c48c1d24a47bfb4235b60e languageName: node linkType: hard @@ -6263,7 +6221,7 @@ __metadata: languageName: node linkType: hard -"braces@npm:^3.0.1, braces@npm:~3.0.2": +"braces@npm:^3.0.1": version: 3.0.2 resolution: "braces@npm:3.0.2" dependencies: @@ -6279,7 +6237,22 @@ __metadata: languageName: node linkType: hard -"browser-pack@npm:^6.0.1, browser-pack@npm:^6.0.2": +"browser-pack@npm:^5.0.1": + version: 5.0.1 + resolution: "browser-pack@npm:5.0.1" + dependencies: + JSONStream: ^1.0.3 + combine-source-map: ~0.6.1 + defined: ^1.0.0 + through2: ^1.0.0 + umd: ^3.0.0 + bin: + browser-pack: bin/cmd.js + checksum: 8f91537d78674d4b891c9617f2e9bcd1874a882d9fbf584beab4642f57fbd0fecf4e542de44498c9efca283e15bbd4b143d2591c93aa42df5f667a1584152fb7 + languageName: node + linkType: hard + +"browser-pack@npm:^6.0.1": version: 6.1.0 resolution: "browser-pack@npm:6.1.0" dependencies: @@ -6295,10 +6268,10 @@ __metadata: languageName: node linkType: hard -"browser-process-hrtime@npm:^1.0.0": - version: 1.0.0 - resolution: "browser-process-hrtime@npm:1.0.0" - checksum: 565847e5b0dc8c3762e545abb806ba886ed55de9b2c1479e382cf27e54f0af38ae3a1f81f3a98760403404419f65cbb20aff88d91cbee2b25e284bdebcc60a85 +"browser-process-hrtime@npm:^0.1.2": + version: 0.1.3 + resolution: "browser-process-hrtime@npm:0.1.3" + checksum: 194f3504eceff2fcfea4dc36fecbca9157c016173b93d67bc3807340fb7148130d6cfe331af4ecb214f8e2d78194f9be32dc2bea3dab6d63f3d4949f71fa6b83 languageName: node linkType: hard @@ -6361,7 +6334,7 @@ __metadata: languageName: node linkType: hard -"browserify-rsa@npm:^4.0.0, browserify-rsa@npm:^4.0.1": +"browserify-rsa@npm:^4.0.0": version: 4.0.1 resolution: "browserify-rsa@npm:4.0.1" dependencies: @@ -6372,18 +6345,17 @@ __metadata: linkType: hard "browserify-sign@npm:^4.0.0": - version: 4.1.0 - resolution: "browserify-sign@npm:4.1.0" + version: 4.0.4 + resolution: "browserify-sign@npm:4.0.4" dependencies: - bn.js: ^5.1.1 - browserify-rsa: ^4.0.1 - create-hash: ^1.2.0 - create-hmac: ^1.1.7 - elliptic: ^6.5.2 - inherits: ^2.0.4 - parse-asn1: ^5.1.5 - readable-stream: ^3.6.0 - checksum: 49376b1cad9e6bf7de04032d347ff0224dbe14dd4f0cbbe69cf46f569d8b9250b2a8ed06f9add66b0617665130d8345817a3422df99a7311446a63021aac7125 + bn.js: ^4.1.1 + browserify-rsa: ^4.0.0 + create-hash: ^1.1.0 + create-hmac: ^1.1.2 + elliptic: ^6.0.0 + inherits: ^2.0.1 + parse-asn1: ^5.0.0 + checksum: 621363fc983838cd37c51098e95d9747d3880b80b95c0a20d70719929b399b3f8b7b8945ef7d3a8a724bccb613838829548166fd6f3c8e8fab4bbcad610a2850 languageName: node linkType: hard @@ -6396,7 +6368,7 @@ __metadata: languageName: node linkType: hard -"browserify@npm:16.5.0": +"browserify@npm:16.5.0, browserify@npm:^16.2.3": version: 16.5.0 resolution: "browserify@npm:16.5.0" dependencies: @@ -6454,65 +6426,7 @@ __metadata: languageName: node linkType: hard -"browserify@npm:^16.2.3": - version: 16.5.1 - resolution: "browserify@npm:16.5.1" - dependencies: - JSONStream: ^1.0.3 - assert: ^1.4.0 - browser-pack: ^6.0.1 - browser-resolve: ^1.11.0 - browserify-zlib: ~0.2.0 - buffer: ~5.2.1 - cached-path-relative: ^1.0.0 - concat-stream: ^1.6.0 - console-browserify: ^1.1.0 - constants-browserify: ~1.0.0 - crypto-browserify: ^3.0.0 - defined: ^1.0.0 - deps-sort: ^2.0.0 - domain-browser: ^1.2.0 - duplexer2: ~0.1.2 - events: ^2.0.0 - glob: ^7.1.0 - has: ^1.0.0 - htmlescape: ^1.1.0 - https-browserify: ^1.0.0 - inherits: ~2.0.1 - insert-module-globals: ^7.0.0 - labeled-stream-splicer: ^2.0.0 - mkdirp-classic: ^0.5.2 - module-deps: ^6.0.0 - os-browserify: ~0.3.0 - parents: ^1.0.1 - path-browserify: ~0.0.0 - process: ~0.11.0 - punycode: ^1.3.2 - querystring-es3: ~0.2.0 - read-only-stream: ^2.0.0 - readable-stream: ^2.0.2 - resolve: ^1.1.4 - shasum: ^1.0.0 - shell-quote: ^1.6.1 - stream-browserify: ^2.0.0 - stream-http: ^3.0.0 - string_decoder: ^1.1.1 - subarg: ^1.0.0 - syntax-error: ^1.1.1 - through2: ^2.0.0 - timers-browserify: ^1.0.1 - tty-browserify: 0.0.1 - url: ~0.11.0 - util: ~0.10.1 - vm-browserify: ^1.0.0 - xtend: ^4.0.0 - bin: - browserify: bin/cmd.js - checksum: b7995ab96f065832385519f736506bc2dc380849ff3bfdbdd5844b17948b877c086c380b770f52fdf300ff2ba15d8d42af20d1bcedd26912e5c81b3a7eac5770 - languageName: node - linkType: hard - -"browserslist@npm:^4.12.0, browserslist@npm:^4.8.5": +"browserslist@npm:^4.12.0, browserslist@npm:^4.8.3": version: 4.12.0 resolution: "browserslist@npm:4.12.0" dependencies: @@ -6564,22 +6478,12 @@ __metadata: linkType: hard "buffer@npm:^5.0.2": - version: 5.6.0 - resolution: "buffer@npm:5.6.0" - dependencies: - base64-js: ^1.0.2 - ieee754: ^1.1.4 - checksum: e18fdf099c25cae354d673c7deee0391978bde5a47b785cf81e118c75853f0f36838b0a5ea5ee7adf8c02eedb9664292608efdcac9945f4f4f514d14054656f7 - languageName: node - linkType: hard - -"buffer@npm:~5.2.1": - version: 5.2.1 - resolution: "buffer@npm:5.2.1" + version: 5.4.3 + resolution: "buffer@npm:5.4.3" dependencies: base64-js: ^1.0.2 ieee754: ^1.1.4 - checksum: 4f6a14d7b4752ac99145dc24063e43d8207fca021d0d15cf016e4a64dee63bc4cdf8ce0b9576c13ffb6bf205dba1015720cfc6b17da72dbedc7c4d567090556e + checksum: a3c16e1c30e0382fa163c2f600865b0a8fe87cfcb1eeec395947eceebc501503630d0453c6f6593f6fecb8aeef9caf948531fdf53f8c67967ad097d5e9236e88 languageName: node linkType: hard @@ -6605,10 +6509,10 @@ __metadata: linkType: hard "bundle-collapser@npm:^1.2.1": - version: 1.4.0 - resolution: "bundle-collapser@npm:1.4.0" + version: 1.3.0 + resolution: "bundle-collapser@npm:1.3.0" dependencies: - browser-pack: ^6.0.2 + browser-pack: ^5.0.1 browser-unpack: ^1.1.0 concat-stream: ^1.5.0 falafel: ^2.1.0 @@ -6616,7 +6520,7 @@ __metadata: through2: ^2.0.0 bin: bundle-collapser: bin/cmd.js - checksum: bdbfa6f310f9b78dd9b7eff6be09445e25dee7d3a4dcd6a28c6cbd56989a47461f676031e8d9a837029f004ee1e77a0ac5bf8d4bfc63788810c8fbb830f3fffe + checksum: 997dd01670b5f7f6d8393f5c9aa13a365438a28bbf68b41cf421ab6e9b146457356ac57258af93d027d66c71320144f344c96fc6bfd6f83e05b713ac2233729b languageName: node linkType: hard @@ -6635,8 +6539,8 @@ __metadata: linkType: hard "cacache@npm:^12.0.0, cacache@npm:^12.0.3": - version: 12.0.4 - resolution: "cacache@npm:12.0.4" + version: 12.0.3 + resolution: "cacache@npm:12.0.3" dependencies: bluebird: ^3.5.5 chownr: ^1.1.1 @@ -6653,7 +6557,7 @@ __metadata: ssri: ^6.0.1 unique-filename: ^1.1.1 y18n: ^4.0.0 - checksum: fd70ecfddb7fab7d9fb8544e10a738341e50709d897d97439c41d8b85b0df8bc50a2dcd8faab1af78499003b8944390a870451b3dd73860450d579c85128aede + checksum: e1a0604f0612b508146c7048332cff2065609c99b9d94a2df5086ae7a258df4e18e76e3f1db91c6b54de0ca1d6a9c7b74348cf8bef89340de389b8fe13ca01b6 languageName: node linkType: hard @@ -6780,17 +6684,17 @@ __metadata: languageName: node linkType: hard -"caniuse-db@npm:1.0.30001035": - version: 1.0.30001035 - resolution: "caniuse-db@npm:1.0.30001035" - checksum: 251c4e31a6bd79481cd2ca69bd607ffcc10f8b61b8f0f3f42b9d2253969f063024b0b8deba205e0b1990735b23d4ce9b10252b4c9e701c0a3abb7d2576201655 +"camelcase@npm:^6.0.0": + version: 6.0.0 + resolution: "camelcase@npm:6.0.0" + checksum: d92305180bc2041141cc0c889ee54d14f90b16365dc7c01eabe6d54e913eb8011313f98dde3025ae11f0003b601ba320f56ee56db476c64060cf2305bf7f6f2a languageName: node linkType: hard "caniuse-lite@npm:^1.0.30001043": - version: 1.0.30001054 - resolution: "caniuse-lite@npm:1.0.30001054" - checksum: 13f0ed44628e888ecf04cca6d881bfd4e8ef23f7d97f9a9011c4c7969cef864ad7cf708182c59ade64bb0c2d660724ce57a2dd4294143f1e6527e9d69990c3e9 + version: 1.0.30001077 + resolution: "caniuse-lite@npm:1.0.30001077" + checksum: 8c57dfba3e0da11c01fdaad6a3517c0259ce24006b2c1d542827d725c5f5ed5be7a18d7efdbfe4ae879d2fc01e2fa5445c31e76835a8abc9013f7bfa35c42e8e languageName: node linkType: hard @@ -6823,7 +6727,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^2.0.0, chalk@npm:^2.1.0, chalk@npm:^2.3.1, chalk@npm:^2.4.1, chalk@npm:^2.4.2": +"chalk@npm:^2.0.0, chalk@npm:^2.0.1, chalk@npm:^2.3.1, chalk@npm:^2.4.1, chalk@npm:^2.4.2": version: 2.4.2 resolution: "chalk@npm:2.4.2" dependencies: @@ -6845,12 +6749,12 @@ __metadata: linkType: hard "chalk@npm:^4.0.0": - version: 4.0.0 - resolution: "chalk@npm:4.0.0" + version: 4.1.0 + resolution: "chalk@npm:4.1.0" dependencies: ansi-styles: ^4.1.0 supports-color: ^7.1.0 - checksum: 12b01a228b5ca2f03a82684c62d54c06e2ba2f7b81dd08fac56c5b9288958dd24f9cae866e140df5c29cb736059cb4be0165157ebb0b15039cc1ea511a2dab60 + checksum: f860285b419f9e925c2db0f45ffa88aa8794c14b80cc5d01ff30930bcfc384996606362706f0829cf557f6d36152a5fb2d227ad63c4bc90e2ec9e9dbed4a3c07 languageName: node linkType: hard @@ -6891,29 +6795,17 @@ __metadata: languageName: node linkType: hard -"chokidar@npm:^3.3.1": - version: 3.4.0 - resolution: "chokidar@npm:3.4.0" - dependencies: - anymatch: ~3.1.1 - braces: ~3.0.2 - fsevents: ~2.1.2 - glob-parent: ~5.1.0 - is-binary-path: ~2.1.0 - is-glob: ~4.0.1 - normalize-path: ~3.0.0 - readdirp: ~3.4.0 - dependenciesMeta: - fsevents: - optional: true - checksum: e190168a5966b88f3b4749eed413a7e4482b8611e366f72b89d6435e1a1c58484384d91d722c9cdea64cdde0e14f190058ba36da624dce920804d3e82651431a +"chownr@npm:^1.1.1, chownr@npm:^1.1.2": + version: 1.1.3 + resolution: "chownr@npm:1.1.3" + checksum: 1d2427ea010d732edd12c95237547b95bd5504978e0f363b388d2f50fa6b989b2acbfa1ab56c70317015907b566fc84ec8ede80e0359ff4965fa7013525cea0d languageName: node linkType: hard -"chownr@npm:^1.1.1, chownr@npm:^1.1.2": - version: 1.1.4 - resolution: "chownr@npm:1.1.4" - checksum: 4a7f1a0b2637450fd15ddb085b10649487ddd1d59a8d9335b1aa5b1e9ad55840a591ab7d7f9b568001cb6777d017334477ab2e32e048788b13a069d011cd5781 +"chownr@npm:^2.0.0": + version: 2.0.0 + resolution: "chownr@npm:2.0.0" + checksum: b06ba0bf4218bc2214cdb94a7d0200db5c6425f9425795c064dcf5a3801aac8ae87f764727890cd1f48c026559159e7e0e15ed3d1940ce453dec54898d013379 languageName: node linkType: hard @@ -6962,15 +6854,6 @@ __metadata: languageName: node linkType: hard -"cli-cursor@npm:^3.1.0": - version: 3.1.0 - resolution: "cli-cursor@npm:3.1.0" - dependencies: - restore-cursor: ^3.1.0 - checksum: 15dbfc222f27da8cbc61680e4948b189e811224271f6ee5be9db0dcbabe23ae3b2c5a5663be6f17ee51f6203ab44abddd4f4cffb20d69458fc845fa86976f96a - languageName: node - linkType: hard - "cli-truncate@npm:^0.2.1": version: 0.2.1 resolution: "cli-truncate@npm:0.2.1" @@ -6982,9 +6865,9 @@ __metadata: linkType: hard "cli-width@npm:^2.0.0": - version: 2.2.1 - resolution: "cli-width@npm:2.2.1" - checksum: f7c830bddca78d8b2706c213d6ffa4e751988b7f70ec3e871c97a87e12a9e17e9f9652f13a5bfcea0e2e8dbae1da4b0939d59cf2bf8c36979541c624043d6315 + version: 2.2.0 + resolution: "cli-width@npm:2.2.0" + checksum: 0b3c1d53b2771dcca960d57979076d8d9a2065bda154a78029fcc9151d18f83d679c15c82d00c24f1365b744449225e9a931397848451887721f129d8e51aaa2 languageName: node linkType: hard @@ -7176,6 +7059,18 @@ __metadata: languageName: node linkType: hard +"combine-source-map@npm:~0.6.1": + version: 0.6.1 + resolution: "combine-source-map@npm:0.6.1" + dependencies: + convert-source-map: ~1.1.0 + inline-source-map: ~0.5.0 + lodash.memoize: ~3.0.3 + source-map: ~0.4.2 + checksum: e4b67e619727ba361ef4a7d0e0a90edf279d8377990ad7f1d557b3be1a832e3e5263aa6fa420dcd3288f7f395432abc0d2bc7df9583637dff52a62eb6abc3693 + languageName: node + linkType: hard + "combined-stream@npm:^1.0.6, combined-stream@npm:~1.0.6": version: 1.0.8 resolution: "combined-stream@npm:1.0.8" @@ -7193,9 +7088,9 @@ __metadata: linkType: hard "commander@npm:^4.0.1": - version: 4.1.1 - resolution: "commander@npm:4.1.1" - checksum: 448585071bf8fb4c0bf9dd52abaee43dea086f801334caec2c8e8c9f456f8abc224c1614ccbbdbf7da5ac2524d230f13cf1fc86c233cf8a041ebecea7df106e9 + version: 4.0.1 + resolution: "commander@npm:4.0.1" + checksum: 86a2ebdbc2ae6094cc26427ca936b8c2ad563899bd457bb2d8af06f76e6e60d079a0a14a9be5bd1d9113969fe32afb342e491fc2a0978ff02f0a854932e1e4fd languageName: node linkType: hard @@ -7300,12 +7195,12 @@ __metadata: linkType: hard "conventional-changelog-angular@npm:^5.0.3": - version: 5.0.10 - resolution: "conventional-changelog-angular@npm:5.0.10" + version: 5.0.6 + resolution: "conventional-changelog-angular@npm:5.0.6" dependencies: compare-func: ^1.3.1 q: ^1.5.1 - checksum: 67c3621e3f29f5f127946494decc56ca75f9f56f3bbf180a1955c6b937f672895aa181735030c3fd477fa1b7184333c485d4a4324c3a2878cdc81bdec8a3c96b + checksum: ebcc9806da49c92ebef56f603bb776143eb052ad95452e1612c49c1b2d197cf220bfc2e32646e19b58c9b6129ec3910e639dbfb3cb0e4afb058adf8b79d4e7a9 languageName: node linkType: hard @@ -7450,12 +7345,12 @@ __metadata: linkType: hard "core-js-compat@npm:^3.6.2": - version: 3.6.5 - resolution: "core-js-compat@npm:3.6.5" + version: 3.6.4 + resolution: "core-js-compat@npm:3.6.4" dependencies: - browserslist: ^4.8.5 + browserslist: ^4.8.3 semver: 7.0.0 - checksum: b263b5313f5b10807cbe2037bcff1d0abc3611d8600ca29a742695eb21411f76a8c762db00a04d684a3f80645252aeb74b24542c157ec24697edd3ae7afcce87 + checksum: a8146d119aad70aef46d48010cfbc8fd82541c7b4238b7e1205d9b49d0802fd44cde1518f78f57facf86490ce9673f855520409ddeace82c4c79e86b3c9204a5 languageName: node linkType: hard @@ -7522,7 +7417,7 @@ __metadata: languageName: node linkType: hard -"create-hash@npm:^1.1.0, create-hash@npm:^1.1.2, create-hash@npm:^1.2.0": +"create-hash@npm:^1.1.0, create-hash@npm:^1.1.2": version: 1.2.0 resolution: "create-hash@npm:1.2.0" dependencies: @@ -7535,7 +7430,7 @@ __metadata: languageName: node linkType: hard -"create-hmac@npm:^1.1.0, create-hmac@npm:^1.1.4, create-hmac@npm:^1.1.7": +"create-hmac@npm:^1.1.0, create-hmac@npm:^1.1.2, create-hmac@npm:^1.1.4": version: 1.1.7 resolution: "create-hmac@npm:1.1.7" dependencies: @@ -7549,7 +7444,7 @@ __metadata: languageName: node linkType: hard -"cross-spawn@npm:^6.0.0, cross-spawn@npm:^6.0.5": +"cross-spawn@npm:^6.0.0": version: 6.0.5 resolution: "cross-spawn@npm:6.0.5" dependencies: @@ -7562,14 +7457,14 @@ __metadata: languageName: node linkType: hard -"cross-spawn@npm:^7.0.0": - version: 7.0.2 - resolution: "cross-spawn@npm:7.0.2" +"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2": + version: 7.0.3 + resolution: "cross-spawn@npm:7.0.3" dependencies: path-key: ^3.1.0 shebang-command: ^2.0.0 which: ^2.0.1 - checksum: 31ad173414e82588537fb00b7c14533c8cfcfbfc87b4eb61c8d12aeb77c89c9afd0f0ef0f5bbe8a5204f888b127c7d8fb42ad22eeab5ac93502aa5f119a09846 + checksum: 51f10036f5f1de781be98f4738d58b50c6d44f4f471069b8ab075b21605893ba1548654880f7310a29a732d6fc7cd481da6026169b9f0831cab0148a62fb397a languageName: node linkType: hard @@ -7592,6 +7487,13 @@ __metadata: languageName: node linkType: hard +"cssom@npm:0.3.x, cssom@npm:>= 0.3.2 < 0.4.0, cssom@npm:~0.3.6": + version: 0.3.8 + resolution: "cssom@npm:0.3.8" + checksum: b7fb8b13aa2014a6c168c7644baa2f4d447a28b624544c87c8ef905bbec64ef247b3d167270f87e043acc6df30ea0f80e0da545a45187ff4006eb2c24988dfae + languageName: node + linkType: hard + "cssom@npm:^0.4.1": version: 0.4.4 resolution: "cssom@npm:0.4.4" @@ -7599,10 +7501,12 @@ __metadata: languageName: node linkType: hard -"cssom@npm:~0.3.6": - version: 0.3.8 - resolution: "cssom@npm:0.3.8" - checksum: b7fb8b13aa2014a6c168c7644baa2f4d447a28b624544c87c8ef905bbec64ef247b3d167270f87e043acc6df30ea0f80e0da545a45187ff4006eb2c24988dfae +"cssstyle@npm:^1.0.0": + version: 1.4.0 + resolution: "cssstyle@npm:1.4.0" + dependencies: + cssom: 0.3.x + checksum: 5c138c9b0761a2826929ba1af06d541968c8ce2e147bc88719a9219554dbc2a7e48d2507936b4837c4cd75c07fa4988e51c6fe96dd96a45cd404c8a0012a46d3 languageName: node linkType: hard @@ -7666,7 +7570,7 @@ __metadata: languageName: node linkType: hard -"data-urls@npm:^1.1.0": +"data-urls@npm:^1.0.0, data-urls@npm:^1.1.0": version: 1.1.0 resolution: "data-urls@npm:1.1.0" dependencies: @@ -7709,7 +7613,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:^3.1.0": +"debug@npm:^3.1.0, debug@npm:^3.2.6": version: 3.2.6 resolution: "debug@npm:3.2.6" dependencies: @@ -7751,6 +7655,15 @@ __metadata: languageName: node linkType: hard +"decamelize@npm:^3.2.0": + version: 3.2.0 + resolution: "decamelize@npm:3.2.0" + dependencies: + xregexp: ^4.2.4 + checksum: dbe98e2e5f49a825c57a0f8c5ab0cb983669b71b6f689909b5f42888fb26c25d65a0c340930b2a3c2d770d6611e3be3b765e3776b75969263a3d401a31507ee4 + languageName: node + linkType: hard + "decode-uri-component@npm:^0.2.0": version: 0.2.0 resolution: "decode-uri-component@npm:0.2.0" @@ -7765,7 +7678,14 @@ __metadata: languageName: node linkType: hard -"deep-is@npm:~0.1.3": +"deep-extend@npm:^0.6.0": + version: 0.6.0 + resolution: "deep-extend@npm:0.6.0" + checksum: 856d7f52db152c19fc5a70439ea938461cfb9338a632496fe370050dc73d3291cd76fc6713f604a5c126612dee9cac0f6da1d4b88ba4b0caa4f7214345879b89 + languageName: node + linkType: hard + +"deep-is@npm:^0.1.3, deep-is@npm:~0.1.3": version: 0.1.3 resolution: "deep-is@npm:0.1.3" checksum: 3de58f86af4dec86c8be531a5abaf2e6d8ea98fa2f1d81a3a778d0d8df920ee282043a6ef05bfb4eb699c8551df9ac1b808d4dc71d54cc40ab1efa5ce8792943 @@ -7887,7 +7807,7 @@ __metadata: languageName: node linkType: hard -"deprecation@npm:^2.0.0, deprecation@npm:^2.3.1": +"deprecation@npm:^2.0.0": version: 2.3.1 resolution: "deprecation@npm:2.3.1" checksum: 59343a0b927c5b6f67abb899fda68bf42b132c05ef1a985952c1e220c41fe5035b2d54a28c7c2a8b5239075d1dc25c83340242ada75f1c06c1bb047176f05f9b @@ -7909,17 +7829,17 @@ __metadata: linkType: hard "derequire@npm:^2.0.2": - version: 2.1.0 - resolution: "derequire@npm:2.1.0" + version: 2.1.1 + resolution: "derequire@npm:2.1.1" dependencies: acorn: ^7.1.1 concat-stream: ^1.4.6 escope: ^3.6.0 through2: ^2.0.0 - yargs: ^6.5.0 + yargs: ^15.3.1 bin: derequire: bin/cmd.js - checksum: f8319d6a78545857d2237dc914dd4858dc59c09bedc0a7b884a0b482d992949fb6b4f684ab9cd4d2e5733627b3e7d120e5ec0620c62060de29245602304b41a3 + checksum: 520b81c676477d7aca6947ac6d5238fe0ba99cb5508be73602d59d09120639d20f99a264195de37efd17a0175eaf7d9de65fd4215fc1c6908fb69e7fb770c7fe languageName: node linkType: hard @@ -7947,6 +7867,22 @@ __metadata: languageName: node linkType: hard +"detect-libc@npm:^1.0.2": + version: 1.0.3 + resolution: "detect-libc@npm:1.0.3" + bin: + detect-libc: ./bin/detect-libc.js + checksum: 6cec442139459ec2e8517076974b0eba42079885938683eca013c2e0b5db02ef048870725ce68e7ac8e4cf17e482f67d7322f45bbc5f203b7332817bc7833b39 + languageName: node + linkType: hard + +"detect-newline@npm:^2.1.0": + version: 2.1.0 + resolution: "detect-newline@npm:2.1.0" + checksum: 634e4a25406321b203b33ae5123c1f2091d94509d6979448081b9256c1078cec9ca5c12eee16164be79f6cbbd56c2e2232fca541e2edf3c8d374efe661e5b44a + languageName: node + linkType: hard + "detect-newline@npm:^3.0.0": version: 3.1.0 resolution: "detect-newline@npm:3.1.0" @@ -7954,7 +7890,7 @@ __metadata: languageName: node linkType: hard -"detective@npm:^5.2.0": +"detective@npm:^5.0.2": version: 5.2.0 resolution: "detective@npm:5.2.0" dependencies: @@ -7977,6 +7913,13 @@ __metadata: languageName: node linkType: hard +"diff-sequences@npm:^24.9.0": + version: 24.9.0 + resolution: "diff-sequences@npm:24.9.0" + checksum: 049107ba804c3a332fe7edefd1cec8df33a18a99c6af77f88b3b9d22b5ee2e1940dbde23b97f97b0d7250a98f8c488c3ba552ebab54dc75c9542c1e90232d009 + languageName: node + linkType: hard + "diff-sequences@npm:^25.2.6": version: 25.2.6 resolution: "diff-sequences@npm:25.2.6" @@ -8114,17 +8057,17 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:1.3.377": - version: 1.3.377 - resolution: "electron-to-chromium@npm:1.3.377" - checksum: f30ebcd31547f1dc7a4f462f7e74d5bf1545ef27eeaed13a015244814d2047c4061c09f6ee99cc5c2a7192eaf585398a1b579579b41656f391d791de1ec16ccd +"electron-to-chromium@npm:1.3.513": + version: 1.3.513 + resolution: "electron-to-chromium@npm:1.3.513" + checksum: f74b3b97095c669c86e879eb17b1877dc0a8948c87b92895d18e9d2df3f7b8ffdaed7b7a14c2c171838173ad5b28c1279788198868ce097418521ba0ed560c44 languageName: node linkType: hard "electron-to-chromium@npm:^1.3.413": - version: 1.3.432 - resolution: "electron-to-chromium@npm:1.3.432" - checksum: 3913bed291a6c03fdafb156e1f9044c7a46cb71b5a33d2419aaa1a00a29762335affcca0aac66b7ae3c943de36176c9d10f1b2fcbf6b8f1d7eade2c3ebe292cf + version: 1.3.460 + resolution: "electron-to-chromium@npm:1.3.460" + checksum: 5fcc2fd898f0487ee1ad6576c10072f0d797d610146f57c4b39edd409b03ab09b38242c7a4d259c7f1efb58aa6b5a8948b8f226a30525458988ce82fc4b1e207 languageName: node linkType: hard @@ -8135,9 +8078,9 @@ __metadata: languageName: node linkType: hard -"elliptic@npm:^6.0.0, elliptic@npm:^6.5.2": - version: 6.5.2 - resolution: "elliptic@npm:6.5.2" +"elliptic@npm:^6.0.0": + version: 6.5.3 + resolution: "elliptic@npm:6.5.3" dependencies: bn.js: ^4.4.0 brorand: ^1.0.1 @@ -8146,7 +8089,7 @@ __metadata: inherits: ^2.0.1 minimalistic-assert: ^1.0.0 minimalistic-crypto-utils: ^1.0.0 - checksum: 84df133c94a0985c359a5f0a45a27f8208b5dcbc486e5557480fcbf6d50041e3bccb0de7ab4b021f313755bf8657a79f53ff67c555203eecb6d81bfc10292825 + checksum: b66cf0b8f8d9a4d47992e6f0b754cbe4c0681b78b7d6691529c99fc79d8a87069f354a665a528c4bdd0327e1d937c617f9bb2fef1aa92761e4c2b7f73200af38 languageName: node linkType: hard @@ -8194,6 +8137,22 @@ __metadata: languageName: node linkType: hard +"enquirer@npm:^2.3.5": + version: 2.3.6 + resolution: "enquirer@npm:2.3.6" + dependencies: + ansi-colors: ^4.1.1 + checksum: e249bb97bf7d5a91d51081547ea5aa1d849604e5de74feff2c48f7174fc6c9dfcfeea42ef5536e9a3be58964a248c322d6897269ae7bba3e1b6d24f152d9d685 + languageName: node + linkType: hard + +"env-paths@npm:^1.0.0": + version: 1.0.0 + resolution: "env-paths@npm:1.0.0" + checksum: 07d20b3b75bca602c5333e21fb12751e38a7f3f345996dde3a86ef6abe198f2bee35302b6ab7ac5f3bfa348a9517d108bfb1e710e9666f93aac2e2e7ff97f6c8 + languageName: node + linkType: hard + "env-paths@npm:^2.2.0": version: 2.2.0 resolution: "env-paths@npm:2.2.0" @@ -8201,15 +8160,6 @@ __metadata: languageName: node linkType: hard -"envinfo@npm:^7.3.1": - version: 7.5.1 - resolution: "envinfo@npm:7.5.1" - bin: - envinfo: dist/cli.js - checksum: 0c3a8c1deb2c855298d56d21bc1f2b6065b34f2bc6e85a2b5aa85148d1b215bd0544ed91683f2e2f6543ee2df2c717713d67b4f2a66742ba4f382c789e372810 - languageName: node - linkType: hard - "err-code@npm:^1.0.0": version: 1.1.2 resolution: "err-code@npm:1.1.2" @@ -8237,22 +8187,22 @@ __metadata: languageName: node linkType: hard -"es-abstract@npm:^1.17.0, es-abstract@npm:^1.17.0-next.1, es-abstract@npm:^1.17.5": - version: 1.17.5 - resolution: "es-abstract@npm:1.17.5" +"es-abstract@npm:^1.17.0, es-abstract@npm:^1.17.0-next.1, es-abstract@npm:^1.17.5, es-abstract@npm:^1.4.3, es-abstract@npm:^1.5.1": + version: 1.17.6 + resolution: "es-abstract@npm:1.17.6" dependencies: es-to-primitive: ^1.2.1 function-bind: ^1.1.1 has: ^1.0.3 has-symbols: ^1.0.1 - is-callable: ^1.1.5 - is-regex: ^1.0.5 + is-callable: ^1.2.0 + is-regex: ^1.1.0 object-inspect: ^1.7.0 object-keys: ^1.1.1 object.assign: ^4.1.0 - string.prototype.trimleft: ^2.1.1 - string.prototype.trimright: ^2.1.1 - checksum: 83b0ce528072f37174182548d73e18d1b02fa6bddf0d675e81de77b23f4c6f4908f4d1bd5835fcae9f5d91051533afafd841482dafa21b111eaf52160a08b837 + string.prototype.trimend: ^1.0.1 + string.prototype.trimstart: ^1.0.1 + checksum: 637ad488bdcbc538dfb35ee30cdbe5e48ecf68c5145a368c8f1be346e83d2555e416709e9382eb9902e542da94763cdd2152d87dbbb01b5b39919c1329bd0bb4 languageName: node linkType: hard @@ -8371,18 +8321,30 @@ __metadata: languageName: node linkType: hard -"escape-string-regexp@npm:^4.0.0": - version: 4.0.0 - resolution: "escape-string-regexp@npm:4.0.0" - checksum: c747be8d5ff7873127e3e0cffe7d2206a37208077fa9c30a3c1bb4f26bebd081c8c24d5fba7a99449f9d20670bea3dc5e1b6098b0f074b099bd38766271a272f +"escodegen@npm:^1.11.1": + version: 1.14.3 + resolution: "escodegen@npm:1.14.3" + dependencies: + esprima: ^4.0.1 + estraverse: ^4.2.0 + esutils: ^2.0.2 + optionator: ^0.8.1 + source-map: ~0.6.1 + dependenciesMeta: + source-map: + optional: true + bin: + escodegen: bin/escodegen.js + esgenerate: bin/esgenerate.js + checksum: 548c5a83a81a51122f1006309a392e1412bb00657f15aca60f01f9d4553851bdaf0519d898fd3ee2bb46f116e03ee48757f4d9a28a7b58bc8c096fd4b33f6cbc languageName: node linkType: hard -"escodegen@npm:^1.11.1": - version: 1.14.1 - resolution: "escodegen@npm:1.14.1" +"escodegen@npm:^1.9.1": + version: 1.12.0 + resolution: "escodegen@npm:1.12.0" dependencies: - esprima: ^4.0.1 + esprima: ^3.1.3 estraverse: ^4.2.0 esutils: ^2.0.2 optionator: ^0.8.1 @@ -8393,7 +8355,7 @@ __metadata: bin: escodegen: ./bin/escodegen.js esgenerate: ./bin/esgenerate.js - checksum: 97e0500474c885163aaeb3fa32e86c688a73feb641e23c3498e912ea638ba0770e6103dd7dc51ea2cc03fbb906bfafaa219d202a8a43f23037aa86e0c1dbfc2a + checksum: 79c1285cd53d5f60e95a726c59b7d9c64533503a1e0b508f35a1725bbc03cbcff160cd68e6714d29c6f0197b0e90d4a4553aed0549438aa8db7f96fca0910d83 languageName: node linkType: hard @@ -8409,7 +8371,7 @@ __metadata: languageName: node linkType: hard -"eslint-import-resolver-node@npm:^0.3.2, eslint-import-resolver-node@npm:^0.3.3": +"eslint-import-resolver-node@npm:^0.3.3": version: 0.3.3 resolution: "eslint-import-resolver-node@npm:0.3.3" dependencies: @@ -8419,7 +8381,7 @@ __metadata: languageName: node linkType: hard -"eslint-module-utils@npm:^2.4.1": +"eslint-module-utils@npm:^2.6.0": version: 2.6.0 resolution: "eslint-module-utils@npm:2.6.0" dependencies: @@ -8430,58 +8392,59 @@ __metadata: linkType: hard "eslint-plugin-flowtype@npm:^4.6.0": - version: 4.7.0 - resolution: "eslint-plugin-flowtype@npm:4.7.0" + version: 4.6.0 + resolution: "eslint-plugin-flowtype@npm:4.6.0" dependencies: lodash: ^4.17.15 peerDependencies: eslint: ">=6.1.0" - checksum: 2a1e799bcf92a620de1cc4fe143e1a10de4c1d18728a2082e8ca8632b238437d4119b6a395008aebf01dca563ffe9352acf1d8e483f68135f6ad055490fa26a9 + checksum: 2a20f898f360527828487134050bfaad7d9e4b153abdcc1c5641b55e219a7d0a3d1c8303e18ade81f22877e2f195126c5c740b6da25b87e02b60e72c950944ca languageName: node linkType: hard -"eslint-plugin-import@npm:^2.20.1": - version: 2.20.2 - resolution: "eslint-plugin-import@npm:2.20.2" +"eslint-plugin-import@npm:^2.22.0": + version: 2.22.0 + resolution: "eslint-plugin-import@npm:2.22.0" dependencies: - array-includes: ^3.0.3 - array.prototype.flat: ^1.2.1 + array-includes: ^3.1.1 + array.prototype.flat: ^1.2.3 contains-path: ^0.1.0 debug: ^2.6.9 doctrine: 1.5.0 - eslint-import-resolver-node: ^0.3.2 - eslint-module-utils: ^2.4.1 + eslint-import-resolver-node: ^0.3.3 + eslint-module-utils: ^2.6.0 has: ^1.0.3 minimatch: ^3.0.4 - object.values: ^1.1.0 + object.values: ^1.1.1 read-pkg-up: ^2.0.0 - resolve: ^1.12.0 + resolve: ^1.17.0 + tsconfig-paths: ^3.9.0 peerDependencies: - eslint: 2.x - 6.x - checksum: be55da3d409d24a5b21b9d999271c7c9080bc9c3547743d5897663a1d59a14ceac6be70f3d89ef5a997009d3c661189c63d7c9e8889c140b3cef0dbe03b37eea + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 + checksum: ad41aec63d8986e0a0e279bb2877e1f36029573b8f310112159509fd52d7344a2e91bd4bb9c6d2b131838a3538a0bc5e3998217df1b88304df9872ad9fb30c84 languageName: node linkType: hard "eslint-plugin-jest@npm:^23.8.2": - version: 23.10.0 - resolution: "eslint-plugin-jest@npm:23.10.0" + version: 23.8.2 + resolution: "eslint-plugin-jest@npm:23.8.2" dependencies: "@typescript-eslint/experimental-utils": ^2.5.0 peerDependencies: eslint: ">=5" - checksum: 9eee7030f23c0d23edb6f6bd032b25889497d5473e99e98e3f9b41e3213d462cacf0cfe6b913dd686a553d43d095756fba4aa6f4297086bf2c8aeb6bdf028d18 + checksum: eec0f788a98f3c6b962e47533a421a15e2cc6e74fd971ae890ac322446a7b964775b8eb781898ac45d0508f25922765e0dc118d4c4385e6ca3281db104d036ee languageName: node linkType: hard "eslint-plugin-prettier@npm:^3.1.2": - version: 3.1.3 - resolution: "eslint-plugin-prettier@npm:3.1.3" + version: 3.1.2 + resolution: "eslint-plugin-prettier@npm:3.1.2" dependencies: prettier-linter-helpers: ^1.0.0 peerDependencies: eslint: ">= 5.0.0" prettier: ">= 1.13.0" - checksum: fcaf7c783309145f46611b43156fc51c31b02055d0eb09d7ab29d9ad085d34ad492bf2e611804396fcebf0122b259019b6ec24c3d60a4c7a316db9e45f952c32 + checksum: 6f22a63a79ac09dbb6784898de51319a5766437c65eb4d9eac94b7442d983cb551a518725b5555caddd4e015e0ec561497cbd88c575f65722006609fee5487f7 languageName: node linkType: hard @@ -8492,163 +8455,96 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:5.0.0, eslint-scope@npm:^5.0.0": - version: 5.0.0 - resolution: "eslint-scope@npm:5.0.0" - dependencies: - esrecurse: ^4.1.0 - estraverse: ^4.1.1 - checksum: 296e85c180bc81b7c0f500f1aae68e92529059f4a13af3e4b7fe66be8469ada7fd1fb409a06a744853a8b7116a5af34620cae70f0255f0dd1bf5e764a342c67e - languageName: node - linkType: hard - -"eslint-scope@npm:^4.0.3": - version: 4.0.3 - resolution: "eslint-scope@npm:4.0.3" +"eslint-scope@npm:5.1.0, eslint-scope@npm:^5.0.0, eslint-scope@npm:^5.1.0": + version: 5.1.0 + resolution: "eslint-scope@npm:5.1.0" dependencies: esrecurse: ^4.1.0 estraverse: ^4.1.1 - checksum: 49635cf9d936af317b9fa89cf98f30719ec9e287e5532c300cbab8015a1920b7ace495ffadaefd0ac86617ce85c17717f0ef1899f66536dca12aa85f1899899d - languageName: node - linkType: hard - -"eslint-utils@npm:^1.3.1, eslint-utils@npm:^1.4.3": - version: 1.4.3 - resolution: "eslint-utils@npm:1.4.3" - dependencies: - eslint-visitor-keys: ^1.1.0 - checksum: 4a7ede9e723a859a8805bd1ae73681c99323be0da90d37799796ec564cc6c3326d57ac80f91667737abc45383170a3a90653e13c00c7368b3af9be0cec662b4c + checksum: 4a0e97979a855d09c4bb3a3f4f945cefaf8f6638a6a8f49472cefb0cf64982ab7ed1683a1e63d20ce1bcb01f94c133dc7a5bdf03b28eb945999f50f08878a2b4 languageName: node linkType: hard -"eslint-utils@npm:^2.0.0": - version: 2.0.0 - resolution: "eslint-utils@npm:2.0.0" +"eslint-utils@npm:^2.1.0": + version: 2.1.0 + resolution: "eslint-utils@npm:2.1.0" dependencies: eslint-visitor-keys: ^1.1.0 - checksum: 37962274e6a40937f2cb95431d1ee241cef8a85867aad389a353825caad2df307cc23c13c5f63cb4c5868f40fc932330ed395f6827f79edcd0181b927d5fadb2 + checksum: a43892372a4205374982ac9d4c8edc5fe180cba76535ab9184c48f18a3d931b7ffdd6862cb2f8ca4305c47eface0e614e39884a75fbf169fcc55a6131af2ec48 languageName: node linkType: hard -"eslint-visitor-keys@npm:^1.0.0, eslint-visitor-keys@npm:^1.1.0": - version: 1.1.0 - resolution: "eslint-visitor-keys@npm:1.1.0" - checksum: 4bcd3d91e6b15ea771a0eb4a56631b384ce649145f43d23e865a695b07e197c276019098823d744d454d4e5e406a6eb7995c26310ee5d6ed3fe8d189f944440c +"eslint-visitor-keys@npm:^1.1.0, eslint-visitor-keys@npm:^1.3.0": + version: 1.3.0 + resolution: "eslint-visitor-keys@npm:1.3.0" + checksum: 58ab7a0107621d8a0fe19142a5e1306fd527c0f36b65d5c79033639e80278d8060264804f42c56f68e5541c4cc83d9175f9143083774cec8222f6cd5a695306e languageName: node linkType: hard -"eslint@npm:^5.9.0": - version: 5.16.0 - resolution: "eslint@npm:5.16.0" +"eslint@npm:^7.5.0": + version: 7.5.0 + resolution: "eslint@npm:7.5.0" dependencies: "@babel/code-frame": ^7.0.0 - ajv: ^6.9.1 - chalk: ^2.1.0 - cross-spawn: ^6.0.5 + ajv: ^6.10.0 + chalk: ^4.0.0 + cross-spawn: ^7.0.2 debug: ^4.0.1 doctrine: ^3.0.0 - eslint-scope: ^4.0.3 - eslint-utils: ^1.3.1 - eslint-visitor-keys: ^1.0.0 - espree: ^5.0.1 - esquery: ^1.0.1 + enquirer: ^2.3.5 + eslint-scope: ^5.1.0 + eslint-utils: ^2.1.0 + eslint-visitor-keys: ^1.3.0 + espree: ^7.2.0 + esquery: ^1.2.0 esutils: ^2.0.2 file-entry-cache: ^5.0.1 functional-red-black-tree: ^1.0.1 - glob: ^7.1.2 - globals: ^11.7.0 + glob-parent: ^5.0.0 + globals: ^12.1.0 ignore: ^4.0.6 import-fresh: ^3.0.0 imurmurhash: ^0.1.4 - inquirer: ^6.2.2 - js-yaml: ^3.13.0 + is-glob: ^4.0.0 + js-yaml: ^3.13.1 json-stable-stringify-without-jsonify: ^1.0.1 - levn: ^0.3.0 - lodash: ^4.17.11 + levn: ^0.4.1 + lodash: ^4.17.19 minimatch: ^3.0.4 - mkdirp: ^0.5.1 natural-compare: ^1.4.0 - optionator: ^0.8.2 - path-is-inside: ^1.0.2 + optionator: ^0.9.1 progress: ^2.0.0 - regexpp: ^2.0.1 - semver: ^5.5.1 - strip-ansi: ^4.0.0 - strip-json-comments: ^2.0.1 - table: ^5.2.3 - text-table: ^0.2.0 - bin: - eslint: ./bin/eslint.js - checksum: 420ee3bc29782f325b44e5ef747525b120836954c94caeb2314ec127508e64105125ad71a7c68f4cac0b6a27573e8cf87b17d3ee292e96fc23feacd3e00ab931 - languageName: node - linkType: hard - -"eslint@npm:^6.0.0, eslint@npm:^6.0.1, eslint@npm:^6.8.0": - version: 6.8.0 - resolution: "eslint@npm:6.8.0" - dependencies: - "@babel/code-frame": ^7.0.0 - ajv: ^6.10.0 - chalk: ^2.1.0 - cross-spawn: ^6.0.5 - debug: ^4.0.1 - doctrine: ^3.0.0 - eslint-scope: ^5.0.0 - eslint-utils: ^1.4.3 - eslint-visitor-keys: ^1.1.0 - espree: ^6.1.2 - esquery: ^1.0.1 - esutils: ^2.0.2 - file-entry-cache: ^5.0.1 - functional-red-black-tree: ^1.0.1 - glob-parent: ^5.0.0 - globals: ^12.1.0 - ignore: ^4.0.6 - import-fresh: ^3.0.0 - imurmurhash: ^0.1.4 - inquirer: ^7.0.0 - is-glob: ^4.0.0 - js-yaml: ^3.13.1 - json-stable-stringify-without-jsonify: ^1.0.1 - levn: ^0.3.0 - lodash: ^4.17.14 - minimatch: ^3.0.4 - mkdirp: ^0.5.1 - natural-compare: ^1.4.0 - optionator: ^0.8.3 - progress: ^2.0.0 - regexpp: ^2.0.1 - semver: ^6.1.2 - strip-ansi: ^5.2.0 - strip-json-comments: ^3.0.1 + regexpp: ^3.1.0 + semver: ^7.2.1 + strip-ansi: ^6.0.0 + strip-json-comments: ^3.1.0 table: ^5.2.3 text-table: ^0.2.0 v8-compile-cache: ^2.0.3 bin: - eslint: ./bin/eslint.js - checksum: 796be0e038188d4cd8062541394d29f35606a7cee00cead5f6c8e3f9db932f0d19ee946df16fd593e0bcd614f896a416afa916bf82d9420576537ac349f2a06d + eslint: bin/eslint.js + checksum: 5a65f133db997f39e48082636496e11db168c7385839111b2ecbb9d4fa16d9eaeae9a88f0317ddcc5118fe388c2907ab0f302c752fb36e56ace6e3660070ea42 languageName: node linkType: hard -"espree@npm:^5.0.1": - version: 5.0.1 - resolution: "espree@npm:5.0.1" +"espree@npm:^7.2.0": + version: 7.2.0 + resolution: "espree@npm:7.2.0" dependencies: - acorn: ^6.0.7 - acorn-jsx: ^5.0.0 - eslint-visitor-keys: ^1.0.0 - checksum: 577bc6fc8a2a697ec60abe05db9c6b19229ed5964d4ad0071fd9c3d5990edc4050c5ac522b5cdc944769d23ad213c492b5a4ee33afa4ee05b6b5f37c1673e2f5 + acorn: ^7.3.1 + acorn-jsx: ^5.2.0 + eslint-visitor-keys: ^1.3.0 + checksum: 51bdb836f47a360ea4fd1a28cf7df1974f2be93abd5cf707cfbedcb15fb6591d26f6dc345d3cb07c4b1df7c5435e50d4b2fdf2a0ed4d63175da8b2c83f06057b languageName: node linkType: hard -"espree@npm:^6.1.2": - version: 6.2.1 - resolution: "espree@npm:6.2.1" - dependencies: - acorn: ^7.1.1 - acorn-jsx: ^5.2.0 - eslint-visitor-keys: ^1.1.0 - checksum: 8651a6c1625436a5ff42b0927fb7c9cfa3f87697b9522251b87a343a26655e46d3ce6b03654ac53d4558b41070fef2cdcd1ec4a73cc633661ea40aa1cefdb5e5 +"esprima@npm:^3.1.3": + version: 3.1.3 + resolution: "esprima@npm:3.1.3" + bin: + esparse: ./bin/esparse.js + esvalidate: ./bin/esvalidate.js + checksum: fd1e7e0a8f7a41a17480852b6e37192566987a28aa495df041b2d1fef1751fd7421129f3111c69571cdbd3c34e3a9a8c242c3190b86b487db1a1ced70d6fe29e languageName: node linkType: hard @@ -8662,7 +8558,7 @@ __metadata: languageName: node linkType: hard -"esquery@npm:^1.0.1": +"esquery@npm:^1.2.0": version: 1.3.1 resolution: "esquery@npm:1.3.1" dependencies: @@ -8831,6 +8727,20 @@ __metadata: languageName: node linkType: hard +"expect@npm:^24.9.0": + version: 24.9.0 + resolution: "expect@npm:24.9.0" + dependencies: + "@jest/types": ^24.9.0 + ansi-styles: ^3.2.0 + jest-get-type: ^24.9.0 + jest-matcher-utils: ^24.9.0 + jest-message-util: ^24.9.0 + jest-regex-util: ^24.9.0 + checksum: fc060faa7fe1dbd9c6eb71e237511dd56fba70f2ea1f1b17027855923d16f10df59ff809fe0359812e5c7f1eb3537729eaf9cfbb463c31417d29dce0fba37726 + languageName: node + linkType: hard + "expect@npm:^25.5.0": version: 25.5.0 resolution: "expect@npm:25.5.0" @@ -8882,7 +8792,7 @@ __metadata: languageName: node linkType: hard -"extend@npm:^3.0.0, extend@npm:~3.0.2": +"extend@npm:3.0.2, extend@npm:^3.0.0, extend@npm:~3.0.2": version: 3.0.2 resolution: "extend@npm:3.0.2" checksum: 1406da1f0c4b00b839497e4cdd0ec4303ce2ae349144b7c28064a5073c93ce8c08da4e8fb1bc5cb459ffcdff30a35fc0fe54344eb88320e70100c1baea6f195c @@ -8916,22 +8826,29 @@ __metadata: languageName: node linkType: hard -"extsprintf@npm:1.3.0, extsprintf@npm:^1.2.0": +"extsprintf@npm:1.3.0": version: 1.3.0 resolution: "extsprintf@npm:1.3.0" checksum: 892efd56aa9b27cbfbca42ad0c59308633f66000e71d1fb19c6989ea7309b32f3ff281778871bd2ce9bc7f3ad02515aa2783cea0323d0f6ff840b7c6a6a4603e languageName: node linkType: hard +"extsprintf@npm:^1.2.0": + version: 1.4.0 + resolution: "extsprintf@npm:1.4.0" + checksum: 092e011574324c5cddd78b5a27f869c2703613c1140eb7763aef8f5b0e33769a9b4c7dbcc50acd39b6afebe79bf66adcec73bf3c84e095c5bcfb42306d128ad0 + languageName: node + linkType: hard + "falafel@npm:^2.1.0": - version: 2.2.4 - resolution: "falafel@npm:2.2.4" + version: 2.1.0 + resolution: "falafel@npm:2.1.0" dependencies: - acorn: ^7.1.1 + acorn: ^5.0.0 foreach: ^2.0.5 - isarray: ^2.0.1 + isarray: 0.0.1 object-keys: ^1.0.6 - checksum: a58cbe6359d3b118a03d91196d11b280c3a04586cc9b9ad239aaa51e11b2593a0786c58f14c94869bd8c1b9130a8ec20807f464e16e6d2f1eac405a6e53102bd + checksum: 4ff982fde58a8d320578af64c52299945f06cdf486bf5d9b641036b6698d6eaf3329d667791e001c690f5ce561c368bf7944f608ae0cbbc61aac7ed578f846a2 languageName: node linkType: hard @@ -8947,10 +8864,17 @@ __metadata: languageName: node linkType: hard +"fast-deep-equal@npm:^2.0.1": + version: 2.0.1 + resolution: "fast-deep-equal@npm:2.0.1" + checksum: ad315b79abe335f25271821447bdbbca5d7a6e5930da498fbb2628d28399e958a679adddbb665f5b2943bfd83d9dd375ac5fb45e9004c9516177008ebb7efc16 + languageName: node + linkType: hard + "fast-deep-equal@npm:^3.1.1": - version: 3.1.1 - resolution: "fast-deep-equal@npm:3.1.1" - checksum: 38fe57c5ea7dbb42cf84f5d94166358b930beb49345619205ff16c4a0c896f8679a444f0fbd0f352a633f2ea800673173e2a150d81d3d85933d714d24498c688 + version: 3.1.3 + resolution: "fast-deep-equal@npm:3.1.3" + checksum: 451526766b219503131d11e823eaadd1533080b0be4860e316670b039dcaf31cd1007c2fe036a9b922abba7c040dfad5e942ed79d21f2ff849e50049f36e0fb7 languageName: node linkType: hard @@ -8976,27 +8900,26 @@ __metadata: linkType: hard "fast-glob@npm:^3.0.3": - version: 3.2.2 - resolution: "fast-glob@npm:3.2.2" + version: 3.1.1 + resolution: "fast-glob@npm:3.1.1" dependencies: "@nodelib/fs.stat": ^2.0.2 "@nodelib/fs.walk": ^1.2.3 glob-parent: ^5.1.0 merge2: ^1.3.0 micromatch: ^4.0.2 - picomatch: ^2.2.1 - checksum: be3e4862756ca07414f45fc9c7c4e19657482793f98101a07b226a6b76f35dda8226f645a5cf0d6fa5a0b28b400b3776e94bdc1e36010bfe288200090053d1ec + checksum: 74bc2df1287f12a1e69127c9ba3599d622c662b617431de1598e1d80f4bd427f553e76e25651d48a6b21615cdd921b4c32f8b1e74590d890e4c8cd6ef912df38 languageName: node linkType: hard "fast-json-stable-stringify@npm:^2.0.0": - version: 2.1.0 - resolution: "fast-json-stable-stringify@npm:2.1.0" - checksum: 7df3fabfe445d65953b2d9d9d3958bd895438b215a40fb87dae8b2165c5169a897785eb5d51e6cf0eb03523af756e3d82ea01083f6ac6341fe16db532fee3016 + version: 2.0.0 + resolution: "fast-json-stable-stringify@npm:2.0.0" + checksum: 6e7fe3b81314f96510fa335fd477858901497edade753f9a0c87201eb78189347346eed346a95608e882c1c41594736afd3fcf0bc6c3a8bacc69d76ed5f481af languageName: node linkType: hard -"fast-levenshtein@npm:~2.0.6": +"fast-levenshtein@npm:^2.0.6, fast-levenshtein@npm:~2.0.6": version: 2.0.6 resolution: "fast-levenshtein@npm:2.0.6" checksum: a2d03af3088b0397633e007fb3010ecfa4f91cae2116d2385653c59396a1b31467641afa672a79e6f82218518670dc144128378124e711e35dbf90bc82846f22 @@ -9011,11 +8934,11 @@ __metadata: linkType: hard "fastq@npm:^1.6.0": - version: 1.7.0 - resolution: "fastq@npm:1.7.0" + version: 1.6.0 + resolution: "fastq@npm:1.6.0" dependencies: - reusify: ^1.0.4 - checksum: 593e095ca627c6a07831f115a724963ba8ec21052ee8421339e9143a8edfe75008424be545afcae804a8dd8d2062629e6245e0d5ed722e1256e0b9588816f135 + reusify: ^1.0.0 + checksum: c33b194bc3429c9f5dda2a3e42bbb366ceb8a9d4de413075fcfa59699b33b684a4fe563820928dfc57af7d0a5830929f607038c9a55f6c9f2a05b9cb9e3fcb52 languageName: node linkType: hard @@ -9029,9 +8952,9 @@ __metadata: linkType: hard "figgy-pudding@npm:^3.4.1, figgy-pudding@npm:^3.5.1": - version: 3.5.2 - resolution: "figgy-pudding@npm:3.5.2" - checksum: 737645f602631734ad53b7445128e255939f809565350b376b3b8fad7673f37c82525a16463f176643ff4b989bb79ed0ecc18111a364ead1082a74c99195a6ca + version: 3.5.1 + resolution: "figgy-pudding@npm:3.5.1" + checksum: 0de1a571974d6e9d35bd39bd917eefa1467fb5f98e59955422259b6b8a3031f01f4c6442f98c2a4dc3c2c51e8587b324463b8e985c4a38b5443233ccd36333e5 languageName: node linkType: hard @@ -9054,15 +8977,6 @@ __metadata: languageName: node linkType: hard -"figures@npm:^3.0.0": - version: 3.2.0 - resolution: "figures@npm:3.2.0" - dependencies: - escape-string-regexp: ^1.0.5 - checksum: 6c8acb1c17c4d27eeb6ff06801b5ae39a999c4794ec50eacf858a1e32746d92af77a9a907c3e1865e2e6ac7d9f1aa765f0f8a01a16a4676b79b6e90a7cc23f44 - languageName: node - linkType: hard - "file-entry-cache@npm:^5.0.1": version: 5.0.1 resolution: "file-entry-cache@npm:5.0.1" @@ -9072,13 +8986,6 @@ __metadata: languageName: node linkType: hard -"file-uri-to-path@npm:1.0.0": - version: 1.0.0 - resolution: "file-uri-to-path@npm:1.0.0" - checksum: 5ddb9682f04f6f87b7765b93306206db2f96bc86162487e27639c55fe3ffeed12c30906ef1dedaa5307d7cabbbbdcbfa299b79aaec435de0f17e17ab31bd20b3 - languageName: node - linkType: hard - "fill-range@npm:^4.0.0": version: 4.0.0 resolution: "fill-range@npm:4.0.0" @@ -9111,17 +9018,6 @@ __metadata: languageName: node linkType: hard -"find-cache-dir@npm:^3.2.0": - version: 3.3.1 - resolution: "find-cache-dir@npm:3.3.1" - dependencies: - commondir: ^1.0.1 - make-dir: ^3.0.2 - pkg-dir: ^4.1.0 - checksum: b1e23226ee89fba89646aa5f72d084c6d04bb64f6d523c9cb2d57a1b5280fcac39e92fd5be572e2fae8a83aa70bc5b797ce33a826b9a4b92373cc38e66d4aa64 - languageName: node - linkType: hard - "find-up@npm:^1.0.0": version: 1.1.2 resolution: "find-up@npm:1.1.2" @@ -9225,9 +9121,9 @@ __metadata: linkType: hard "flatted@npm:^2.0.0": - version: 2.0.2 - resolution: "flatted@npm:2.0.2" - checksum: a3e5fb71ad3c4f0661cd3899864812bcf3f64bdf6aa5f33f967c9c2a8a5f0c7219707e864c0602115fef40e093415f76a43e77afd0a86990904e2217ddb44eb4 + version: 2.0.1 + resolution: "flatted@npm:2.0.1" + checksum: dd5140cc40a5c5457f024c6b7193e8581e15c0401c874cf8705b350c2f152f24c5b1794dfebf664bbce5542a4d861b5b96d0d55bf40b7cf708b22885f4bd8b8c languageName: node linkType: hard @@ -9330,6 +9226,15 @@ __metadata: languageName: node linkType: hard +"fs-minipass@npm:^2.0.0": + version: 2.1.0 + resolution: "fs-minipass@npm:2.1.0" + dependencies: + minipass: ^3.0.0 + checksum: e14a490658621cf1f7d8cbf9e92a9cc4dc7ce050418e4817e877e4531c438223db79f7a1774668087428d665a3de95f87014ce36c8afdc841fea42bcb782abcb + languageName: node + linkType: hard + "fs-mkdirp-stream@npm:^1.0.0": version: 1.0.0 resolution: "fs-mkdirp-stream@npm:1.0.0" @@ -9367,16 +9272,16 @@ __metadata: linkType: hard fsevents@^1.2.7: - version: 1.2.13 - resolution: "fsevents@npm:1.2.13" + version: 1.2.9 + resolution: "fsevents@npm:1.2.9" dependencies: - bindings: ^1.5.0 nan: ^2.12.1 - checksum: e70509558b5f49ce9dfacb8f9e2848c6e6751a61966027789561145a9c4ae9ba4c6b28b531bc8b4ae52fdd2d4c90a3bf314e6794717e51838b27910bb41ce588 + node-pre-gyp: ^0.12.0 + checksum: 50f56363fcfe256e21abf9bbbbafa16c462aba768efaca55cdd8c45b59c522ab771b190891354664b47f05e8a342da0bb0bd44bb1222bd8cf1edbea2e6943b88 languageName: node linkType: hard -"fsevents@^2.1.2, fsevents@~2.1.2": +fsevents@^2.1.2: version: 2.1.3 resolution: "fsevents@npm:2.1.3" dependencies: @@ -9386,16 +9291,16 @@ fsevents@^1.2.7: linkType: hard "fsevents@patch:fsevents@^1.2.7#builtin": - version: 1.2.13 - resolution: "fsevents@patch:fsevents@npm%3A1.2.13#builtin::version=1.2.13&hash=495457" + version: 1.2.9 + resolution: "fsevents@patch:fsevents@npm%3A1.2.9#builtin::version=1.2.9&hash=495457" dependencies: - bindings: ^1.5.0 nan: ^2.12.1 - checksum: 508a7e7e1e365236a7a0478392827145ba05c0181b1928b73b20c1a5212d15f6529735db897d617d7b0b051248c5720160f74c113bd727fc02de4f6cf885e1ff + node-pre-gyp: ^0.12.0 + checksum: 1a1f4169d63b7bf59df8de1fd35977fd97c0fa82c867a9835e5053c1f0fae86bb8d8dd535eaca94a43f23ed06297fa8c9f602e9532dc7d384ce11a3eaf4d50bb languageName: node linkType: hard -"fsevents@patch:fsevents@^2.1.2#builtin, fsevents@patch:fsevents@~2.1.2#builtin": +"fsevents@patch:fsevents@^2.1.2#builtin": version: 2.1.3 resolution: "fsevents@patch:fsevents@npm%3A2.1.3#builtin::version=2.1.3&hash=495457" dependencies: @@ -9404,7 +9309,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"function-bind@npm:^1.1.1": +"function-bind@npm:^1.0.2, function-bind@npm:^1.1.1": version: 1.1.1 resolution: "function-bind@npm:1.1.1" checksum: ffad86e7d2010ba179aaa6a3987d2cc0ed48fa92d27f1ed84bfa06d14f77deeed5bfbae7f00bdebc0c54218392cab2b18ecc080e2c72f592431927b87a27d42b @@ -9470,9 +9375,16 @@ fsevents@^1.2.7: linkType: hard "get-own-enumerable-property-symbols@npm:^3.0.0": - version: 3.0.2 - resolution: "get-own-enumerable-property-symbols@npm:3.0.2" - checksum: 23f13946c768d9803a8e072ba13a4250528ced6bd5af4b4b31306eb197281f01a6426936b24b16725ff0e55f9097475296e4bcdb6d33455989683c3d385079ce + version: 3.0.1 + resolution: "get-own-enumerable-property-symbols@npm:3.0.1" + checksum: 47809765344cf91d0ae768b04f8d47775a32206d6bd27c342ffd304cf2495381d9ed071c98b43b84e6799b2720841bca3b67f5e7c5f2c2cf12402cfed3660297 + languageName: node + linkType: hard + +"get-package-type@npm:^0.1.0": + version: 0.1.0 + resolution: "get-package-type@npm:0.1.0" + checksum: a5b8beaf68d8bcdb507e23b3d2b6458e54b9061e84e2a8a94b846c8e1d794beb47fdcbda895da16ae59225bb3ea1608c0719e4f986e8a987ec2f228eaf00d78b languageName: node linkType: hard @@ -9614,12 +9526,12 @@ fsevents@^1.2.7: languageName: node linkType: hard -"glob-parent@npm:^5.0.0, glob-parent@npm:^5.1.0, glob-parent@npm:~5.1.0": - version: 5.1.1 - resolution: "glob-parent@npm:5.1.1" +"glob-parent@npm:^5.0.0, glob-parent@npm:^5.1.0": + version: 5.1.0 + resolution: "glob-parent@npm:5.1.0" dependencies: is-glob: ^4.0.1 - checksum: 2af6e196fba4071fb07ba261366e446ba2b320e6db0a2069cf8e12117c5811abc6721f08546148048882d01120df47e56aa5a965517a6e5ba19bfeb792655119 + checksum: da8fb21548ae42b8707c1cda69998c2f714ae908a81dd4708dfb6ed98e93acc51ced4162afe6e3c843a631d489cdd83e21987c3a387b7102c275a29fbad6f1c5 languageName: node linkType: hard @@ -9700,14 +9612,23 @@ fsevents@^1.2.7: languageName: node linkType: hard -"globals@npm:^11.1.0, globals@npm:^11.7.0": +"globals@npm:^11.1.0": version: 11.12.0 resolution: "globals@npm:11.12.0" checksum: 2563d3306a7e646fd9ec484b0ca29bf8847d9dc6ebbe86026f11e31bda04f420f6536c2decbd4cb96350379801d2cce352ab373c40be8b024324775b31f882f9 languageName: node linkType: hard -"globals@npm:^12.1.0, globals@npm:^12.3.0": +"globals@npm:^12.1.0": + version: 12.3.0 + resolution: "globals@npm:12.3.0" + dependencies: + type-fest: ^0.8.1 + checksum: 9df75e1f0ef801281023a7932d1b12e1a71217dbe9d789f342b41ba9fa70181c85b496ef897577223c7e271a964d092cade1b9058e7a49be6aab0fdc9713a090 + languageName: node + linkType: hard + +"globals@npm:^12.3.0": version: 12.4.0 resolution: "globals@npm:12.4.0" dependencies: @@ -9717,8 +9638,8 @@ fsevents@^1.2.7: linkType: hard "globby@npm:^10.0.1": - version: 10.0.2 - resolution: "globby@npm:10.0.2" + version: 10.0.1 + resolution: "globby@npm:10.0.1" dependencies: "@types/glob": ^7.1.1 array-union: ^2.1.0 @@ -9728,7 +9649,7 @@ fsevents@^1.2.7: ignore: ^5.1.1 merge2: ^1.2.3 slash: ^3.0.0 - checksum: 53924c2b46f104d99a6b15da92b9f9f1e9f004bce745fdf56cf985afd615897bd6fd8fe01303f5758943e643c0885e8abaae0b5a596c13523c9431bf071c3f23 + checksum: f17a47eae09c3d1abaddbbb4e0a7e664dce6d24a9ae54c1d5a5b6082e7353eef232ec1059a2f8de7e33f71ef1d93fecda950136209d5f88881cdd0687b205fa3 languageName: node linkType: hard @@ -9757,7 +9678,14 @@ fsevents@^1.2.7: languageName: node linkType: hard -"graceful-fs@npm:^4.0.0, graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.1.9, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.2, graceful-fs@npm:^4.2.4": +"graceful-fs@npm:^4.0.0, graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.1.9, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.2": + version: 4.2.3 + resolution: "graceful-fs@npm:4.2.3" + checksum: 67b7e3f6a687c91287f17a2adfcce462406e2aa16ea4440618e1daaecd579ae6362c0b13303f86c77c165ed8074fa8b0868bb0a73173fa3407c2b747e89353f9 + languageName: node + linkType: hard + +"graceful-fs@npm:^4.2.3, graceful-fs@npm:^4.2.4": version: 4.2.4 resolution: "graceful-fs@npm:4.2.4" checksum: d095ee4dc6eacc76814cd52d5d185b860119378a6fd4888e7d4e94983095c54d4f6369942a5e3d759cdbdd4e3ee7eaeb27a39ff938c6ee4610894fd9de46b6cb @@ -9870,7 +9798,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"handlebars@npm:^4.7.6": +"handlebars@npm:^4.1.2, handlebars@npm:^4.7.6": version: 4.7.6 resolution: "handlebars@npm:4.7.6" dependencies: @@ -9895,7 +9823,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"har-validator@npm:~5.1.3": +"har-validator@npm:~5.1.0": version: 5.1.3 resolution: "har-validator@npm:5.1.3" dependencies: @@ -9905,6 +9833,16 @@ fsevents@^1.2.7: languageName: node linkType: hard +"har-validator@npm:~5.1.3": + version: 5.1.5 + resolution: "har-validator@npm:5.1.5" + dependencies: + ajv: ^6.12.3 + har-schema: ^2.0.0 + checksum: 01b905cdaa7632c926a962c8127a77b98387935ef3aa0b44dae871eae2592ba6da948a3bdbb3eeceb90fa1599300f16716e50147965a7ea7c4e7c4e57ac69727 + languageName: node + linkType: hard + "hard-rejection@npm:^2.1.0": version: 2.1.0 resolution: "hard-rejection@npm:2.1.0" @@ -9998,13 +9936,12 @@ fsevents@^1.2.7: linkType: hard "hash-base@npm:^3.0.0": - version: 3.1.0 - resolution: "hash-base@npm:3.1.0" + version: 3.0.4 + resolution: "hash-base@npm:3.0.4" dependencies: - inherits: ^2.0.4 - readable-stream: ^3.6.0 - safe-buffer: ^5.2.0 - checksum: 9f4b0d183daf13f79ef60f117efc7004bb3570de48fe2d3c7d03c546313490decb2dff2b08d71b8a0049a7de4b79eda16096c2a96f33a7f4916e7616bce4dc11 + inherits: ^2.0.1 + safe-buffer: ^5.0.1 + checksum: 488b5ab49d730892222642415fea3fa847934b13d159e31b9ccd55038bac711f33d48798174c2cdc247e097c665d4b159fdda424caf52626b9c5bd32c860a566 languageName: node linkType: hard @@ -10039,9 +9976,9 @@ fsevents@^1.2.7: linkType: hard "hosted-git-info@npm:^2.1.4, hosted-git-info@npm:^2.7.1": - version: 2.8.8 - resolution: "hosted-git-info@npm:2.8.8" - checksum: 3ecc389dc6ecbd5463fada7e04461e96f3c817fe2f989ca41e9dd3b503745a0bfa26fba405861b2831ca64edc1abc5d2fbc97ee977303f89650dac4fbfdc2d7a + version: 2.8.5 + resolution: "hosted-git-info@npm:2.8.5" + checksum: f2f8d862c7a3c181bec46a3bb3d7209b96b5d54afe23f6bf17c9a480610082a2cdadee92fc631212792afb8abdd51e0e63cc929c505f45cfea2bb372197f7b45 languageName: node linkType: hard @@ -10150,7 +10087,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"iconv-lite@npm:0.4.24, iconv-lite@npm:^0.4.24, iconv-lite@npm:~0.4.13": +"iconv-lite@npm:0.4.24, iconv-lite@npm:^0.4.24, iconv-lite@npm:^0.4.4, iconv-lite@npm:~0.4.13": version: 0.4.24 resolution: "iconv-lite@npm:0.4.24" dependencies: @@ -10287,7 +10224,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"inherits@npm:2, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.1, inherits@npm:~2.0.3": +"inherits@npm:2, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:~2.0.1, inherits@npm:~2.0.3": version: 2.0.4 resolution: "inherits@npm:2.0.4" checksum: 98426da247ddfc3dcd7d7daedd90c3ca32d5b08deca08949726f12d49232aef94772a07b36cf4ff833e105ae2ef931777f6de4a6dd8245a216b9299ad4a50bea @@ -10308,7 +10245,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"ini@npm:^1.3.2, ini@npm:^1.3.4": +"ini@npm:^1.3.2, ini@npm:^1.3.4, ini@npm:~1.3.0": version: 1.3.5 resolution: "ini@npm:1.3.5" checksum: 304a78d1e0ec49c6dc316b6a21bee5340ba85159c6581235b26a4cf27e2bac5f66f2c8f0e074ceaf3c48085f89fb974691cbf812df2128d2d74c5ef726d1b19a @@ -10331,6 +10268,15 @@ fsevents@^1.2.7: languageName: node linkType: hard +"inline-source-map@npm:~0.5.0": + version: 0.5.0 + resolution: "inline-source-map@npm:0.5.0" + dependencies: + source-map: ~0.4.0 + checksum: 1018795cc07faac44f503861c00755166ecb6bb949cafde5b6eff6ea5567122b6528e3080650624e68d69c60ce0122485fc54cf64d1f1854cdfd4b556b583748 + languageName: node + linkType: hard + "inline-source-map@npm:~0.6.0": version: 0.6.2 resolution: "inline-source-map@npm:0.6.2" @@ -10340,7 +10286,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"inquirer@npm:^6.2.0, inquirer@npm:^6.2.2": +"inquirer@npm:^6.2.0": version: 6.5.2 resolution: "inquirer@npm:6.5.2" dependencies: @@ -10361,27 +10307,6 @@ fsevents@^1.2.7: languageName: node linkType: hard -"inquirer@npm:^7.0.0": - version: 7.1.0 - resolution: "inquirer@npm:7.1.0" - dependencies: - ansi-escapes: ^4.2.1 - chalk: ^3.0.0 - cli-cursor: ^3.1.0 - cli-width: ^2.0.0 - external-editor: ^3.0.3 - figures: ^3.0.0 - lodash: ^4.17.15 - mute-stream: 0.0.8 - run-async: ^2.4.0 - rxjs: ^6.5.3 - string-width: ^4.1.0 - strip-ansi: ^6.0.0 - through: ^2.3.6 - checksum: 651838e841b5850a10edb5232d8fda9b119f71b9aa53ff8e52457c29729d86338d52175b8c50f77d9311c4b5b367f9d2090acfc4c54b6d643df59130d66b197a - languageName: node - linkType: hard - "insert-module-globals@npm:^7.0.0": version: 7.2.0 resolution: "insert-module-globals@npm:7.2.0" @@ -10483,15 +10408,6 @@ fsevents@^1.2.7: languageName: node linkType: hard -"is-binary-path@npm:~2.1.0": - version: 2.1.0 - resolution: "is-binary-path@npm:2.1.0" - dependencies: - binary-extensions: ^2.0.0 - checksum: 49a1446a3cf3719e91a061f0e52add18fd065325c652c277519a2ad333440dc8b449076a893277a46940ef16f05a908716667ca8f986b28c677b9acb11e10a36 - languageName: node - linkType: hard - "is-buffer@npm:^1.1.0, is-buffer@npm:^1.1.5": version: 1.1.6 resolution: "is-buffer@npm:1.1.6" @@ -10499,10 +10415,10 @@ fsevents@^1.2.7: languageName: node linkType: hard -"is-callable@npm:^1.1.4, is-callable@npm:^1.1.5": - version: 1.1.5 - resolution: "is-callable@npm:1.1.5" - checksum: e77885498dc68297933cfcf2b93da039936216a6423698dfbad33fdabd4e79f3298f30d505424e5f52d8acebc1223a1a0a0ab98435b92dbd55d7713be012719e +"is-callable@npm:^1.1.4, is-callable@npm:^1.2.0": + version: 1.2.0 + resolution: "is-callable@npm:1.2.0" + checksum: 8a5e68b7c3a95159c98595789015da72e71432e638c4bc0aad4722ea6a1ffeca178838cfb6012f5b9cc1a8c61b737704bd658d8f588959a46a899961667e99f5 languageName: node linkType: hard @@ -10536,9 +10452,9 @@ fsevents@^1.2.7: linkType: hard "is-date-object@npm:^1.0.1": - version: 1.0.2 - resolution: "is-date-object@npm:1.0.2" - checksum: 0e322699464a99da638c8a583b74dfb791732b6bc9c102bc0b7ac6303d83c86b9935f19b8d2ed4de52092241190c8826b099cb31972dea49a99b755293c0b1cf + version: 1.0.1 + resolution: "is-date-object@npm:1.0.1" + checksum: 37565cd56105fa2ce2816a04f50c3518efc886a2d712e50f47d86dcf9877f6bf6aa2d6953310399afe98ae79051a5b187e172783e6db264fac6e1c6636d1f4d9 languageName: node linkType: hard @@ -10572,9 +10488,11 @@ fsevents@^1.2.7: linkType: hard "is-docker@npm:^2.0.0": - version: 2.0.0 - resolution: "is-docker@npm:2.0.0" - checksum: 9972935f7d02de00658a0cd604e1dea41c337ec1d207afd7e1fac482fc8490cd84eee0f626f21f4b4d91f299f24a6074b367822a41ff2379412b3cc890481063 + version: 2.1.1 + resolution: "is-docker@npm:2.1.1" + bin: + is-docker: cli.js + checksum: dc8e36fa63a246728e5dd4b3ab2d454f685d3dcc1fecbe62144a0c3bc1f5eef0cf67cb3af1b4a9d274dd18877b954b651c7ef0a483abae6a7a2baa8f987554ba languageName: node linkType: hard @@ -10602,9 +10520,11 @@ fsevents@^1.2.7: linkType: hard "is-finite@npm:^1.0.0": - version: 1.1.0 - resolution: "is-finite@npm:1.1.0" - checksum: d2ea9746ecc273e50183f56a51073862ff9f39bb1e63f6e2830da6be77d0d17c78e5ad1f8573d26c2a23457ab4a1b444472a46d64ba6f73824435cd734517ad4 + version: 1.0.2 + resolution: "is-finite@npm:1.0.2" + dependencies: + number-is-nan: ^1.0.0 + checksum: 3cf965ccaaae662a0028085e14192d70b1109fc4f76500e1094b5e647297357bb0830ea08ff32dd695ee4116f464b96bbbbee3738c8b3e0cf05f731b527e7ab3 languageName: node linkType: hard @@ -10647,7 +10567,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:~4.0.1": +"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1": version: 4.0.1 resolution: "is-glob@npm:4.0.1" dependencies: @@ -10749,9 +10669,9 @@ fsevents@^1.2.7: linkType: hard "is-promise@npm:^2.1.0": - version: 2.2.2 - resolution: "is-promise@npm:2.2.2" - checksum: 6fe84293b8750d3604a909979a7517a38b1618817f1fbbfdaf4d6138642117c85fbee12927b4d51349a5bcd9bdf8d1bf181f09145ede2d7eb41f4b394ab2ce7d + version: 2.1.0 + resolution: "is-promise@npm:2.1.0" + checksum: 3387cf8d8720439e3f8945e962ecf7590df81dfc89bcfea97f41b7db317c8997a82224014fc8f81e3634841f97b5bf103d8584d3ecdd7b6e159a793d8e3f6ad1 languageName: node linkType: hard @@ -10764,12 +10684,12 @@ fsevents@^1.2.7: languageName: node linkType: hard -"is-regex@npm:^1.0.5": - version: 1.0.5 - resolution: "is-regex@npm:1.0.5" +"is-regex@npm:^1.1.0": + version: 1.1.0 + resolution: "is-regex@npm:1.1.0" dependencies: - has: ^1.0.3 - checksum: 2f3b1fdb16044c6d1cc8d3a617cf1ff8637fe6958991e2805ba8eb01bdc76be6032ccd7fde12e81c39c5e70b0d556cdc7ba2a3a92f096d4e788f764bded2eca0 + has-symbols: ^1.0.1 + checksum: 8fe7ae8c060ff831660be439c17a39dadc97c950d2636634f27db83b6a048695b1c46d304ba8a77efe906fb20c99755fdf4a1f628fcf75de3cdcbb687096bdaa languageName: node linkType: hard @@ -10874,6 +10794,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"is-wsl@npm:^1.1.0": + version: 1.1.0 + resolution: "is-wsl@npm:1.1.0" + checksum: 0f15cf5d5ff025afb0ba9cb49fd425b5d533b2af700533d343b7fa9aaca2f6c8242ba1c1a4e30c925522816bf0172fec2ae7cacaae682c91ffa0cd3f88ff1e8e + languageName: node + linkType: hard + "is-wsl@npm:^2.1.1": version: 2.2.0 resolution: "is-wsl@npm:2.2.0" @@ -10883,6 +10810,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"isarray@npm:0.0.1": + version: 0.0.1 + resolution: "isarray@npm:0.0.1" + checksum: daeda3c23646200b0b464b7a9030d10008d7701fc6b7a1b45cafe42b4f4d2dde20835b56f19a49e04bb218245b7f7a2bcc6d0f696cff3711e4eddaa2031c611f + languageName: node + linkType: hard + "isarray@npm:1.0.0, isarray@npm:^1.0.0, isarray@npm:~1.0.0": version: 1.0.0 resolution: "isarray@npm:1.0.0" @@ -10890,13 +10824,6 @@ fsevents@^1.2.7: languageName: node linkType: hard -"isarray@npm:^2.0.1": - version: 2.0.5 - resolution: "isarray@npm:2.0.5" - checksum: cfb3e907b3c7957fb18e479bbe9102df4e84c5386839b4a33076f38ee31a8934e77d43ff517967fd39192a7c06b894770454886a5ffc8a3ddc36f6b746d70726 - languageName: node - linkType: hard - "isexe@npm:^2.0.0": version: 2.0.0 resolution: "isexe@npm:2.0.0" @@ -10934,6 +10861,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"istanbul-lib-coverage@npm:^2.0.2, istanbul-lib-coverage@npm:^2.0.5": + version: 2.0.5 + resolution: "istanbul-lib-coverage@npm:2.0.5" + checksum: 72737ebc48c31a45ab80fb1161b4c79a7d035d3088007ec55ec7a53b8bf6ae107a8222335e018978720270d71f2036abe73e150da4733f573be32398ad6aedd1 + languageName: node + linkType: hard + "istanbul-lib-coverage@npm:^3.0.0": version: 3.0.0 resolution: "istanbul-lib-coverage@npm:3.0.0" @@ -10941,6 +10875,21 @@ fsevents@^1.2.7: languageName: node linkType: hard +"istanbul-lib-instrument@npm:^3.0.1, istanbul-lib-instrument@npm:^3.3.0": + version: 3.3.0 + resolution: "istanbul-lib-instrument@npm:3.3.0" + dependencies: + "@babel/generator": ^7.4.0 + "@babel/parser": ^7.4.3 + "@babel/template": ^7.4.0 + "@babel/traverse": ^7.4.3 + "@babel/types": ^7.4.0 + istanbul-lib-coverage: ^2.0.5 + semver: ^6.0.0 + checksum: d7a7dae5db459ac4365cea3ecdaf0586c79bfb850059e2fc2364c060ca6bcbbf686675d8944d6490a52f0d018781403ec5902523430e7a404d4f2b2ad82e1aef + languageName: node + linkType: hard + "istanbul-lib-instrument@npm:^4.0.0": version: 4.0.3 resolution: "istanbul-lib-instrument@npm:4.0.3" @@ -10953,6 +10902,17 @@ fsevents@^1.2.7: languageName: node linkType: hard +"istanbul-lib-report@npm:^2.0.4": + version: 2.0.8 + resolution: "istanbul-lib-report@npm:2.0.8" + dependencies: + istanbul-lib-coverage: ^2.0.5 + make-dir: ^2.1.0 + supports-color: ^6.1.0 + checksum: 63b898ed9e59f84eacfccb1b1450c09815ca8a70b7ff763ad489dd332d1ead6a81eefdc4e14e61ab6d05feaba78d8f3231d5eaa9ef3207ce5cd74be437393f1f + languageName: node + linkType: hard + "istanbul-lib-report@npm:^3.0.0": version: 3.0.0 resolution: "istanbul-lib-report@npm:3.0.0" @@ -10964,6 +10924,19 @@ fsevents@^1.2.7: languageName: node linkType: hard +"istanbul-lib-source-maps@npm:^3.0.1": + version: 3.0.6 + resolution: "istanbul-lib-source-maps@npm:3.0.6" + dependencies: + debug: ^4.1.1 + istanbul-lib-coverage: ^2.0.5 + make-dir: ^2.1.0 + rimraf: ^2.6.3 + source-map: ^0.6.1 + checksum: f883303e1487669a9a2eb88c98fbdc5dec4c5610caa087c7629eb6a5718f8af53ad541cc820b1a92879590a4cef4a6ea60d579be047dd4a011829a74df4db27e + languageName: node + linkType: hard + "istanbul-lib-source-maps@npm:^4.0.0": version: 4.0.0 resolution: "istanbul-lib-source-maps@npm:4.0.0" @@ -10975,6 +10948,15 @@ fsevents@^1.2.7: languageName: node linkType: hard +"istanbul-reports@npm:^2.2.6": + version: 2.2.6 + resolution: "istanbul-reports@npm:2.2.6" + dependencies: + handlebars: ^4.1.2 + checksum: df104454caf1865e1bcc42fd8108424ec64e10b2dbebef8b8412104725f4c3d4fb531c8a509345ba29894afcec0cf3e923e6f700e3f152a6239c7ef40576a9da + languageName: node + linkType: hard + "istanbul-reports@npm:^3.0.2": version: 3.0.2 resolution: "istanbul-reports@npm:3.0.2" @@ -10985,6 +10967,17 @@ fsevents@^1.2.7: languageName: node linkType: hard +"jest-changed-files@npm:^24.9.0": + version: 24.9.0 + resolution: "jest-changed-files@npm:24.9.0" + dependencies: + "@jest/types": ^24.9.0 + execa: ^1.0.0 + throat: ^4.0.0 + checksum: cd341b76fa05b94dece212afd819b68f84408fe21e784bd08d7da88dfb155682d92b3573fb3b90d2e87bbbfa09c077d4bfc4fbfcb48c6c69a741fc6c1471f602 + languageName: node + linkType: hard + "jest-changed-files@npm:^25.5.0": version: 25.5.0 resolution: "jest-changed-files@npm:25.5.0" @@ -10996,6 +10989,29 @@ fsevents@^1.2.7: languageName: node linkType: hard +"jest-cli@npm:^24.9.0": + version: 24.9.0 + resolution: "jest-cli@npm:24.9.0" + dependencies: + "@jest/core": ^24.9.0 + "@jest/test-result": ^24.9.0 + "@jest/types": ^24.9.0 + chalk: ^2.0.1 + exit: ^0.1.2 + import-local: ^2.0.0 + is-ci: ^2.0.0 + jest-config: ^24.9.0 + jest-util: ^24.9.0 + jest-validate: ^24.9.0 + prompts: ^2.0.1 + realpath-native: ^1.1.0 + yargs: ^13.3.0 + bin: + jest: ./bin/jest.js + checksum: ae39e4654c51f6b61c81f9aa8780945522adcfc107fec4f5e9c987207a987069082575a4f660cfcc013136e98c9b9e43d31287ddb68e01492fb498eb02fa8fb0 + languageName: node + linkType: hard + "jest-cli@npm:^25.5.4": version: 25.5.4 resolution: "jest-cli@npm:25.5.4" @@ -11020,6 +11036,31 @@ fsevents@^1.2.7: languageName: node linkType: hard +"jest-config@npm:^24.9.0": + version: 24.9.0 + resolution: "jest-config@npm:24.9.0" + dependencies: + "@babel/core": ^7.1.0 + "@jest/test-sequencer": ^24.9.0 + "@jest/types": ^24.9.0 + babel-jest: ^24.9.0 + chalk: ^2.0.1 + glob: ^7.1.1 + jest-environment-jsdom: ^24.9.0 + jest-environment-node: ^24.9.0 + jest-get-type: ^24.9.0 + jest-jasmine2: ^24.9.0 + jest-regex-util: ^24.3.0 + jest-resolve: ^24.9.0 + jest-util: ^24.9.0 + jest-validate: ^24.9.0 + micromatch: ^3.1.10 + pretty-format: ^24.9.0 + realpath-native: ^1.1.0 + checksum: 00c16a265423ca5c5ee229f9088e709bd85dbcfd80b0b0c50d2d885445935b651e6b45e80065419f3727b96f0273e655cc23964d0cdcf65b33f7065de482cf10 + languageName: node + linkType: hard + "jest-config@npm:^25.5.4": version: 25.5.4 resolution: "jest-config@npm:25.5.4" @@ -11047,7 +11088,19 @@ fsevents@^1.2.7: languageName: node linkType: hard -"jest-diff@npm:^25.1.0, jest-diff@npm:^25.5.0": +"jest-diff@npm:^24.8.0, jest-diff@npm:^24.9.0": + version: 24.9.0 + resolution: "jest-diff@npm:24.9.0" + dependencies: + chalk: ^2.0.1 + diff-sequences: ^24.9.0 + jest-get-type: ^24.9.0 + pretty-format: ^24.9.0 + checksum: ba4aa10e5712ad365700921c90362dae8c2ab5b2c599b6f64fc4f3013f6208d760cb2980d491010e602e4a36b28a5c18fceba251f7602929d93300ae03ae931c + languageName: node + linkType: hard + +"jest-diff@npm:^25.5.0": version: 25.5.0 resolution: "jest-diff@npm:25.5.0" dependencies: @@ -11059,6 +11112,15 @@ fsevents@^1.2.7: languageName: node linkType: hard +"jest-docblock@npm:^24.3.0": + version: 24.9.0 + resolution: "jest-docblock@npm:24.9.0" + dependencies: + detect-newline: ^2.1.0 + checksum: c68724ccda9d8cc8d8bea2c23cfdf252c6a903f61802d063f2e6ab983463899a490897c3172bd853ca0c887c998a49bcac11cc6fa56fe6d68ddd7f1bc58760b6 + languageName: node + linkType: hard + "jest-docblock@npm:^25.3.0": version: 25.3.0 resolution: "jest-docblock@npm:25.3.0" @@ -11068,6 +11130,19 @@ fsevents@^1.2.7: languageName: node linkType: hard +"jest-each@npm:^24.9.0": + version: 24.9.0 + resolution: "jest-each@npm:24.9.0" + dependencies: + "@jest/types": ^24.9.0 + chalk: ^2.0.1 + jest-get-type: ^24.9.0 + jest-util: ^24.9.0 + pretty-format: ^24.9.0 + checksum: 6916be0ce87d6cf5b059cb1238e024497ad7fadc18d891f7f4b2334ce7d83d4e9531c06fd8bf2e1ee9b41b8b6f3cb0206f46e8632e85824c53abec698528a5dd + languageName: node + linkType: hard + "jest-each@npm:^25.5.0": version: 25.5.0 resolution: "jest-each@npm:25.5.0" @@ -11081,6 +11156,20 @@ fsevents@^1.2.7: languageName: node linkType: hard +"jest-environment-jsdom@npm:^24.9.0": + version: 24.9.0 + resolution: "jest-environment-jsdom@npm:24.9.0" + dependencies: + "@jest/environment": ^24.9.0 + "@jest/fake-timers": ^24.9.0 + "@jest/types": ^24.9.0 + jest-mock: ^24.9.0 + jest-util: ^24.9.0 + jsdom: ^11.5.1 + checksum: 403539fe7d01142b0588fa1a95add2bbf1aec61cb328b95cdb65b5748145ef59da1abf621c798a2bfce911fde87898f6a4f1dd21810a8062584b571a3941b83c + languageName: node + linkType: hard + "jest-environment-jsdom@npm:^25.5.0": version: 25.5.0 resolution: "jest-environment-jsdom@npm:25.5.0" @@ -11095,6 +11184,19 @@ fsevents@^1.2.7: languageName: node linkType: hard +"jest-environment-node@npm:^24.9.0": + version: 24.9.0 + resolution: "jest-environment-node@npm:24.9.0" + dependencies: + "@jest/environment": ^24.9.0 + "@jest/fake-timers": ^24.9.0 + "@jest/types": ^24.9.0 + jest-mock: ^24.9.0 + jest-util: ^24.9.0 + checksum: cc8592650b9f99c90faab9effbfc76e00da6a8ab3c15e21644192034d428539ad7ed3c5e76bce29a5cfcf737818f950077cd06eefae13d0bf4eea5656ffca56a + languageName: node + linkType: hard + "jest-environment-node@npm:^25.5.0": version: 25.5.0 resolution: "jest-environment-node@npm:25.5.0" @@ -11109,6 +11211,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"jest-get-type@npm:^24.9.0": + version: 24.9.0 + resolution: "jest-get-type@npm:24.9.0" + checksum: 0e6164dff23f8cd664a46642d2167b743e67349c57ff908259b56e3f5c81f8d2a13de2dd473a1a3d7682adcfe85888d14b0496ba51c5c8095eb52bf7526c3918 + languageName: node + linkType: hard + "jest-get-type@npm:^25.2.6": version: 25.2.6 resolution: "jest-get-type@npm:25.2.6" @@ -11116,6 +11225,29 @@ fsevents@^1.2.7: languageName: node linkType: hard +"jest-haste-map@npm:^24.9.0": + version: 24.9.0 + resolution: "jest-haste-map@npm:24.9.0" + dependencies: + "@jest/types": ^24.9.0 + anymatch: ^2.0.0 + fb-watchman: ^2.0.0 + fsevents: ^1.2.7 + graceful-fs: ^4.1.15 + invariant: ^2.2.4 + jest-serializer: ^24.9.0 + jest-util: ^24.9.0 + jest-worker: ^24.9.0 + micromatch: ^3.1.10 + sane: ^4.0.3 + walker: ^1.0.7 + dependenciesMeta: + fsevents: + optional: true + checksum: 4b836aebac76df7fdf0c67924453900cb2f1f4cef211007d707c1cd0d8c4041694089f3c84720643aa4b1fbab743d1d2da0317e16a6d8aa81302438f05b8a967 + languageName: node + linkType: hard + "jest-haste-map@npm:^25.5.1": version: 25.5.1 resolution: "jest-haste-map@npm:25.5.1" @@ -11140,6 +11272,30 @@ fsevents@^1.2.7: languageName: node linkType: hard +"jest-jasmine2@npm:^24.9.0": + version: 24.9.0 + resolution: "jest-jasmine2@npm:24.9.0" + dependencies: + "@babel/traverse": ^7.1.0 + "@jest/environment": ^24.9.0 + "@jest/test-result": ^24.9.0 + "@jest/types": ^24.9.0 + chalk: ^2.0.1 + co: ^4.6.0 + expect: ^24.9.0 + is-generator-fn: ^2.0.0 + jest-each: ^24.9.0 + jest-matcher-utils: ^24.9.0 + jest-message-util: ^24.9.0 + jest-runtime: ^24.9.0 + jest-snapshot: ^24.9.0 + jest-util: ^24.9.0 + pretty-format: ^24.9.0 + throat: ^4.0.0 + checksum: 15e181e873ddb6a83c8eb7a53add5de805fd399d5c1e15fd2bfe3e6dcfb79c9a31b69d0ced91b4f0c92bbd1c80cd73244f5bb291cf0c194c0f9a130ef60af885 + languageName: node + linkType: hard + "jest-jasmine2@npm:^25.5.4": version: 25.5.4 resolution: "jest-jasmine2@npm:25.5.4" @@ -11165,6 +11321,16 @@ fsevents@^1.2.7: languageName: node linkType: hard +"jest-leak-detector@npm:^24.9.0": + version: 24.9.0 + resolution: "jest-leak-detector@npm:24.9.0" + dependencies: + jest-get-type: ^24.9.0 + pretty-format: ^24.9.0 + checksum: 68f09bbbee0ef57c9ec47c163d46adb4ad34b256b6ee7d5ca639cba6f57e0661ff216635adad54e6c5e19b47fd38fc68ff252ce2ebf86f205340d317531eabb7 + languageName: node + linkType: hard + "jest-leak-detector@npm:^25.5.0": version: 25.5.0 resolution: "jest-leak-detector@npm:25.5.0" @@ -11175,6 +11341,18 @@ fsevents@^1.2.7: languageName: node linkType: hard +"jest-matcher-utils@npm:^24.9.0": + version: 24.9.0 + resolution: "jest-matcher-utils@npm:24.9.0" + dependencies: + chalk: ^2.0.1 + jest-diff: ^24.9.0 + jest-get-type: ^24.9.0 + pretty-format: ^24.9.0 + checksum: 3f7d216a5f3ba562692e8f54add1391516af7dba4ad8e48256a732bbb2fef177b0a9095c3e3f21172ef1f461a73f3fa2c02a60093e3f4d556d6967d25c47e4b7 + languageName: node + linkType: hard + "jest-matcher-utils@npm:^25.5.0": version: 25.5.0 resolution: "jest-matcher-utils@npm:25.5.0" @@ -11187,6 +11365,22 @@ fsevents@^1.2.7: languageName: node linkType: hard +"jest-message-util@npm:^24.9.0": + version: 24.9.0 + resolution: "jest-message-util@npm:24.9.0" + dependencies: + "@babel/code-frame": ^7.0.0 + "@jest/test-result": ^24.9.0 + "@jest/types": ^24.9.0 + "@types/stack-utils": ^1.0.1 + chalk: ^2.0.1 + micromatch: ^3.1.10 + slash: ^2.0.0 + stack-utils: ^1.0.1 + checksum: da57503c89eefbb520217fad8cc3b0b6f1b0dc33212dd7d00fcdf179586aab2686999d982a26cd9bf2eef47a1dc33eb668a9f0e668d1337cf06c28cac3f1eff6 + languageName: node + linkType: hard + "jest-message-util@npm:^25.5.0": version: 25.5.0 resolution: "jest-message-util@npm:25.5.0" @@ -11203,6 +11397,15 @@ fsevents@^1.2.7: languageName: node linkType: hard +"jest-mock@npm:^24.9.0": + version: 24.9.0 + resolution: "jest-mock@npm:24.9.0" + dependencies: + "@jest/types": ^24.9.0 + checksum: efb18eadac77dfb2a0c193ee50f03ac2374b516d749925912cf45de6312037601d95814b6981992720da4bed8d0db08724bfd65ac25db9eb20c94102f6d65055 + languageName: node + linkType: hard + "jest-mock@npm:^25.5.0": version: 25.5.0 resolution: "jest-mock@npm:25.5.0" @@ -11224,6 +11427,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"jest-regex-util@npm:^24.3.0, jest-regex-util@npm:^24.9.0": + version: 24.9.0 + resolution: "jest-regex-util@npm:24.9.0" + checksum: 3a30d04bcfd779397d38c6b663c0e45492bba83908c57d3498bd682aa4dd299565edb7620e38de2225c19bc06ad8febfb268101494caee39b08c1d1493050a8d + languageName: node + linkType: hard + "jest-regex-util@npm:^25.2.6": version: 25.2.6 resolution: "jest-regex-util@npm:25.2.6" @@ -11231,6 +11441,17 @@ fsevents@^1.2.7: languageName: node linkType: hard +"jest-resolve-dependencies@npm:^24.9.0": + version: 24.9.0 + resolution: "jest-resolve-dependencies@npm:24.9.0" + dependencies: + "@jest/types": ^24.9.0 + jest-regex-util: ^24.3.0 + jest-snapshot: ^24.9.0 + checksum: d8f94798ec73b7bf5ef39334fb89318b15a1dc11fd53c3e5114e723b35283b7fe5b0e929d1f69824a86a11ecf37584c818e5f0476bd5a774cf9f43d70c277fd2 + languageName: node + linkType: hard + "jest-resolve-dependencies@npm:^25.5.4": version: 25.5.4 resolution: "jest-resolve-dependencies@npm:25.5.4" @@ -11242,6 +11463,19 @@ fsevents@^1.2.7: languageName: node linkType: hard +"jest-resolve@npm:24.9.0, jest-resolve@npm:^24.9.0": + version: 24.9.0 + resolution: "jest-resolve@npm:24.9.0" + dependencies: + "@jest/types": ^24.9.0 + browser-resolve: ^1.11.3 + chalk: ^2.0.1 + jest-pnp-resolver: ^1.2.1 + realpath-native: ^1.1.0 + checksum: 2d6c5abf8b570b324d49caca820875aea566df3b9725978183975147f6bae0f9c9ad7b2601522c7c9be88da86e428cb360f4e8d8f94d7290ff312b9289692528 + languageName: node + linkType: hard + "jest-resolve@npm:25.5.1, jest-resolve@npm:^25.5.1": version: 25.5.1 resolution: "jest-resolve@npm:25.5.1" @@ -11259,6 +11493,33 @@ fsevents@^1.2.7: languageName: node linkType: hard +"jest-runner@npm:^24.9.0": + version: 24.9.0 + resolution: "jest-runner@npm:24.9.0" + dependencies: + "@jest/console": ^24.7.1 + "@jest/environment": ^24.9.0 + "@jest/test-result": ^24.9.0 + "@jest/types": ^24.9.0 + chalk: ^2.4.2 + exit: ^0.1.2 + graceful-fs: ^4.1.15 + jest-config: ^24.9.0 + jest-docblock: ^24.3.0 + jest-haste-map: ^24.9.0 + jest-jasmine2: ^24.9.0 + jest-leak-detector: ^24.9.0 + jest-message-util: ^24.9.0 + jest-resolve: ^24.9.0 + jest-runtime: ^24.9.0 + jest-util: ^24.9.0 + jest-worker: ^24.6.0 + source-map-support: ^0.5.6 + throat: ^4.0.0 + checksum: 51dd123e13f43af87631089a11eac8aa51335e50f3d4df04c09a3560d4761a659c78af473aa82a7fe84c6f9a899e94526b09effcd4f7068b55ba930d63276a58 + languageName: node + linkType: hard + "jest-runner@npm:^25.5.4": version: 25.5.4 resolution: "jest-runner@npm:25.5.4" @@ -11286,6 +11547,39 @@ fsevents@^1.2.7: languageName: node linkType: hard +"jest-runtime@npm:^24.9.0": + version: 24.9.0 + resolution: "jest-runtime@npm:24.9.0" + dependencies: + "@jest/console": ^24.7.1 + "@jest/environment": ^24.9.0 + "@jest/source-map": ^24.3.0 + "@jest/transform": ^24.9.0 + "@jest/types": ^24.9.0 + "@types/yargs": ^13.0.0 + chalk: ^2.0.1 + exit: ^0.1.2 + glob: ^7.1.3 + graceful-fs: ^4.1.15 + jest-config: ^24.9.0 + jest-haste-map: ^24.9.0 + jest-message-util: ^24.9.0 + jest-mock: ^24.9.0 + jest-regex-util: ^24.3.0 + jest-resolve: ^24.9.0 + jest-snapshot: ^24.9.0 + jest-util: ^24.9.0 + jest-validate: ^24.9.0 + realpath-native: ^1.1.0 + slash: ^2.0.0 + strip-bom: ^3.0.0 + yargs: ^13.3.0 + bin: + jest-runtime: ./bin/jest-runtime.js + checksum: 0e213eb6d84508f048e8c8caa79ef81f5b72969d2a64421771018b4d5a1b84081d2e94b096c74759aaf980e40e659d46aa939a2f235021fe318c4685b8fb51d7 + languageName: node + linkType: hard + "jest-runtime@npm:^25.5.4": version: 25.5.4 resolution: "jest-runtime@npm:25.5.4" @@ -11322,6 +11616,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"jest-serializer@npm:^24.9.0": + version: 24.9.0 + resolution: "jest-serializer@npm:24.9.0" + checksum: 8d959a8adae01788d840a945614af605e9eeda82d583bc9a66f89648b2dc37f32614873947c0c1ced0d82554163daf218f92392ab59f66343eafa7aec57797aa + languageName: node + linkType: hard + "jest-serializer@npm:^25.5.0": version: 25.5.0 resolution: "jest-serializer@npm:25.5.0" @@ -11331,6 +11632,27 @@ fsevents@^1.2.7: languageName: node linkType: hard +"jest-snapshot@npm:^24.9.0": + version: 24.9.0 + resolution: "jest-snapshot@npm:24.9.0" + dependencies: + "@babel/types": ^7.0.0 + "@jest/types": ^24.9.0 + chalk: ^2.0.1 + expect: ^24.9.0 + jest-diff: ^24.9.0 + jest-get-type: ^24.9.0 + jest-matcher-utils: ^24.9.0 + jest-message-util: ^24.9.0 + jest-resolve: ^24.9.0 + mkdirp: ^0.5.1 + natural-compare: ^1.4.0 + pretty-format: ^24.9.0 + semver: ^6.2.0 + checksum: 875ef5174862eb7e5712ffb01048a256a8dd7a74e2dfe22d6cfc728c52685ea8c771f9c5caacb1aad4d63d870b8c6ea7c28b9c0501cbff1a82c21540a131faba + languageName: node + linkType: hard + "jest-snapshot@npm:^25.5.1": version: 25.5.1 resolution: "jest-snapshot@npm:25.5.1" @@ -11354,6 +11676,26 @@ fsevents@^1.2.7: languageName: node linkType: hard +"jest-util@npm:^24.9.0": + version: 24.9.0 + resolution: "jest-util@npm:24.9.0" + dependencies: + "@jest/console": ^24.9.0 + "@jest/fake-timers": ^24.9.0 + "@jest/source-map": ^24.9.0 + "@jest/test-result": ^24.9.0 + "@jest/types": ^24.9.0 + callsites: ^3.0.0 + chalk: ^2.0.1 + graceful-fs: ^4.1.15 + is-ci: ^2.0.0 + mkdirp: ^0.5.1 + slash: ^2.0.0 + source-map: ^0.6.0 + checksum: 884ec3a45cc43eb3488784f23dd9f748e11752a1987639e24d093971e192c84568e92791c4b2834e2b1c21cd25010136549cef0b187b2af747ac3b1bd48cf367 + languageName: node + linkType: hard + "jest-util@npm:^25.5.0": version: 25.5.0 resolution: "jest-util@npm:25.5.0" @@ -11367,6 +11709,20 @@ fsevents@^1.2.7: languageName: node linkType: hard +"jest-validate@npm:^24.9.0": + version: 24.9.0 + resolution: "jest-validate@npm:24.9.0" + dependencies: + "@jest/types": ^24.9.0 + camelcase: ^5.3.1 + chalk: ^2.0.1 + jest-get-type: ^24.9.0 + leven: ^3.1.0 + pretty-format: ^24.9.0 + checksum: 13eaacc34264fbb075ef541b8c8732e4dbc8ac6c2ad8978e0a5c5b130d74ff5d45d622ffa5eea5bf364a305d460b670dd63ce75e8c8bb5d6d1a35145c36d14ae + languageName: node + linkType: hard + "jest-validate@npm:^25.5.0": version: 25.5.0 resolution: "jest-validate@npm:25.5.0" @@ -11381,6 +11737,21 @@ fsevents@^1.2.7: languageName: node linkType: hard +"jest-watcher@npm:^24.9.0": + version: 24.9.0 + resolution: "jest-watcher@npm:24.9.0" + dependencies: + "@jest/test-result": ^24.9.0 + "@jest/types": ^24.9.0 + "@types/yargs": ^13.0.0 + ansi-escapes: ^3.0.0 + chalk: ^2.0.1 + jest-util: ^24.9.0 + string-length: ^2.0.0 + checksum: 3291a283f165cd5f7794727583ec9c5692801afc3a8b2e8f7d167ba544785fded0a8bcaff7fafc7a54dfb5ba5e72c811ecb8adbb1cf0485759ac2b75fce1981d + languageName: node + linkType: hard + "jest-watcher@npm:^25.5.0": version: 25.5.0 resolution: "jest-watcher@npm:25.5.0" @@ -11395,7 +11766,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"jest-worker@npm:^24.9.0": +"jest-worker@npm:^24.6.0, jest-worker@npm:^24.9.0": version: 24.9.0 resolution: "jest-worker@npm:24.9.0" dependencies: @@ -11415,6 +11786,18 @@ fsevents@^1.2.7: languageName: node linkType: hard +"jest@npm:^24.8.0": + version: 24.9.0 + resolution: "jest@npm:24.9.0" + dependencies: + import-local: ^2.0.0 + jest-cli: ^24.9.0 + bin: + jest: ./bin/jest.js + checksum: d5cc3c0b51ec59b6bd7ec0755e821b62b9e2e4ed0d94c255ceef11ad7d481c5232350bd8acf87d87b2a57e78b08dfab507aa91cf5d6e6ab4f964d4913c64488e + languageName: node + linkType: hard + "jest@npm:^25.1.0": version: 25.5.4 resolution: "jest@npm:25.5.4" @@ -11442,7 +11825,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"js-yaml@npm:^3.13.0, js-yaml@npm:^3.13.1, js-yaml@npm:^3.2.1": +"js-yaml@npm:^3.13.1, js-yaml@npm:^3.2.1": version: 3.13.1 resolution: "js-yaml@npm:3.13.1" dependencies: @@ -11461,6 +11844,40 @@ fsevents@^1.2.7: languageName: node linkType: hard +"jsdom@npm:^11.5.1": + version: 11.12.0 + resolution: "jsdom@npm:11.12.0" + dependencies: + abab: ^2.0.0 + acorn: ^5.5.3 + acorn-globals: ^4.1.0 + array-equal: ^1.0.0 + cssom: ">= 0.3.2 < 0.4.0" + cssstyle: ^1.0.0 + data-urls: ^1.0.0 + domexception: ^1.0.1 + escodegen: ^1.9.1 + html-encoding-sniffer: ^1.0.2 + left-pad: ^1.3.0 + nwsapi: ^2.0.7 + parse5: 4.0.0 + pn: ^1.1.0 + request: ^2.87.0 + request-promise-native: ^1.0.5 + sax: ^1.2.4 + symbol-tree: ^3.2.2 + tough-cookie: ^2.3.4 + w3c-hr-time: ^1.0.1 + webidl-conversions: ^4.0.2 + whatwg-encoding: ^1.0.3 + whatwg-mimetype: ^2.1.0 + whatwg-url: ^6.4.1 + ws: ^5.2.0 + xml-name-validator: ^3.0.0 + checksum: 215a43d1d78440d613167d3de27becae99c7b522730c41cdf141d6a4e9ee0f756f165904f0637b5a99b1a3335241ea460e70a7998347e1769d3568f1417980de + languageName: node + linkType: hard + "jsdom@npm:^15.2.1": version: 15.2.1 resolution: "jsdom@npm:15.2.1" @@ -11509,15 +11926,6 @@ fsevents@^1.2.7: languageName: node linkType: hard -"jsesc@npm:^3.0.1": - version: 3.0.1 - resolution: "jsesc@npm:3.0.1" - bin: - jsesc: bin/jsesc - checksum: a915daf0c74c86343bc91ac88030d20fd95cd433b451ad945585064855e6c66c7f1531196633dcad482effe42620af9fab4dd75af735cf41d180d8b515f7af77 - languageName: node - linkType: hard - "jsesc@npm:~0.5.0": version: 0.5.0 resolution: "jsesc@npm:0.5.0" @@ -11571,6 +11979,17 @@ fsevents@^1.2.7: languageName: node linkType: hard +"json5@npm:^1.0.1": + version: 1.0.1 + resolution: "json5@npm:1.0.1" + dependencies: + minimist: ^1.2.0 + bin: + json5: lib/cli.js + checksum: df41624f9f40bfacc546f779eef6d161a3312fbb6ec1dbd69f8c4388e9807af653b753371ab19b6d2bab22af2ca7dde62fe03c791596acf76915e1fc4ee6fd88 + languageName: node + linkType: hard + "json5@npm:^2.1.2": version: 2.1.3 resolution: "json5@npm:2.1.3" @@ -11666,7 +12085,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"kind-of@npm:^6.0.0, kind-of@npm:^6.0.2": +"kind-of@npm:^6.0.0, kind-of@npm:^6.0.2, kind-of@npm:^6.0.3": version: 6.0.3 resolution: "kind-of@npm:6.0.3" checksum: 5de5d6577796af87a983199d6350ed41c670abec4a306cc43ca887c1afdbd6b89af9ab00016e3ca17eb7ad89ebfd9bb817d33baa89f855c6c95398a8b8abbf08 @@ -11736,6 +12155,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"left-pad@npm:^1.3.0": + version: 1.3.0 + resolution: "left-pad@npm:1.3.0" + checksum: d27d5f51e3e25ffa7d4de92d62d740e723dfa7ce004f835592cc3e80d940303b29ceed43bf572a4071c58cb07a4558a40b50bfcbe2e1b911d2bef58c4e786613 + languageName: node + linkType: hard + "lerna-changelog@npm:^0.5.0": version: 0.5.0 resolution: "lerna-changelog@npm:0.5.0" @@ -11754,30 +12180,29 @@ fsevents@^1.2.7: linkType: hard "lerna@npm:^3.19.0": - version: 3.20.2 - resolution: "lerna@npm:3.20.2" + version: 3.19.0 + resolution: "lerna@npm:3.19.0" dependencies: - "@lerna/add": 3.20.0 - "@lerna/bootstrap": 3.20.0 - "@lerna/changed": 3.20.0 - "@lerna/clean": 3.20.0 + "@lerna/add": 3.19.0 + "@lerna/bootstrap": 3.18.5 + "@lerna/changed": 3.18.5 + "@lerna/clean": 3.18.5 "@lerna/cli": 3.18.5 "@lerna/create": 3.18.5 "@lerna/diff": 3.18.5 - "@lerna/exec": 3.20.0 + "@lerna/exec": 3.18.5 "@lerna/import": 3.18.5 - "@lerna/info": 3.20.0 "@lerna/init": 3.18.5 "@lerna/link": 3.18.5 - "@lerna/list": 3.20.0 - "@lerna/publish": 3.20.2 - "@lerna/run": 3.20.0 - "@lerna/version": 3.20.2 + "@lerna/list": 3.18.5 + "@lerna/publish": 3.18.5 + "@lerna/run": 3.18.5 + "@lerna/version": 3.18.5 import-local: ^2.0.0 npmlog: ^4.1.2 bin: lerna: cli.js - checksum: b08c1cd630020de6f02032c2b6c8e9ea1cc923fd0ac3b59604f9379a4aec984aea9f56c1012d617790263a7a8d2144a905678bc36aee5fe8a3fab2eeff3a83b4 + checksum: d3fcd3ef7ed88cba1f0742e0b991330e9110ffe2d5012a2e06d5f8250f82c30a6df5ecc66edfa102932dbc7879f42fa9ad0d6b097d2999cdf22a374d29b7960e languageName: node linkType: hard @@ -11797,7 +12222,17 @@ fsevents@^1.2.7: languageName: node linkType: hard -"levn@npm:^0.3.0, levn@npm:~0.3.0": +"levn@npm:^0.4.1": + version: 0.4.1 + resolution: "levn@npm:0.4.1" + dependencies: + prelude-ls: ^1.2.1 + type-check: ~0.4.0 + checksum: 2f6ddfb0b956f2cb6b1608253a62b0c30e7392dd3c7b4cf284dfe2889b44d8385eaa81597646e253752c312a960ccb5e4d596968e476d5f6614f4ca60e5218e9 + languageName: node + linkType: hard + +"levn@npm:~0.3.0": version: 0.3.0 resolution: "levn@npm:0.3.0" dependencies: @@ -12062,10 +12497,10 @@ fsevents@^1.2.7: languageName: node linkType: hard -"lodash@npm:^4.17.11, lodash@npm:^4.17.12, lodash@npm:^4.17.13, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.2.1": - version: 4.17.15 - resolution: "lodash@npm:4.17.15" - checksum: aec3fbb7570aa67bda500b8299b1b1821d60646bede87f76a74dfcc7666ab3445267d734ec71424d70809d52ad67a1356fab5ab694a3faa1908d68e9d48f00f5 +"lodash@npm:^4.17.12, lodash@npm:^4.17.13, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.2.1": + version: 4.17.19 + resolution: "lodash@npm:4.17.19" + checksum: ff2b7a95f0129dba9101e346d44e0eda0f159d76bbbf23721eec1969b87a32bde3de0cfef0733218c64620e9be08040a973278d46a686540233b356115f3527c languageName: node linkType: hard @@ -12145,11 +12580,11 @@ fsevents@^1.2.7: linkType: hard "magic-string@npm:^0.25.2, magic-string@npm:^0.25.3": - version: 0.25.7 - resolution: "magic-string@npm:0.25.7" + version: 0.25.4 + resolution: "magic-string@npm:0.25.4" dependencies: sourcemap-codec: ^1.4.4 - checksum: 4b70c13eb21c6f1c54bf7fb029748dc44d6bfcd3c59e5deeda060eecc38df6144b91d10fb7a3cf6156fadab1a68f83d69a189df20ca5f6bd088bf0196ea8f039 + checksum: a36054a295c99748d7fa404a5ccf1c3ccc9e105bfd4c85aaefa39d03f96a2bedb7ed94eec2d82c6e0625a29477c0bbe2b12b3395d1c0fcf90ce3e09c69bec27d languageName: node linkType: hard @@ -12172,7 +12607,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"make-dir@npm:^3.0.0, make-dir@npm:^3.0.2": +"make-dir@npm:^3.0.0": version: 3.1.0 resolution: "make-dir@npm:3.1.0" dependencies: @@ -12278,6 +12713,15 @@ fsevents@^1.2.7: languageName: node linkType: hard +"mdn-browser-compat-data@npm:1.0.31": + version: 1.0.31 + resolution: "mdn-browser-compat-data@npm:1.0.31" + dependencies: + extend: 3.0.2 + checksum: 37257b8328e3410b824ed4cc89e827e3ee0d9321e68a1c0d35fe073eef22a8a49e3b577a125c9e2d42bb922f7a2ec1bc1bfdaddc412264d8801447e61d6120f9 + languageName: node + linkType: hard + "memory-fs@npm:^0.4.0": version: 0.4.1 resolution: "memory-fs@npm:0.4.1" @@ -12324,11 +12768,12 @@ fsevents@^1.2.7: linkType: hard "meow@npm:^7.0.0": - version: 7.0.0 - resolution: "meow@npm:7.0.0" + version: 7.0.1 + resolution: "meow@npm:7.0.1" dependencies: "@types/minimist": ^1.2.0 arrify: ^2.0.1 + camelcase: ^6.0.0 camelcase-keys: ^6.2.2 decamelize-keys: ^1.1.0 hard-rejection: ^2.1.0 @@ -12339,7 +12784,7 @@ fsevents@^1.2.7: trim-newlines: ^3.0.0 type-fest: ^0.13.1 yargs-parser: ^18.1.3 - checksum: 16f6b3b731acbbdc0008f1b58152c2e4e8e4accf9240b7a009a37e110ab308e77b15e569c71f6fc552d980131b3d1489ce11a5088894343d6f49941a321c7257 + checksum: a14153d1ac9e5d10e59e4d75b117261fa216ffbdfeaecc9b4f96a56d32de2b426f774dc53e8a079e21816b834c6c41969a78f15711b627d13fed0fdd1b9f8906 languageName: node linkType: hard @@ -12358,11 +12803,9 @@ fsevents@^1.2.7: linkType: hard "mergeiterator@npm:^1.2.5": - version: 1.4.4 - resolution: "mergeiterator@npm:1.4.4" - dependencies: - type-any-iterable: ^1.0.5 - checksum: 6bd61b0be87147130edbcff0fbbabd29b08bd31e4261780e9852266ff84abbbacdc470cdf8b720ea95c394bb2d12139a7d7ef7fba09f1cd6ab6566571f4e57bc + version: 1.2.5 + resolution: "mergeiterator@npm:1.2.5" + checksum: 7b55998bc55a8f217ff4538280afc0c86c686c5025f35e1e34ede265bbbf662afe091cd7f649230ff98aee91d36c17b99186b672b415259a044800a7c04df9c8 languageName: node linkType: hard @@ -12409,19 +12852,19 @@ fsevents@^1.2.7: languageName: node linkType: hard -"mime-db@npm:1.44.0": - version: 1.44.0 - resolution: "mime-db@npm:1.44.0" - checksum: b4e3b2141418572fba9786f7e36324faef15e23032ad0871f56760cb304ee721ba4c8cc795d3c1cac69a2a8b94045c1d6b08c4a8d1ef6ba1226a3a5193915c57 +"mime-db@npm:1.42.0": + version: 1.42.0 + resolution: "mime-db@npm:1.42.0" + checksum: 0b750000b0553709fc16547a9142a17807ef93afa2cf57df30159f693b3e69d07ef7039b9eed92cf69fdcceb9264a65e543b5fff8fbe1cff65ed89ec6ffbb781 languageName: node linkType: hard "mime-types@npm:^2.1.12, mime-types@npm:~2.1.19": - version: 2.1.27 - resolution: "mime-types@npm:2.1.27" + version: 2.1.25 + resolution: "mime-types@npm:2.1.25" dependencies: - mime-db: 1.44.0 - checksum: 51fe2f2c08c10ac7a2f67e2ce5de30f6500faa88d095418a1ab6e90e30960db7c682a8ecce60d3d4e293ac52c4700ca99399833db998ea9ec83d6f0503b70a94 + mime-db: 1.42.0 + checksum: 71c67c10d08426e59adf2b4c941b15aad44abd315e488a730d9e286d7a6ee2436a587fc6ada99e48d1fe95da6142b148eda8d82f41f7e49d99639d03a2acfba1 languageName: node linkType: hard @@ -12440,9 +12883,9 @@ fsevents@^1.2.7: linkType: hard "min-indent@npm:^1.0.0": - version: 1.0.0 - resolution: "min-indent@npm:1.0.0" - checksum: caed9fdecd22dbb2d73025c9fa5d808e6085ebeb1af355b4ac1b59018c7f9cd7dc9b2daf38af405367f80dcbd2f4e971d61d93476af27f65988488e808244cb1 + version: 1.0.1 + resolution: "min-indent@npm:1.0.1" + checksum: c3aeea46bc432e6ce69b86717e98fbb544e338abb5e3c93cfa196c427e3d5a4a6ee4f76e6931a9e424fb53e83451b90fc417ce7db04440a92d68369704ad11d1 languageName: node linkType: hard @@ -12480,12 +12923,13 @@ fsevents@^1.2.7: linkType: hard "minimist-options@npm:^4.0.2": - version: 4.0.2 - resolution: "minimist-options@npm:4.0.2" + version: 4.1.0 + resolution: "minimist-options@npm:4.1.0" dependencies: arrify: ^1.0.1 is-plain-obj: ^1.1.0 - checksum: 07e8e0529e4b4f7055df1d40a49be115f862d513509cb3bd168e4a9a7a9476a2c3d43d81944078b6d7995ec897c58217a94b6b81f4ef68b136fba8a39f7a97cd + kind-of: ^6.0.3 + checksum: 51f1aba56f9c2c2986d85c98a29abec26c632019abd2966a151029cf2cf0903d81894781460e0d5755d4f899bb3884bc86fc9af36ab31469a38d82cf74f4f651 languageName: node linkType: hard @@ -12506,6 +12950,15 @@ fsevents@^1.2.7: languageName: node linkType: hard +"minipass@npm:^3.0.0": + version: 3.1.3 + resolution: "minipass@npm:3.1.3" + dependencies: + yallist: ^4.0.0 + checksum: d12b95a845f15950bce7a77730c89400cf0c4f55e7066338da1d201ac148ece4ea8efa79e45a2c07c868c61bcaf9e996c4c3d6bf6b85c038ffa454521fc6ecd5 + languageName: node + linkType: hard + "minizlib@npm:^1.2.1": version: 1.3.3 resolution: "minizlib@npm:1.3.3" @@ -12515,6 +12968,16 @@ fsevents@^1.2.7: languageName: node linkType: hard +"minizlib@npm:^2.1.0": + version: 2.1.0 + resolution: "minizlib@npm:2.1.0" + dependencies: + minipass: ^3.0.0 + yallist: ^4.0.0 + checksum: 665346bad842df6fbfd59aa24f49a12d7971e72d8ccd4078f6e3167ad6185b64dec37d6f2cc053fe778230dd54f2a55550454ffec00b4460e14c3f20fe83be6e + languageName: node + linkType: hard + "mississippi@npm:^3.0.0": version: 3.0.0 resolution: "mississippi@npm:3.0.0" @@ -12543,13 +13006,6 @@ fsevents@^1.2.7: languageName: node linkType: hard -"mkdirp-classic@npm:^0.5.2": - version: 0.5.3 - resolution: "mkdirp-classic@npm:0.5.3" - checksum: b3c46c62840bdc82c2a5bee417e4e7518a8109d32a85a6dc67bdcfecbe6aff5cfc73cdb98844a61178ddd8ac75743f977857f0badd6e12d14fd18cf1639e41a1 - languageName: node - linkType: hard - "mkdirp-promise@npm:^5.0.1": version: 5.0.1 resolution: "mkdirp-promise@npm:5.0.1" @@ -12560,13 +13016,22 @@ fsevents@^1.2.7: linkType: hard "mkdirp@npm:*, mkdirp@npm:^0.5.0, mkdirp@npm:^0.5.1": - version: 0.5.5 - resolution: "mkdirp@npm:0.5.5" + version: 0.5.3 + resolution: "mkdirp@npm:0.5.3" dependencies: minimist: ^1.2.5 bin: mkdirp: bin/cmd.js - checksum: 9dd9792e891927b14ca02226dbe1daeb717b9517a001620d5e2658bbc72c5e4f06887b6cbcbb60595fa5a56e701073cf250f1ed69c1988a6b89faf9fd6a4d049 + checksum: 92d96ba83ca6013b7077c3fe776766c823c468de845a4965f5df483c38ad4d12829aab5a7a4e88e9defc4041f18a7cef2172e7bb19f946ae09a3821174b95256 + languageName: node + linkType: hard + +"mkdirp@npm:^1.0.3": + version: 1.0.4 + resolution: "mkdirp@npm:1.0.4" + bin: + mkdirp: bin/cmd.js + checksum: 1aa3a6a2d7514f094a91329ec09994f5d32d2955a4985ecbb3d86f2aaeafc4aa11521f98d606144c1d49cd9835004d9a73342709b8c692c92e59eacf37412468 languageName: node linkType: hard @@ -12578,15 +13043,15 @@ fsevents@^1.2.7: linkType: hard "module-deps@npm:^6.0.0": - version: 6.2.2 - resolution: "module-deps@npm:6.2.2" + version: 6.2.1 + resolution: "module-deps@npm:6.2.1" dependencies: JSONStream: ^1.0.3 browser-resolve: ^1.7.0 cached-path-relative: ^1.0.2 concat-stream: ~1.6.0 defined: ^1.0.0 - detective: ^5.2.0 + detective: ^5.0.2 duplexer2: ^0.1.2 inherits: ^2.0.1 parents: ^1.0.0 @@ -12598,7 +13063,7 @@ fsevents@^1.2.7: xtend: ^4.0.0 bin: module-deps: bin/cmd.js - checksum: d01a081254694cb8ea4d2de8bd55becdd2f3c4dcd9e8f33746f42ecc3081d79fb9a8f15bc5ceaa2c181bd140a42475294d8e3e0b7f2d5609f42c9bff7053ed05 + checksum: 577fc72b0dfe18f5cdb6fd30042e13a5846af43315e579c694b365f0a97fe8b6f05e6d0d4d9b48cf5ec3e6ad34f2841923af887834c3c53420f8b3a8c0b674c1 languageName: node linkType: hard @@ -12668,7 +13133,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"mute-stream@npm:0.0.8, mute-stream@npm:~0.0.4": +"mute-stream@npm:~0.0.4": version: 0.0.8 resolution: "mute-stream@npm:0.0.8" checksum: 315c40f463ec31deee54c5b8779207feb6b63dd4c58fe0f84ad46abdd6dac1ada578d53efde4a47b0ae4d29d453d35bb39ecdd98ee9ebf538929039a3a9945df @@ -12687,11 +13152,11 @@ fsevents@^1.2.7: linkType: hard "nan@npm:^2.12.1": - version: 2.14.1 - resolution: "nan@npm:2.14.1" + version: 2.14.0 + resolution: "nan@npm:2.14.0" dependencies: node-gyp: latest - checksum: eeab7cf260362a578f0b8622716a76d19bc009722049c7274748644ce03b2aa38ca01b3ac730a0497fd2c1ec882a21a0592e800a903994ed4d32acd06bf7eba7 + checksum: 988248a5f141b9ff728d00927607af857564707fb480de7dca775126af3ea5d7fe231958139fb866931742525ef0c0ca9c8d161188df81e1fa5fd79de1e2adc6 languageName: node linkType: hard @@ -12721,6 +13186,19 @@ fsevents@^1.2.7: languageName: node linkType: hard +"needle@npm:^2.2.1": + version: 2.4.0 + resolution: "needle@npm:2.4.0" + dependencies: + debug: ^3.2.6 + iconv-lite: ^0.4.4 + sax: ^1.2.4 + bin: + needle: ./bin/needle + checksum: e6f221672eab5bb0043175434b2ca45c0099e8683f9813237acc6a998525ae369a8946b92a841628ad570835fd61485629a44646431b11b8732c7b64a47cb678 + languageName: node + linkType: hard + "neo-async@npm:^2.6.0": version: 2.6.1 resolution: "neo-async@npm:2.6.1" @@ -12742,14 +13220,24 @@ fsevents@^1.2.7: languageName: node linkType: hard +"node-environment-flags@npm:^1.0.5": + version: 1.0.6 + resolution: "node-environment-flags@npm:1.0.6" + dependencies: + object.getownpropertydescriptors: ^2.0.3 + semver: ^5.7.0 + checksum: 1f6d1e636d5bb0caae32cd39b87b61ff1fa101d66db1ccb1417c8cb8df72089d10b0b5150bf10700c5f8a58f4f4ce7f64b1cf17392a3639b597e5fe9ea0dfcc0 + languageName: node + linkType: hard + "node-fetch-npm@npm:^2.0.2": - version: 2.0.4 - resolution: "node-fetch-npm@npm:2.0.4" + version: 2.0.2 + resolution: "node-fetch-npm@npm:2.0.2" dependencies: encoding: ^0.1.11 json-parse-better-errors: ^1.0.0 safe-buffer: ^5.1.1 - checksum: 378bb7203bdce21173a23ffedd0d084a0afc04e45a09c19f14584870080bef2f00a12543aac73dea69d5df1924a2881894a872b397e9ffda993545affbe3aefc + checksum: 2cb96e5395d2b360ff7bf14fe7f9999abb2d85281babd86894f4993482b99ed5f04d13acb102a2ae79565b8663b7dbedd52c7bce54939275f6a013b79a437926 languageName: node linkType: hard @@ -12771,44 +13259,43 @@ fsevents@^1.2.7: linkType: hard "node-gyp@npm:^5.0.2": - version: 5.1.0 - resolution: "node-gyp@npm:5.1.0" + version: 5.0.5 + resolution: "node-gyp@npm:5.0.5" dependencies: - env-paths: ^2.2.0 - glob: ^7.1.4 - graceful-fs: ^4.2.2 - mkdirp: ^0.5.1 - nopt: ^4.0.1 - npmlog: ^4.1.2 - request: ^2.88.0 - rimraf: ^2.6.3 - semver: ^5.7.1 + env-paths: ^1.0.0 + glob: ^7.0.3 + graceful-fs: ^4.1.2 + mkdirp: ^0.5.0 + nopt: 2 || 3 + npmlog: 0 || 1 || 2 || 3 || 4 + request: ^2.87.0 + rimraf: 2 + semver: ~5.3.0 tar: ^4.4.12 - which: ^1.3.1 + which: 1 bin: - node-gyp: bin/node-gyp.js - checksum: 255816280561301b5a10c6eeb255b579317d62c306c8a2b61ceb6a7ba30c5a2098e56a3071bcceb54010b6f6efaa90d43c49d53a2ecf0a854c5517a21f188be0 + node-gyp: ./bin/node-gyp.js + checksum: d51645f665e820fa84f2df1117eb8a8a0bc0d7cf51f0588e8c2c546d99811cd1fcec120ca61d9cebc44eb37b85737ff8416092f53d5c01271f8936a9376f09f3 languageName: node linkType: hard "node-gyp@npm:latest": - version: 6.1.0 - resolution: "node-gyp@npm:6.1.0" + version: 7.1.0 + resolution: "node-gyp@npm:7.1.0" dependencies: env-paths: ^2.2.0 glob: ^7.1.4 - graceful-fs: ^4.2.2 - mkdirp: ^0.5.1 - nopt: ^4.0.1 + graceful-fs: ^4.2.3 + nopt: ^4.0.3 npmlog: ^4.1.2 - request: ^2.88.0 + request: ^2.88.2 rimraf: ^2.6.3 - semver: ^5.7.1 - tar: ^4.4.12 - which: ^1.3.1 + semver: ^7.3.2 + tar: ^6.0.1 + which: ^2.0.2 bin: node-gyp: bin/node-gyp.js - checksum: c1d7b77db2e5c9a97ddc6a9b6dfd4149f57b69bee89f7f41c2f537911be5c84f310409aa0d149caf7c48c67110c387dd27797736e6f3b47eaf8c2288b3722090 + checksum: 78518a89047fdacb14c41586ce038584e21993f5c7ad31834c78cf06de0514fe4ef84a9034461695a10667bc81ee9ad8bc7d725cf951d4dfe1c0c175d763da59 languageName: node linkType: hard @@ -12826,6 +13313,19 @@ fsevents@^1.2.7: languageName: node linkType: hard +"node-notifier@npm:^5.4.2": + version: 5.4.3 + resolution: "node-notifier@npm:5.4.3" + dependencies: + growly: ^1.3.0 + is-wsl: ^1.1.0 + semver: ^5.5.0 + shellwords: ^0.1.1 + which: ^1.3.0 + checksum: 8188c3ea9d9c3cc7840da4109f622eb79e198931d5d6d5d751967f1ef72ea11fc0241d4274a063b9eb3f83f3a4a0cb7dd8557f5fea6391f763afca750e5a66c9 + languageName: node + linkType: hard + "node-notifier@npm:^6.0.0": version: 6.0.0 resolution: "node-notifier@npm:6.0.0" @@ -12839,14 +13339,57 @@ fsevents@^1.2.7: languageName: node linkType: hard +"node-pre-gyp@npm:^0.12.0": + version: 0.12.0 + resolution: "node-pre-gyp@npm:0.12.0" + dependencies: + detect-libc: ^1.0.2 + mkdirp: ^0.5.1 + needle: ^2.2.1 + nopt: ^4.0.1 + npm-packlist: ^1.1.6 + npmlog: ^4.0.2 + rc: ^1.2.7 + rimraf: ^2.6.1 + semver: ^5.3.0 + tar: ^4 + bin: + node-pre-gyp: ./bin/node-pre-gyp + checksum: d7cfe3c376280a7643aa3669d042592357d52b6af9a75e441dada2d71cf11c88b6fed82294b66e4773eb8b77e70be1aa008dde999e097d47e8d0aff1c3aa0b96 + languageName: node + linkType: hard + "node-releases@npm:^1.1.53": - version: 1.1.55 - resolution: "node-releases@npm:1.1.55" - checksum: b7612081e4beef55c5144903ccf75aa9af0dff6f719d2782624628c8d29c45034d16507047442bef1a2c5f6cd7b0535020b30ee34e3f0deee5a1155561de6900 + version: 1.1.58 + resolution: "node-releases@npm:1.1.58" + checksum: cd590a387e59206a3ed3c3624234f5848f8176e04f61b8e67c4f52df631c7e61f2ef2b7b320a2f5a42c92b65d31b2911d3a5aedacc86267e06f39155a6ce4d13 + languageName: node + linkType: hard + +"nopt@npm:2 || 3": + version: 3.0.6 + resolution: "nopt@npm:3.0.6" + dependencies: + abbrev: 1 + bin: + nopt: ./bin/nopt.js + checksum: cb2105d5286b96243d8b71964ccbce04aa8776d6479b8a3b567c2b5b3da86b35ff2b95c22e443337724d13acb60db9b107c64851424d9d60a088a461a976da29 languageName: node linkType: hard "nopt@npm:^4.0.1": + version: 4.0.1 + resolution: "nopt@npm:4.0.1" + dependencies: + abbrev: 1 + osenv: ^0.1.4 + bin: + nopt: ./bin/nopt.js + checksum: 1d220f1e15a0697dcb1be26a08e69dfa83b55f21a6cdaf20170fc546b56e722bb1f2e91887fcfed593e57a33c42aa51e760267bd72d83350367a5ad26382a49a + languageName: node + linkType: hard + +"nopt@npm:^4.0.3": version: 4.0.3 resolution: "nopt@npm:4.0.3" dependencies: @@ -12879,7 +13422,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0": +"normalize-path@npm:^3.0.0": version: 3.0.0 resolution: "normalize-path@npm:3.0.0" checksum: 215a701b471948884193628f3e38910353abf445306b519c42c2a30144b8beb8ca0a684da97bfc2ee11eb168c35c776d484274da4bd8f213d2b22f70579380ee @@ -12903,17 +13446,15 @@ fsevents@^1.2.7: linkType: hard "npm-bundled@npm:^1.0.1": - version: 1.1.1 - resolution: "npm-bundled@npm:1.1.1" - dependencies: - npm-normalize-package-bin: ^1.0.1 - checksum: f51ddba86970fc568a40449f51348de535ac71d93a2ce31195e978d0189899a0da696b3e51a5eb6e77a88890482ac873767c58c81763dda3dab410c9c1e99ca5 + version: 1.1.0 + resolution: "npm-bundled@npm:1.1.0" + checksum: 426259f62eaf7b0606cbe28d352801564f57f86c38868a631ef059ba166bd4c8e9d786e6c346088114a901b8893c137acfb4ecffcaa1ca6c57efac87f046864c languageName: node linkType: hard "npm-lifecycle@npm:^3.1.2": - version: 3.1.5 - resolution: "npm-lifecycle@npm:3.1.5" + version: 3.1.4 + resolution: "npm-lifecycle@npm:3.1.4" dependencies: byline: ^5.0.0 graceful-fs: ^4.1.15 @@ -12923,14 +13464,7 @@ fsevents@^1.2.7: uid-number: 0.0.6 umask: ^1.1.0 which: ^1.3.1 - checksum: 3b053e6e3e59ad0ee486fadfd4b563e5c77835d195675b6d4207c60ca953f2808a8316e1d599206421078f017950832ec6ada6b97d56439e0f9acd24b204c40f - languageName: node - linkType: hard - -"npm-normalize-package-bin@npm:^1.0.0, npm-normalize-package-bin@npm:^1.0.1": - version: 1.0.1 - resolution: "npm-normalize-package-bin@npm:1.0.1" - checksum: 495fae761551a765064f6937ed578a1d749c110355b63f5bbf6df9f0237862639de184a5c13fb9982d2a7745b2bd983e427bf16893ad98f20e53a32ad0254fc9 + checksum: ca4c508701901cbe24dbf0ebc54318c3f057cc4594602cfa8a57c44d947c0471bc41769a4a860dd11797c241af71270ef44830bbfd734954b70011b0d78daad8 languageName: node linkType: hard @@ -12946,14 +13480,13 @@ fsevents@^1.2.7: languageName: node linkType: hard -"npm-packlist@npm:^1.4.4": - version: 1.4.8 - resolution: "npm-packlist@npm:1.4.8" +"npm-packlist@npm:^1.1.6, npm-packlist@npm:^1.4.4": + version: 1.4.6 + resolution: "npm-packlist@npm:1.4.6" dependencies: ignore-walk: ^3.0.1 npm-bundled: ^1.0.1 - npm-normalize-package-bin: ^1.0.1 - checksum: 34c4bbd47daccd64e5e432b435ec37339bd472900dccd2a8f003d5004b4fff67b8561aadbbedaa5a5effd1dab9126b89fb28355fef1f3e85ff60ecf6b21433d9 + checksum: c5234a51e426e74e4edb3e0afc2373b1020cddb61c1e923e90615aba63537bbbeaaed7174fea9e54b435e49ddb98434402d55420baddc0a6f178501bbf2dc414 languageName: node linkType: hard @@ -12995,7 +13528,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"npmlog@npm:^4.1.2": +"npmlog@npm:0 || 1 || 2 || 3 || 4, npmlog@npm:^4.0.2, npmlog@npm:^4.1.2": version: 4.1.2 resolution: "npmlog@npm:4.1.2" dependencies: @@ -13014,7 +13547,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"nwsapi@npm:^2.2.0": +"nwsapi@npm:^2.0.7, nwsapi@npm:^2.2.0": version: 2.2.0 resolution: "nwsapi@npm:2.2.0" checksum: fb0f05113a829296f964688503d991b136d02d153769288d12226a4d52e17b50c073eceeee0ff1e8377ca8e86c244e1f9b849c9eed7fca97a03aa8a59f074c06 @@ -13094,12 +13627,12 @@ fsevents@^1.2.7: linkType: hard "object.getownpropertydescriptors@npm:^2.0.3": - version: 2.1.0 - resolution: "object.getownpropertydescriptors@npm:2.1.0" + version: 2.0.3 + resolution: "object.getownpropertydescriptors@npm:2.0.3" dependencies: - define-properties: ^1.1.3 - es-abstract: ^1.17.0-next.1 - checksum: c33dcc3061b56ec4d9f6d30620a364a5218aba8f592662f5ce346fcf523eb0483bc865d3f52848e267217285d831ca0a3d85836787bef5f86ecfa29f77dc249e + define-properties: ^1.1.2 + es-abstract: ^1.5.1 + checksum: aceab22c5f3890a44757053bd655ca4c10e28929ce55407c07c2c7b7e88225b75ecebdcc7f98c1b2c0e05ebe6a8903395b89d84233a9717d9684d9b6925fdfab languageName: node linkType: hard @@ -13132,7 +13665,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"object.values@npm:^1.1.0": +"object.values@npm:^1.1.1": version: 1.1.1 resolution: "object.values@npm:1.1.1" dependencies: @@ -13187,7 +13720,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"optionator@npm:^0.8.1, optionator@npm:^0.8.2, optionator@npm:^0.8.3": +"optionator@npm:^0.8.1": version: 0.8.3 resolution: "optionator@npm:0.8.3" dependencies: @@ -13201,6 +13734,20 @@ fsevents@^1.2.7: languageName: node linkType: hard +"optionator@npm:^0.9.1": + version: 0.9.1 + resolution: "optionator@npm:0.9.1" + dependencies: + deep-is: ^0.1.3 + fast-levenshtein: ^2.0.6 + levn: ^0.4.1 + prelude-ls: ^1.2.1 + type-check: ^0.4.0 + word-wrap: ^1.2.3 + checksum: bdf5683f986d00e173e6034837b7b6a9e68c7e1a37d7684b240adf1758db9076cfb04c9f64be29327881bb06c5017afb8b65012c5f02d07b180e9f6f42595ffd + languageName: node + linkType: hard + "ordered-read-streams@npm:^1.0.0": version: 1.0.1 resolution: "ordered-read-streams@npm:1.0.1" @@ -13260,6 +13807,15 @@ fsevents@^1.2.7: languageName: node linkType: hard +"p-each-series@npm:^1.0.0": + version: 1.0.0 + resolution: "p-each-series@npm:1.0.0" + dependencies: + p-reduce: ^1.0.0 + checksum: 3a8ed61be01368877ca1f632412fd781aa8bc0e9ab6469f0f10074887c1684f38b24e6f2a1479ad7edb5581800dc0aed5b41bfdf194a95c370bcb942ae7f881b + languageName: node + linkType: hard + "p-each-series@npm:^2.1.0": version: 2.1.0 resolution: "p-each-series@npm:2.1.0" @@ -13291,11 +13847,11 @@ fsevents@^1.2.7: linkType: hard "p-limit@npm:^2.0.0, p-limit@npm:^2.2.0": - version: 2.3.0 - resolution: "p-limit@npm:2.3.0" + version: 2.2.1 + resolution: "p-limit@npm:2.2.1" dependencies: p-try: ^2.0.0 - checksum: 5f20492a25c5f93fca2930dbbf41fa1bee46ef70eaa6b49ad1f7b963f309e599bc40507e0a3a531eee4bcd10fec4dd4a63291d0e3b2d84ac97d7403d43d271a9 + checksum: e61afdb3e791fa61baaba51d28e333fe612c34b309dc68ef4b0cf83c214ccad47c5c68a4965d0bb31eff74e7e6e809a91df4870176af8184d510460349cc0062 languageName: node linkType: hard @@ -13405,9 +13961,9 @@ fsevents@^1.2.7: linkType: hard "pako@npm:~1.0.5": - version: 1.0.11 - resolution: "pako@npm:1.0.11" - checksum: 71c60150b68220ec52a404f3c39a4ed38f750e42452b88fe0eb2e6b5c98e91f73f706444359b097aca1e6db83ef8fef50b5a9ec100e30a606cda6da8d45e5439 + version: 1.0.10 + resolution: "pako@npm:1.0.10" + checksum: a756e32a56c68f1c1ff592e47af2e0b2ed14f7c3f2104aa2852f5651bf57cb5bf2e6d8315daa2e364ecce01441c6ea450eada840dfffeaca621f70c9e89587f2 languageName: node linkType: hard @@ -13440,7 +13996,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"parse-asn1@npm:^5.0.0, parse-asn1@npm:^5.1.5": +"parse-asn1@npm:^5.0.0": version: 5.1.5 resolution: "parse-asn1@npm:5.1.5" dependencies: @@ -13539,6 +14095,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"parse5@npm:4.0.0": + version: 4.0.0 + resolution: "parse5@npm:4.0.0" + checksum: 05a06f5bb3e67eede77d5bef314229e23f98e607d10e76c1c1f650bc9831e3e8407c2fe297ee66a7b055e46a9a479bbb68bd0e7de89a640e76ef20dced1cd0c9 + languageName: node + linkType: hard + "parse5@npm:5.1.0": version: 5.1.0 resolution: "parse5@npm:5.1.0" @@ -13597,13 +14160,6 @@ fsevents@^1.2.7: languageName: node linkType: hard -"path-is-inside@npm:^1.0.2": - version: 1.0.2 - resolution: "path-is-inside@npm:1.0.2" - checksum: 9c1841199d18398ee5f6d79f57eaa57f8eb85743353ea97c6d933423f246f044575a10c1847c638c36440b050aef82665b9cb4fc60950866cd239f3d51835ef4 - languageName: node - linkType: hard - "path-key@npm:^2.0.0, path-key@npm:^2.0.1": version: 2.0.1 resolution: "path-key@npm:2.0.1" @@ -13704,10 +14260,10 @@ fsevents@^1.2.7: languageName: node linkType: hard -"picomatch@npm:^2.0.4, picomatch@npm:^2.0.5, picomatch@npm:^2.2.1": - version: 2.2.2 - resolution: "picomatch@npm:2.2.2" - checksum: 20fa75e0a58b39d83425b3db68744d5f6f361fd4fd66ec7745d884036d502abba0d553a637703af79939b844164b13e60eea339ccb043d7fbd74c3da2592b864 +"picomatch@npm:^2.0.4, picomatch@npm:^2.0.5": + version: 2.1.1 + resolution: "picomatch@npm:2.1.1" + checksum: 9bb7fa95711adb9bbde798009b4f008442c6114066131d9c8035ac79de2f66da6047dc480e75d23aaa2f8ef66a67bb20e603f5093d375ff2179b7c12f9b70888 languageName: node linkType: hard @@ -13775,7 +14331,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"pkg-dir@npm:^4.1.0, pkg-dir@npm:^4.2.0": +"pkg-dir@npm:^4.2.0": version: 4.2.0 resolution: "pkg-dir@npm:4.2.0" dependencies: @@ -13841,6 +14397,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"prelude-ls@npm:^1.2.1": + version: 1.2.1 + resolution: "prelude-ls@npm:1.2.1" + checksum: bc1649f521e8928cde0e1b349b224de2e6f00b71361a4a44f2e4a615342b6e1ae30366c32d26412dabe74d999a40f79c0ae044ae6b17cf19af935e74d12ea4fa + languageName: node + linkType: hard + "prelude-ls@npm:~1.1.2": version: 1.1.2 resolution: "prelude-ls@npm:1.1.2" @@ -13866,6 +14429,18 @@ fsevents@^1.2.7: languageName: node linkType: hard +"pretty-format@npm:^24.9.0": + version: 24.9.0 + resolution: "pretty-format@npm:24.9.0" + dependencies: + "@jest/types": ^24.9.0 + ansi-regex: ^4.0.0 + ansi-styles: ^3.2.0 + react-is: ^16.8.4 + checksum: a61c5c21a638239ebdc9bfe259746dc1aca29555f8da997318031ebee3ea36662f60f329132365c0cace2a0d122a1f7f9550261b3f04aaa18029d16efc5b45fe + languageName: node + linkType: hard + "pretty-format@npm:^25.5.0": version: 25.5.0 resolution: "pretty-format@npm:25.5.0" @@ -13938,12 +14513,12 @@ fsevents@^1.2.7: linkType: hard "prompts@npm:^2.0.1": - version: 2.3.2 - resolution: "prompts@npm:2.3.2" + version: 2.3.0 + resolution: "prompts@npm:2.3.0" dependencies: kleur: ^3.0.3 - sisteransi: ^1.0.4 - checksum: a910ba767eb61bfba15d8ef602fb50eb3f99809790e078941833c59f549557f1edd6dcdf8c749568379c2f2babe930bd3b87755fea639ad516fa1a1974e0fe7b + sisteransi: ^1.0.3 + checksum: 8ae77324f19ad7096c313898748e422c2cd11a40ccb174a9c6f6128ce1f3344f96d90e9d6650f8dabda1cc5e4a35fcdc7b34beaaf42270ccb803a3740f1e9e28 languageName: node linkType: hard @@ -13986,10 +14561,10 @@ fsevents@^1.2.7: languageName: node linkType: hard -"psl@npm:^1.1.28": - version: 1.8.0 - resolution: "psl@npm:1.8.0" - checksum: 92d47c6257456878bfa8190d76b84de69bcefdc129eeee3f9fe204c15fd08d35fe5b8627033f39b455e40a9375a1474b25ff4ab2c5448dd8c8f75da692d0f5b4 +"psl@npm:^1.1.24, psl@npm:^1.1.28": + version: 1.6.0 + resolution: "psl@npm:1.6.0" + checksum: dc9d78b0518c90361426f0fad42a5a40f6b416f0ff9ab175cdeaad0c15058482e07536fc428c8d4c290b97cdfa25c1069d2834a2fe12b8cc6104858a71f3e467 languageName: node linkType: hard @@ -14045,7 +14620,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"punycode@npm:^1.3.2": +"punycode@npm:^1.3.2, punycode@npm:^1.4.1": version: 1.4.1 resolution: "punycode@npm:1.4.1" checksum: 5ce1e044cee2b12f1c65ccd523d7e71d6578f2c77f5c21c2e7a9d588535559c9508571d42638c131dab93cbe9a7b37bce1a7475d43fc8236c99dfe1efc36cfa5 @@ -14087,6 +14662,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"quick-lru@npm:5.1.0": + version: 5.1.0 + resolution: "quick-lru@npm:5.1.0" + checksum: ac73e7ba162e359f115fb4557c894db6311a3cb13d0749f5fab351ab8e986ebbbbab0f007d2d5e4e4da2b3e999c6c16080497198a3e3c87c42bfe2f6132d685e + languageName: node + linkType: hard + "quick-lru@npm:^1.0.0": version: 1.1.0 resolution: "quick-lru@npm:1.1.0" @@ -14120,10 +14702,24 @@ fsevents@^1.2.7: languageName: node linkType: hard -"react-is@npm:^16.12.0": - version: 16.13.1 - resolution: "react-is@npm:16.13.1" - checksum: 11bcf1267a314a522615f626f3ce3727a3a24cdbf61c4d452add3550a7875326669631326cfb1ba3e92b6f72244c32ffecf93ad21c0cad8455d3e169d0e3f060 +"rc@npm:^1.2.7": + version: 1.2.8 + resolution: "rc@npm:1.2.8" + dependencies: + deep-extend: ^0.6.0 + ini: ~1.3.0 + minimist: ^1.2.0 + strip-json-comments: ~2.0.1 + bin: + rc: ./cli.js + checksum: ea2b7f7cee201a67923a2240de594a5d9b59bd312b814b06536d3d609a416dfd6fb9b85ea2abfd3b8a4eb5ed33eaff946ee75a8f2b7fb10941073c5cfee6b7a5 + languageName: node + linkType: hard + +"react-is@npm:^16.12.0, react-is@npm:^16.8.4": + version: 16.12.0 + resolution: "react-is@npm:16.12.0" + checksum: ddcafd1c3f37118880c7d21720d8481842b1cda8f2724d81a1c103919c5764a697fefd65451396d47ac634ea7850df7829ef0b1094a84b1d18fbfa0c9400b7c9 languageName: node linkType: hard @@ -14146,18 +14742,18 @@ fsevents@^1.2.7: linkType: hard "read-package-json@npm:1 || 2, read-package-json@npm:^2.0.0, read-package-json@npm:^2.0.13": - version: 2.1.1 - resolution: "read-package-json@npm:2.1.1" + version: 2.1.0 + resolution: "read-package-json@npm:2.1.0" dependencies: glob: ^7.1.1 graceful-fs: ^4.1.2 json-parse-better-errors: ^1.0.1 normalize-package-data: ^2.0.0 - npm-normalize-package-bin: ^1.0.0 + slash: ^1.0.0 dependenciesMeta: graceful-fs: optional: true - checksum: 123b4e6a8f1880c9461a534de4aef75ee86b4814e93c207b716d2398a55aa47675f14895a8a91ae1b7536a83fd81982c41f96d8a1eacebaa590e8a2e2682be51 + checksum: 8c6f7d838abba757a3bbe13d36428cd233102914ab4702ae6efb3c54856d1fd5552d9092cbeb9ce80fb86faccf5e5e5520e7ce34963047be52aa6981efaf4e39 languageName: node linkType: hard @@ -14202,6 +14798,16 @@ fsevents@^1.2.7: languageName: node linkType: hard +"read-pkg-up@npm:^4.0.0": + version: 4.0.0 + resolution: "read-pkg-up@npm:4.0.0" + dependencies: + find-up: ^3.0.0 + read-pkg: ^3.0.0 + checksum: e611538e096723fa15f36960a293b26704145d646a3ddae6a206fa50ddba18f655b2901581ef06943758cebe8660bbf6b3b07bad645f2256cf2f775e64867ea5 + languageName: node + linkType: hard + "read-pkg-up@npm:^7.0.1": version: 7.0.1 resolution: "read-pkg-up@npm:7.0.1" @@ -14268,8 +14874,8 @@ fsevents@^1.2.7: linkType: hard "readable-stream@npm:1 || 2, readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.1, readable-stream@npm:^2.0.2, readable-stream@npm:^2.0.5, readable-stream@npm:^2.0.6, readable-stream@npm:^2.1.5, readable-stream@npm:^2.2.2, readable-stream@npm:^2.3.3, readable-stream@npm:^2.3.5, readable-stream@npm:^2.3.6, readable-stream@npm:~2.3.6": - version: 2.3.7 - resolution: "readable-stream@npm:2.3.7" + version: 2.3.6 + resolution: "readable-stream@npm:2.3.6" dependencies: core-util-is: ~1.0.0 inherits: ~2.0.3 @@ -14278,18 +14884,30 @@ fsevents@^1.2.7: safe-buffer: ~5.1.1 string_decoder: ~1.1.1 util-deprecate: ~1.0.1 - checksum: 6e3826560627a751feb3a8aec073ef94c6e47b8c8e06eb5d136323b5f09db9d2077c23a42a8d54ed0123695af54b36c1e4271a8ec55112b15f4b89020d8dec72 + checksum: 2240daa70aa9485971b1be4e20dfb474eaf04d317db92917afdaf55dd170c547a1f82e47026a1c209c85df31ee8951c4ab9427ab7679d4fbebfad039d9c77ff5 languageName: node linkType: hard -"readable-stream@npm:2 || 3, readable-stream@npm:^3.0.2, readable-stream@npm:^3.6.0": - version: 3.6.0 - resolution: "readable-stream@npm:3.6.0" +"readable-stream@npm:2 || 3, readable-stream@npm:^3.0.2, readable-stream@npm:^3.0.6": + version: 3.4.0 + resolution: "readable-stream@npm:3.4.0" dependencies: inherits: ^2.0.3 string_decoder: ^1.1.1 util-deprecate: ^1.0.1 - checksum: f178b1daa80d9e58ebba71dbb08486430aa6f0dea3a22a1b7401f3f6983077d0bc0edea43099db06b8d006c9ad48d6383e8fb72c05d5b187670aeaf1b9b44f00 + checksum: da65cfbd7636fe9e75a466435c96f54451e28c135573b2fb3c071111c887c471b63587e46a272210abdca4774bae5272e5c6cbf18b15e0c53f0937c864cb695d + languageName: node + linkType: hard + +"readable-stream@npm:>=1.1.13-1 <1.2.0-0": + version: 1.1.14 + resolution: "readable-stream@npm:1.1.14" + dependencies: + core-util-is: ~1.0.0 + inherits: ~2.0.1 + isarray: 0.0.1 + string_decoder: ~0.10.x + checksum: e4c30b6b8495c11fc83e1b5fcb03b378127d93c953413973a25500991d0bf2b2e158e329d0f56d294e24a61c7751b874570158f24f97ebacb8a5f2fdcc05a0ec languageName: node linkType: hard @@ -14316,12 +14934,12 @@ fsevents@^1.2.7: languageName: node linkType: hard -"readdirp@npm:~3.4.0": - version: 3.4.0 - resolution: "readdirp@npm:3.4.0" +"realpath-native@npm:^1.1.0": + version: 1.1.0 + resolution: "realpath-native@npm:1.1.0" dependencies: - picomatch: ^2.2.1 - checksum: 0159f43eb0a90cf4fde5989b607e0a6bef4e6332dc8648f1b50fbc013f1158e1d021bcfd6dad1dc2895da2bb14cdac408239d047e3d61a01dd3a44376e6ec1f1 + util.promisify: ^1.0.0 + checksum: 67ce6bdaf8f8dd2a85e771b7b79b74b8a47299315a0a3553947df1ab4117de80d1910a2ba856a480d9e4284172cf8d7df209117f5522475e30bb7ecdee63b75b languageName: node linkType: hard @@ -14388,19 +15006,19 @@ fsevents@^1.2.7: linkType: hard "regenerator-runtime@npm:^0.13.4": - version: 0.13.5 - resolution: "regenerator-runtime@npm:0.13.5" - checksum: 8d8ee0eca26e0491085033caf2b1b95379c4db21e38d79cde52bbd4014a3865eee26ec0f4f958682e8600f185f2f5dbcd8c6685b9b9261639767929c19b5bcd2 + version: 0.13.4 + resolution: "regenerator-runtime@npm:0.13.4" + checksum: d6165e7ba67f28f813a28fc07aa0c771ae8df913a3277c0aa837957d72debc4f1df4f53a6e98636c1cc87c6ba643ce8c522eb36542bbc4234c645af9d992c7c2 languageName: node linkType: hard "regenerator-transform@npm:^0.14.2": - version: 0.14.4 - resolution: "regenerator-transform@npm:0.14.4" + version: 0.14.2 + resolution: "regenerator-transform@npm:0.14.2" dependencies: "@babel/runtime": ^7.8.4 private: ^0.1.8 - checksum: f663bcc3a38299259ba2bbac80d8079f2139809c46f796e85089fe90bf299bfaa2a4abef07eaddb4e7c23b8c5f95868850f935a40c6cb7042b0e83b82afc1b93 + checksum: c0d2768e20b0da61fcf8d9fcb7b3b1da4a2220668f938463b5f968e47e17030135f1f8334c4ee9902b361ba0c940d1e69d0d491dd16c9f30641867801120faac languageName: node linkType: hard @@ -14414,10 +15032,10 @@ fsevents@^1.2.7: languageName: node linkType: hard -"regexpp@npm:^2.0.1": - version: 2.0.1 - resolution: "regexpp@npm:2.0.1" - checksum: e537f6c1b59f31a8d6381c64408d7a852aa98794896702fdadef2fa8b049f7d876da30cd0c6f6a64488aa58ad3b225d606cc689059628056b5a593e5422c38d6 +"regexpp@npm:^3.1.0": + version: 3.1.0 + resolution: "regexpp@npm:3.1.0" + checksum: 69d0ce6b449cf35d3732d6341a1e70850360ffc619f8eef10629871c462e614853fffb80d3f00fc17cd0bb5b8f34b0cde5be4b434e72c0eb3fbba2360c8b5ac4 languageName: node linkType: hard @@ -14505,9 +15123,9 @@ fsevents@^1.2.7: linkType: hard "replace-ext@npm:^1.0.0": - version: 1.0.1 - resolution: "replace-ext@npm:1.0.1" - checksum: 29b0f4ec6fda1591eb9b7c2d300b3a099f61ab0f6870ac5c62a5fa1cc8208085b8c5bf77684e76dcddfc37734831449c92ac488bc2ba9d899476db6be9b4240c + version: 1.0.0 + resolution: "replace-ext@npm:1.0.0" + checksum: edc3de6cad8bfca257f18a7d0fcdb81d84333cb781737bae29b665bbe903c2acae2649f04044b36358caf325bfe9f44b7404936a0841f14e4faea9c2f4dde432 languageName: node linkType: hard @@ -14529,24 +15147,76 @@ fsevents@^1.2.7: lodash: ^4.17.15 peerDependencies: request: ^2.34 - checksum: 1235a6071b8a59c771d7c006dcc16e13ef0069a1248c9d5c95ab2f510fe42c9889e99b49a43fdeb331a47be0b93c85fb69a40ea72ed6c0011713026dfc0453ca + checksum: 1235a6071b8a59c771d7c006dcc16e13ef0069a1248c9d5c95ab2f510fe42c9889e99b49a43fdeb331a47be0b93c85fb69a40ea72ed6c0011713026dfc0453ca + languageName: node + linkType: hard + +"request-promise-core@npm:1.1.4": + version: 1.1.4 + resolution: "request-promise-core@npm:1.1.4" + dependencies: + lodash: ^4.17.19 + peerDependencies: + request: ^2.34 + checksum: 7c9c90bf00158f6669e7167425cd113edadaca44b5aebc7c6a7969d9f50d93bfae8275038bdf6389b4e94f1cacacca7e5830d28701692818bdfba353eeb2ddfd + languageName: node + linkType: hard + +"request-promise-native@npm:^1.0.5": + version: 1.0.8 + resolution: "request-promise-native@npm:1.0.8" + dependencies: + request-promise-core: 1.1.3 + stealthy-require: ^1.1.1 + tough-cookie: ^2.3.3 + peerDependencies: + request: ^2.34 + checksum: 29986fe3ccd11e644d60175ea81c7fbadcbe943ee6f551cad062024e6f92a5a2163d3f3af1c9e5a573641d1625377c8c716245b3a4a4e5b3811e8558126720e7 languageName: node linkType: hard "request-promise-native@npm:^1.0.7": - version: 1.0.8 - resolution: "request-promise-native@npm:1.0.8" + version: 1.0.9 + resolution: "request-promise-native@npm:1.0.9" dependencies: - request-promise-core: 1.1.3 + request-promise-core: 1.1.4 stealthy-require: ^1.1.1 tough-cookie: ^2.3.3 peerDependencies: request: ^2.34 - checksum: 29986fe3ccd11e644d60175ea81c7fbadcbe943ee6f551cad062024e6f92a5a2163d3f3af1c9e5a573641d1625377c8c716245b3a4a4e5b3811e8558126720e7 + checksum: 532570f00559f826ad372d36a152c3cf1aa184d0876b04ed7c18a9fa391fa2108978eca837ae1fb681d2dab63bd6c74c6660022b82ecdb2682d77859314d0b6e + languageName: node + linkType: hard + +"request@npm:^2.87.0": + version: 2.88.0 + resolution: "request@npm:2.88.0" + dependencies: + aws-sign2: ~0.7.0 + aws4: ^1.8.0 + caseless: ~0.12.0 + combined-stream: ~1.0.6 + extend: ~3.0.2 + forever-agent: ~0.6.1 + form-data: ~2.3.2 + har-validator: ~5.1.0 + http-signature: ~1.2.0 + is-typedarray: ~1.0.0 + isstream: ~0.1.2 + json-stringify-safe: ~5.0.1 + mime-types: ~2.1.19 + oauth-sign: ~0.9.0 + performance-now: ^2.1.0 + qs: ~6.5.2 + safe-buffer: ^5.1.2 + tough-cookie: ~2.4.3 + tunnel-agent: ^0.6.0 + uuid: ^3.3.2 + checksum: 2735b6a5d6dbd7bac9e1277843f3f920e8e306c6d24e1c979e5d8273e9a1719cf353286d5030505b663f494e92f6779b278a341836e8e889bd9dd49f83df5802 languageName: node linkType: hard -"request@npm:^2.88.0": +"request@npm:^2.88.0, request@npm:^2.88.2": version: 2.88.2 resolution: "request@npm:2.88.2" dependencies: @@ -14667,7 +15337,7 @@ resolve@1.1.7: languageName: node linkType: hard -"resolve@^1.1.4, resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.11.1, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.17.0, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.8.1": +"resolve@^1.1.4, resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.11.1, resolve@^1.13.1, resolve@^1.17.0, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.8.1": version: 1.17.0 resolution: "resolve@npm:1.17.0" dependencies: @@ -14683,7 +15353,7 @@ resolve@1.1.7: languageName: node linkType: hard -"resolve@patch:resolve@^1.1.4#builtin, resolve@patch:resolve@^1.1.6#builtin, resolve@patch:resolve@^1.1.7#builtin, resolve@patch:resolve@^1.10.0#builtin, resolve@patch:resolve@^1.11.0#builtin, resolve@patch:resolve@^1.11.1#builtin, resolve@patch:resolve@^1.12.0#builtin, resolve@patch:resolve@^1.13.1#builtin, resolve@patch:resolve@^1.17.0#builtin, resolve@patch:resolve@^1.3.2#builtin, resolve@patch:resolve@^1.4.0#builtin, resolve@patch:resolve@^1.8.1#builtin": +"resolve@patch:resolve@^1.1.4#builtin, resolve@patch:resolve@^1.1.6#builtin, resolve@patch:resolve@^1.1.7#builtin, resolve@patch:resolve@^1.10.0#builtin, resolve@patch:resolve@^1.11.0#builtin, resolve@patch:resolve@^1.11.1#builtin, resolve@patch:resolve@^1.13.1#builtin, resolve@patch:resolve@^1.17.0#builtin, resolve@patch:resolve@^1.3.2#builtin, resolve@patch:resolve@^1.4.0#builtin, resolve@patch:resolve@^1.8.1#builtin": version: 1.17.0 resolution: "resolve@patch:resolve@npm%3A1.17.0#builtin::version=1.17.0&hash=3388aa" dependencies: @@ -14702,16 +15372,6 @@ resolve@1.1.7: languageName: node linkType: hard -"restore-cursor@npm:^3.1.0": - version: 3.1.0 - resolution: "restore-cursor@npm:3.1.0" - dependencies: - onetime: ^5.1.0 - signal-exit: ^3.0.2 - checksum: 38e0af0830336dbc7d36b8d02e9194489dc52aaf64f41d02c427303a78552019434ad87082d67ce171a569a8be898caf7c70d5e17bd347cf6f7bd38d332d0bd4 - languageName: node - linkType: hard - "ret@npm:~0.1.10": version: 0.1.15 resolution: "ret@npm:0.1.15" @@ -14726,43 +15386,43 @@ resolve@1.1.7: languageName: node linkType: hard -"reusify@npm:^1.0.4": +"reusify@npm:^1.0.0": version: 1.0.4 resolution: "reusify@npm:1.0.4" checksum: 08ef02ed0514f020a51131ba2e6c27c66ccebe25d49cfc83467a0d4054db4634a2853480d0895c710b645ab66af1a6fb3e183888306ae559413bd96c69f39ccd languageName: node linkType: hard -"rimraf@npm:2.6.3": - version: 2.6.3 - resolution: "rimraf@npm:2.6.3" +"rimraf@npm:2, rimraf@npm:^2.5.4, rimraf@npm:^2.6.1, rimraf@npm:^2.6.2, rimraf@npm:^2.6.3": + version: 2.7.1 + resolution: "rimraf@npm:2.7.1" dependencies: glob: ^7.1.3 bin: rimraf: ./bin.js - checksum: c9ce1854f19327606934558f4729b0f7aa7b9f1a3e7ca292d56261cce1074e20b0a0b16689166da6d8ab24ed9c30f7c71fba0df38e1d37f0233b6f48307c5c7a + checksum: 059efac2838ef917d4d1da1d80e724ad28c120cdf14ca6ed27ca72db2dc70be3e25421cba5947c6ec3d804c1d2bb9a247254653816ee0722bf943ffdd1ae19ef languageName: node linkType: hard -"rimraf@npm:^2.5.4, rimraf@npm:^2.6.2, rimraf@npm:^2.6.3": - version: 2.7.1 - resolution: "rimraf@npm:2.7.1" +"rimraf@npm:2.6.3": + version: 2.6.3 + resolution: "rimraf@npm:2.6.3" dependencies: glob: ^7.1.3 bin: rimraf: ./bin.js - checksum: 059efac2838ef917d4d1da1d80e724ad28c120cdf14ca6ed27ca72db2dc70be3e25421cba5947c6ec3d804c1d2bb9a247254653816ee0722bf943ffdd1ae19ef + checksum: c9ce1854f19327606934558f4729b0f7aa7b9f1a3e7ca292d56261cce1074e20b0a0b16689166da6d8ab24ed9c30f7c71fba0df38e1d37f0233b6f48307c5c7a languageName: node linkType: hard "rimraf@npm:^3.0.0": - version: 3.0.2 - resolution: "rimraf@npm:3.0.2" + version: 3.0.0 + resolution: "rimraf@npm:3.0.0" dependencies: glob: ^7.1.3 bin: - rimraf: bin.js - checksum: f0de3e445581e64a8a077af476cc30708e659f5779ec2ca2a161556d0792aa318a685923798ae22055b4ecd02b9aff444ef619578f7af53cf8e0e248031e3dee + rimraf: ./bin.js + checksum: c44ba057c5aa6a8dfc79c8544f660480543fa996920cb76a010ffd353e6309165f73abcd893440b9f3e7204a125711efa9352ef41c5fa1f673f2be04e365d46c languageName: node linkType: hard @@ -14893,10 +15553,12 @@ resolve@1.1.7: languageName: node linkType: hard -"run-async@npm:^2.2.0, run-async@npm:^2.4.0": - version: 2.4.1 - resolution: "run-async@npm:2.4.1" - checksum: b1f06da336029be9c08312309ccdda107558ebf3e1212e960d7a54020f888a449ade2cb8b432a9a6750537ed80119a3c798f7592e8f8518f193ff4c50c13d4a3 +"run-async@npm:^2.2.0": + version: 2.3.0 + resolution: "run-async@npm:2.3.0" + dependencies: + is-promise: ^2.1.0 + checksum: a488425557ecbcd415e250b9b103c57feb4790b1b585607aad5d3f58c3a2f3fdaaa551c0f14d46b046324f7eaa5f7bc2e7dea08fb0c9717c5587d80595045a81 languageName: node linkType: hard @@ -14916,23 +15578,23 @@ resolve@1.1.7: languageName: node linkType: hard -"rxjs@npm:^6.3.3, rxjs@npm:^6.4.0, rxjs@npm:^6.5.3": - version: 6.5.5 - resolution: "rxjs@npm:6.5.5" +"rxjs@npm:^6.3.3, rxjs@npm:^6.4.0": + version: 6.5.3 + resolution: "rxjs@npm:6.5.3" dependencies: tslib: ^1.9.0 - checksum: a3882e0374af8aa32459ea9219fdcf24cb5a943cdf35f50da4ded48435ec474647c315b85c3e7b703927a55689e54037538cbd24789548d07b74e4865c4adb78 + checksum: 45c07957c7c953019ed9fd70995e3eeaf4d1f8ec5a3e461fa66efbb269fb6eb0cb0e4297d4fe18bc06f13ee05eb056eb55ceca46652f7ac7f6acdebc91c3ab97 languageName: node linkType: hard -"safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:~5.2.0": +"safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:~5.2.0": version: 5.2.0 resolution: "safe-buffer@npm:5.2.0" checksum: e513079353a235749e64dc3b1ade741caf651c09d1291ee826e68d42c08913dcd2c76b291dd23979b0fd0bd551d99f4a3d8cc05aef4e9c75bebf6cbbd310b129 languageName: node linkType: hard -"safe-buffer@npm:^5.1.1, safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1": +"safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1": version: 5.1.2 resolution: "safe-buffer@npm:5.1.2" checksum: 2708587c1b5e70a5e420714ceb59f30f5791c6e831d39812125a008eca63a4ac18578abd020a0776ea497ff03b4543f2b2a223a7b9073bf2d6c7af9ec6829218 @@ -14974,6 +15636,13 @@ resolve@1.1.7: languageName: node linkType: hard +"sax@npm:^1.2.4": + version: 1.2.4 + resolution: "sax@npm:1.2.4" + checksum: 9d7668d69105e89e2c1a4b2fdc12c72e1a2f78b825f7b4a8a2ea5cdfebf70920bd17715bed55264c3b3959616a0695f8ad2d098bf6944fbd0953ee9c695dceef + languageName: node + linkType: hard + "saxes@npm:^3.1.9": version: 3.1.11 resolution: "saxes@npm:3.1.11" @@ -15006,7 +15675,7 @@ resolve@1.1.7: languageName: node linkType: hard -"semver@npm:2 || 3 || 4 || 5, semver@npm:2.x || 3.x || 4 || 5, semver@npm:^5.3.0, semver@npm:^5.4.1, semver@npm:^5.5.0, semver@npm:^5.5.1, semver@npm:^5.6.0, semver@npm:^5.7.0, semver@npm:^5.7.1": +"semver@npm:2 || 3 || 4 || 5, semver@npm:2.x || 3.x || 4 || 5, semver@npm:^5.3.0, semver@npm:^5.4.1, semver@npm:^5.5.0, semver@npm:^5.5.1, semver@npm:^5.6.0, semver@npm:^5.7.0": version: 5.7.1 resolution: "semver@npm:5.7.1" bin: @@ -15024,7 +15693,7 @@ resolve@1.1.7: languageName: node linkType: hard -"semver@npm:^6.0.0, semver@npm:^6.1.2, semver@npm:^6.2.0, semver@npm:^6.3.0": +"semver@npm:^6.0.0, semver@npm:^6.2.0, semver@npm:^6.3.0": version: 6.3.0 resolution: "semver@npm:6.3.0" bin: @@ -15033,6 +15702,24 @@ resolve@1.1.7: languageName: node linkType: hard +"semver@npm:^7.2.1, semver@npm:^7.3.2": + version: 7.3.2 + resolution: "semver@npm:7.3.2" + bin: + semver: bin/semver.js + checksum: bceb46d396d039afb5be2b2860bce1b0a43ecbadc72dde7ebe9c56dd9035ca50d9b8e086208ff9bbe53773ebde0bcfc6fc0842d7358398bca7054bb9ced801e3 + languageName: node + linkType: hard + +"semver@npm:~5.3.0": + version: 5.3.0 + resolution: "semver@npm:5.3.0" + bin: + semver: ./bin/semver + checksum: 8211d9f88e8b4c6c5bd45f4383a4354d252afbf3d35b216b41bf1820913199a8cdeead8ad6d93b11c70a02c575ab0d76a13e35fd335d7f75551645feb5d1af2f + languageName: node + linkType: hard + "serialize-javascript@npm:^2.1.2": version: 2.1.2 resolution: "serialize-javascript@npm:2.1.2" @@ -15146,9 +15833,9 @@ resolve@1.1.7: linkType: hard "signal-exit@npm:^3.0.0, signal-exit@npm:^3.0.2": - version: 3.0.3 - resolution: "signal-exit@npm:3.0.3" - checksum: f8f3fec95c8d1f9ad7e3cce07e1195f84e7a85cdcb4e825e8a2b76aa5406a039083d2bc9662b3cf40e6948262f41277047d20e6fbd58c77edced0b18fab647d8 + version: 3.0.2 + resolution: "signal-exit@npm:3.0.2" + checksum: e4a13a074d8f32d804950dd21490295513c683a5692685b96087b29de3b74990e798c61c7bd4c6133c34c890f6133ad6361e26fd6a7b142b86aa4df13449444e languageName: node linkType: hard @@ -15159,10 +15846,17 @@ resolve@1.1.7: languageName: node linkType: hard -"sisteransi@npm:^1.0.4": - version: 1.0.5 - resolution: "sisteransi@npm:1.0.5" - checksum: 6554debe10fa4c6a7e8d58531313fdb61c39bb435ba420f8d7a01d8aaffecc654cca846b586e33f3c904350e24f229d5bbd8069abdb583c93252849a0f73e933 +"sisteransi@npm:^1.0.3": + version: 1.0.4 + resolution: "sisteransi@npm:1.0.4" + checksum: a8d203079e4636124fbb2092a93186774b8363b95de8848df3fe9a5eac0bc95b36d64e2966d36a05acc8b91f1da686a71d9999d590735a32a954efa4685535dc + languageName: node + linkType: hard + +"slash@npm:^1.0.0": + version: 1.0.0 + resolution: "slash@npm:1.0.0" + checksum: fb026d08e401ab066ab62d3588922fd3efede998c0f4dc2041f83c5032f561defa92adc72a8ab02b28aaf1b82cc062e1963c6833e86804c5035d93c05387d06e languageName: node linkType: hard @@ -15278,25 +15972,25 @@ resolve@1.1.7: linkType: hard "source-map-resolve@npm:^0.5.0": - version: 0.5.3 - resolution: "source-map-resolve@npm:0.5.3" + version: 0.5.2 + resolution: "source-map-resolve@npm:0.5.2" dependencies: - atob: ^2.1.2 + atob: ^2.1.1 decode-uri-component: ^0.2.0 resolve-url: ^0.2.1 source-map-url: ^0.4.0 urix: ^0.1.0 - checksum: 042ad0c0ba70458ba45fc8726a4eb61068ca0a5273578994803e25fc0fb8da00854cf5004616c9b6d0cb7fcd528c50313789d75dfc56a2f5c789cbd332bf4331 + checksum: 8d7c4dc1ca8fbccba9bb26e28fe65ff1635c0ab67eaebb2a6d8c56241da8d364f9fcd15e60d6be35d760c2f84c32ded213c3a2ff27cda305cfa0995a576c8303 languageName: node linkType: hard "source-map-support@npm:^0.5.16, source-map-support@npm:^0.5.6, source-map-support@npm:~0.5.12": - version: 0.5.19 - resolution: "source-map-support@npm:0.5.19" + version: 0.5.16 + resolution: "source-map-support@npm:0.5.16" dependencies: buffer-from: ^1.0.0 source-map: ^0.6.0 - checksum: 59d4efaae97755155b078413ecba63517e3ef054cc7ab767bbd30e6f3054be2ae8e8f5cce7eef53b7eb93e98fe27a58dd8f5e7abfb13144ba420ddaf5267bbb2 + checksum: cf44ce8b694a32bc63f686826bc7e254e5025d4c7eeb4f0c76f61c828cd81067f0df88c0414c50db728dc3d207fb032d7c50c3b419286330332ddbdd4d2689d7 languageName: node linkType: hard @@ -15328,10 +16022,19 @@ resolve@1.1.7: languageName: node linkType: hard +"source-map@npm:~0.4.0, source-map@npm:~0.4.2": + version: 0.4.4 + resolution: "source-map@npm:0.4.4" + dependencies: + amdefine: ">=0.0.4" + checksum: 8602363865290e334111cafb2335ccd8faef321b5998f88e6a64278dd0bd27a2b1e614622e706bc943635eb5402cf155078ff2c684b78f28377bc8b47f47bf9c + languageName: node + linkType: hard + "sourcemap-codec@npm:^1.4.4": - version: 1.4.8 - resolution: "sourcemap-codec@npm:1.4.8" - checksum: 4d56d1232a45af813606d1755f11e7ae6b3542c615a7e3f904382f0134a9412ba8d090e83749254d78449eafdfcc62d5158b8f35e6241480b51b74b5c46b99f9 + version: 1.4.6 + resolution: "sourcemap-codec@npm:1.4.6" + checksum: 22a45804fe31febb6e22749999271530d4d13dd8a796796a545fefe464cfec6b144665dd8c0cfcebeeb62496f1b55b29bc17543e46b027fc23b81e3d51b53f35 languageName: node linkType: hard @@ -15353,9 +16056,9 @@ resolve@1.1.7: linkType: hard "spdx-exceptions@npm:^2.1.0": - version: 2.3.0 - resolution: "spdx-exceptions@npm:2.3.0" - checksum: 3cbd2498897dc384158666a9dd7435e3b42ece5da42fd967b218b790e248381d001ec77a676d13d1f4e8da317d97b7bc0ebf4fff37bfbb95923d49b024030c96 + version: 2.2.0 + resolution: "spdx-exceptions@npm:2.2.0" + checksum: 748c042fb1928b5ece6b5ae939ef091207e0c45066419d6c6a4944e21219c038a2a1a6df60d6b1adf3a600cd1da846d72adb246b09d9b8ef56c12b5d92bbfc01 languageName: node linkType: hard @@ -15509,21 +16212,21 @@ resolve@1.1.7: linkType: hard "stream-http@npm:^3.0.0": - version: 3.1.1 - resolution: "stream-http@npm:3.1.1" + version: 3.1.0 + resolution: "stream-http@npm:3.1.0" dependencies: builtin-status-codes: ^3.0.0 - inherits: ^2.0.4 - readable-stream: ^3.6.0 - xtend: ^4.0.2 - checksum: 59334d615fdd774d1a8ac73ed5f348986c96ebfc0c3679a162a37838f07839ba3607e3e1a042ea78a1d920a8cf2c3ccacbb91ff9538975e9dfdcadae2ca7eb42 + inherits: ^2.0.1 + readable-stream: ^3.0.6 + xtend: ^4.0.0 + checksum: 4754e809136bfd30acd128881d34e6f92896f00b7933d03df7281c81b084eb4693510e91351d01a2f781784b924bff51d175b131f5c720fdad0341b98c2e6f5b languageName: node linkType: hard "stream-shift@npm:^1.0.0": - version: 1.0.1 - resolution: "stream-shift@npm:1.0.1" - checksum: 5d777b222e460dc660ee29acad4f99649eb8d0051d3cb648fc92f3f77557b33d0a8ad656291c2cfa87703204191534a6003c2b035606a699674d0bb600353ad3 + version: 1.0.0 + resolution: "stream-shift@npm:1.0.0" + checksum: 4b59bcfe455d489ecb5c4d1bc0abf8879187ff405545d8047214685a4979109a1c6af649810e8b9d585b7e0db4733aef39fd6b74c197482e621b969076652c7b languageName: node linkType: hard @@ -15553,6 +16256,16 @@ resolve@1.1.7: languageName: node linkType: hard +"string-length@npm:^2.0.0": + version: 2.0.0 + resolution: "string-length@npm:2.0.0" + dependencies: + astral-regex: ^1.0.0 + strip-ansi: ^4.0.0 + checksum: 44d79c40a4c998b333e72c5772e1b7b140687a3039315fa0579b4967a6dd2bff6d20c06489241ff32f261a4614e2d326305353bc6db4001179d43bf96c90754f + languageName: node + linkType: hard + "string-length@npm:^3.1.0": version: 3.1.0 resolution: "string-length@npm:3.1.0" @@ -15607,16 +16320,17 @@ resolve@1.1.7: linkType: hard "string.prototype.padend@npm:^3.0.0": - version: 3.1.0 - resolution: "string.prototype.padend@npm:3.1.0" + version: 3.0.0 + resolution: "string.prototype.padend@npm:3.0.0" dependencies: - define-properties: ^1.1.3 - es-abstract: ^1.17.0-next.1 - checksum: a64b67709ce758d0c7200933ec6d238c8be022aabcf1e17e1a13d6dbfa59a180597cadc1c7b7ef7408343367ea286bd39ca3c61de88ab6d2e4cabed90af626e4 + define-properties: ^1.1.2 + es-abstract: ^1.4.3 + function-bind: ^1.0.2 + checksum: 83a4e090a7aacb625aeeb12144df97555a8c77e5bc78b5c4e05a976ec67b6791bf3790a9d32652d8eb0f2c1503b2e644543f1f11985dcfbe4f714a5b7666ca98 languageName: node linkType: hard -"string.prototype.trimend@npm:^1.0.0": +"string.prototype.trimend@npm:^1.0.1": version: 1.0.1 resolution: "string.prototype.trimend@npm:1.0.1" dependencies: @@ -15626,29 +16340,7 @@ resolve@1.1.7: languageName: node linkType: hard -"string.prototype.trimleft@npm:^2.1.1": - version: 2.1.2 - resolution: "string.prototype.trimleft@npm:2.1.2" - dependencies: - define-properties: ^1.1.3 - es-abstract: ^1.17.5 - string.prototype.trimstart: ^1.0.0 - checksum: c0b749c23b0f8621b1901e6aed83c1338af8fb5293a367e4b1065667e00ab07aa5248f19a6f5b9cb85f01c686987e0378153c066cd6901c3ea9a71d1133daaba - languageName: node - linkType: hard - -"string.prototype.trimright@npm:^2.1.1": - version: 2.1.2 - resolution: "string.prototype.trimright@npm:2.1.2" - dependencies: - define-properties: ^1.1.3 - es-abstract: ^1.17.5 - string.prototype.trimend: ^1.0.0 - checksum: 2c7b83c4cf487646d56ec7cd5d24dab112a0c34409b79d2fec4db111fb492ebeac507d993e228451eb56589e24b4c4cdfdcf335ff38bad85e0c34a94a74b7f6b - languageName: node - linkType: hard - -"string.prototype.trimstart@npm:^1.0.0": +"string.prototype.trimstart@npm:^1.0.1": version: 1.0.1 resolution: "string.prototype.trimstart@npm:1.0.1" dependencies: @@ -15667,6 +16359,13 @@ resolve@1.1.7: languageName: node linkType: hard +"string_decoder@npm:~0.10.x": + version: 0.10.31 + resolution: "string_decoder@npm:0.10.31" + checksum: ae53bca3796913fe686c6b519299a3631d04f0d388f35e7412914e3d351024f711d783d0415babfec276f5f533e84fae687e77220829d872fadb5bb9f7190890 + languageName: node + linkType: hard + "string_decoder@npm:~1.1.1": version: 1.1.1 resolution: "string_decoder@npm:1.1.1" @@ -15787,17 +16486,17 @@ resolve@1.1.7: languageName: node linkType: hard -"strip-json-comments@npm:^2.0.1": - version: 2.0.1 - resolution: "strip-json-comments@npm:2.0.1" - checksum: e60d99aa2849c27a04dce0620334f45822197df6b83664dd3746971e9a0a766d989dbb8d87f9cb7350725d2b5df401a2343222ad06e36a1ba7d62c6633267fcb +"strip-json-comments@npm:^3.1.0": + version: 3.1.1 + resolution: "strip-json-comments@npm:3.1.1" + checksum: f16719ce25abc58a55ef82b1c27f541dcfa5d544f17158f62d10be21ff9bd22fde45a53c592b29d80ad3c97ccb67b7451c4833913fdaeadb508a40f5e0a9c206 languageName: node linkType: hard -"strip-json-comments@npm:^3.0.1": - version: 3.1.0 - resolution: "strip-json-comments@npm:3.1.0" - checksum: 5c272f2c030937c99edd8c02f120c2e5cb49ab41e82db689167e3dc84413ee39dbda9f0476b5345827d9f408fd9ffc81b3c0160253ec599d929ac35fa7ce0260 +"strip-json-comments@npm:~2.0.1": + version: 2.0.1 + resolution: "strip-json-comments@npm:2.0.1" + checksum: e60d99aa2849c27a04dce0620334f45822197df6b83664dd3746971e9a0a766d989dbb8d87f9cb7350725d2b5df401a2343222ad06e36a1ba7d62c6633267fcb languageName: node linkType: hard @@ -15919,7 +16618,7 @@ resolve@1.1.7: languageName: node linkType: hard -"tar@npm:^4.4.10, tar@npm:^4.4.12, tar@npm:^4.4.8": +"tar@npm:^4, tar@npm:^4.4.10, tar@npm:^4.4.12, tar@npm:^4.4.8": version: 4.4.13 resolution: "tar@npm:4.4.13" dependencies: @@ -15934,6 +16633,20 @@ resolve@1.1.7: languageName: node linkType: hard +"tar@npm:^6.0.1": + version: 6.0.2 + resolution: "tar@npm:6.0.2" + dependencies: + chownr: ^2.0.0 + fs-minipass: ^2.0.0 + minipass: ^3.0.0 + minizlib: ^2.1.0 + mkdirp: ^1.0.3 + yallist: ^4.0.0 + checksum: 7d28cc13d74a87d0dcd9fa89038225f171e506882f9e4d6f44bfd3943f868e6ae9f46a6f03c82cca8ad2d4dde3384862cb7e789bfa06e3af602eec561c765787 + languageName: node + linkType: hard + "temp-dir@npm:^1.0.0": version: 1.0.0 resolution: "temp-dir@npm:1.0.0" @@ -15966,15 +16679,27 @@ resolve@1.1.7: linkType: hard "terser@npm:^4.6.2": - version: 4.6.13 - resolution: "terser@npm:4.6.13" + version: 4.6.6 + resolution: "terser@npm:4.6.6" dependencies: commander: ^2.20.0 source-map: ~0.6.1 source-map-support: ~0.5.12 bin: terser: bin/terser - checksum: dbb9ff02c2b11341e1525dcffec7a80a25737a64c17719b4ae00aee7585d2742f450692dfec8ee13f0f0ff58136a70fbe280d0a3cb50e14ad92204e9ac65e879 + checksum: f6d39463bace28dbd189b91ae2c5250d68725cdd1a286de1501fa6e3953293d18606ac8d6262ebb9ba0de0178c5ec4cca4df6296eb2bf07ac95493b0d2c52437 + languageName: node + linkType: hard + +"test-exclude@npm:^5.2.3": + version: 5.2.3 + resolution: "test-exclude@npm:5.2.3" + dependencies: + glob: ^7.1.3 + minimatch: ^3.0.4 + read-pkg-up: ^4.0.0 + require-main-filename: ^2.0.0 + checksum: d441f2531cf102d267de7f4ceecb4eacc8de2a6703abbab20591d0e8b30877a0e4cdcb88f88bd292f36950feda87b25e159e2fd407c275b13cce15a2a56eefaf languageName: node linkType: hard @@ -16031,6 +16756,13 @@ resolve@1.1.7: languageName: node linkType: hard +"throat@npm:^4.0.0": + version: 4.1.0 + resolution: "throat@npm:4.1.0" + checksum: 91326ef6842bd3d8d39ac104fbcb8998c911deacc639ae2de8522bbb1e526e6db4263927ad1eec71f1d31e7cec111a501371f67514ec449f517f7357814eda55 + languageName: node + linkType: hard + "throat@npm:^5.0.0": version: 5.0.0 resolution: "throat@npm:5.0.0" @@ -16048,6 +16780,16 @@ resolve@1.1.7: languageName: node linkType: hard +"through2@npm:^1.0.0": + version: 1.1.1 + resolution: "through2@npm:1.1.1" + dependencies: + readable-stream: ">=1.1.13-1 <1.2.0-0" + xtend: ">=4.0.0 <4.1.0-0" + checksum: 762df66d19c8dc9f3b62847a4592da205840a1f749e04d897e8e98632de745cbd6da2221dfab4cc71c787e39400aa6468dd6ee5ef03527df3851d802b3769cbc + languageName: node + linkType: hard + "through2@npm:^2.0.0, through2@npm:^2.0.2, through2@npm:^2.0.3, through2@npm:~2.0.0": version: 2.0.5 resolution: "through2@npm:2.0.5" @@ -16172,7 +16914,7 @@ resolve@1.1.7: languageName: node linkType: hard -"tough-cookie@npm:^2.3.3, tough-cookie@npm:~2.5.0": +"tough-cookie@npm:^2.3.3, tough-cookie@npm:^2.3.4, tough-cookie@npm:~2.5.0": version: 2.5.0 resolution: "tough-cookie@npm:2.5.0" dependencies: @@ -16193,6 +16935,16 @@ resolve@1.1.7: languageName: node linkType: hard +"tough-cookie@npm:~2.4.3": + version: 2.4.3 + resolution: "tough-cookie@npm:2.4.3" + dependencies: + psl: ^1.1.24 + punycode: ^1.4.1 + checksum: 48decf702128d2ac20cc572dcac02051f2201d7d2dbc80fb216cef92fb7f68f0a89b6260d1c19aff13af66f51af61ab4a7ec266948a7f2ee0395cef38fb71fab + languageName: node + linkType: hard + "tr46@npm:^1.0.1": version: 1.0.1 resolution: "tr46@npm:1.0.1" @@ -16230,10 +16982,22 @@ resolve@1.1.7: languageName: node linkType: hard +"tsconfig-paths@npm:^3.9.0": + version: 3.9.0 + resolution: "tsconfig-paths@npm:3.9.0" + dependencies: + "@types/json5": ^0.0.29 + json5: ^1.0.1 + minimist: ^1.2.0 + strip-bom: ^3.0.0 + checksum: 5383ba626b3ac70e08094b9dfd1e30ce82878407b6c8db8cd84279cc7c7340d5f53f67dbeb8174a233c082a068322a6b00ec8514b96d9a80a453e0476dc116d2 + languageName: node + linkType: hard + "tslib@npm:^1.8.1, tslib@npm:^1.9.0": - version: 1.11.2 - resolution: "tslib@npm:1.11.2" - checksum: 9465e3dd4e348757bef369934c73990193cf069c13d487e566b1ce7802bd7e6ab7d5dc16ac97b31d076d29d8bfc4f358457ce4040ec97b9a1e9b3fa6cf1ded7a + version: 1.10.0 + resolution: "tslib@npm:1.10.0" + checksum: d03db5b8d205cd908421bd16c53c7912b857e4cbe4a54ea2b5f7c7a22cd86317462ea1783b093a36d78a1611fa10baf51696a94bb5c1e13c818145b8954a02c9 languageName: node linkType: hard @@ -16271,19 +17035,12 @@ resolve@1.1.7: languageName: node linkType: hard -"type-any-iterable@npm:^1.0.5": - version: 1.0.5 - resolution: "type-any-iterable@npm:1.0.5" +"type-check@npm:^0.4.0, type-check@npm:~0.4.0": + version: 0.4.0 + resolution: "type-check@npm:0.4.0" dependencies: - type-async-value: ^1.0.4 - checksum: 00d8238cc64f1eba0c62782441a8bf98f6d20be0f613c12b4c2a0c0f23ae363fb690f2fa30a1c8effda16fd4616ec6fda4271fc62367a16ba87a443c7b83ecd6 - languageName: node - linkType: hard - -"type-async-value@npm:^1.0.4": - version: 1.0.4 - resolution: "type-async-value@npm:1.0.4" - checksum: 0200a20bb062eddd4d724beb024cf8cb0773d2f8198207e1e89f3c998a2bba059f8b9c7e66949c0621799374f8fd2bb3643463bacf77fa87fbdf43acba9961a8 + prelude-ls: ^1.2.1 + checksum: 6c2e1ce339567e122504f0c729cfa35d877fb2da293b99110f0819eca81e6ed8d3ba9bb36c0bc0ee4904d5340dbe678f8642a395c1c67b1d0f69f081efb47f4a languageName: node linkType: hard @@ -16369,33 +17126,34 @@ resolve@1.1.7: linkType: hard typescript@^3.6.3: - version: 3.8.3 - resolution: "typescript@npm:3.8.3" + version: 3.7.3 + resolution: "typescript@npm:3.7.3" bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 519b11576247fe3570d89a2aa757d8f666aafc0cb9465a6cdd4df09c1dc6bf7285f0c6008d2ac7a55ea26457e767aaab819f58439d80af2cce1d9805b2be1034 + tsc: ./bin/tsc + tsserver: ./bin/tsserver + checksum: 081c82c6c63d99bb1e321e63d6158d6e67eebc199b9bae73bdfe12d5cb64cf3882fcaaf027ac4481d137e58c5508123cd368eac6ab0c8909c5e29cd4f3710b55 languageName: node linkType: hard "typescript@patch:typescript@^3.6.3#builtin": - version: 3.8.3 - resolution: "typescript@patch:typescript@npm%3A3.8.3#builtin::version=3.8.3&hash=5b02a2" + version: 3.7.3 + resolution: "typescript@patch:typescript@npm%3A3.7.3#builtin::version=3.7.3&hash=5b02a2" bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: dcadfa6d7c90af4ac23181cccda22bdc7270f23a2c8773ab0b6047e2b9b86bcd885da5c5acc020addc1a0df042940ab8e9bbfb33aedcf884bea554fe60fccd32 + tsc: ./bin/tsc + tsserver: ./bin/tsserver + checksum: 45033d0c850a6e9b9145b1e80bc8fee5736ec69d549e9002c05fef4495159e367a048a7ed9e40b2c2dec1164563a524217662ed0aa1061444707beb153babc94 languageName: node linkType: hard "uglify-js@npm:^3.1.4": - version: 3.9.2 - resolution: "uglify-js@npm:3.9.2" + version: 3.7.2 + resolution: "uglify-js@npm:3.7.2" dependencies: commander: ~2.20.3 + source-map: ~0.6.1 bin: uglifyjs: bin/uglifyjs - checksum: cb5a34033adf39470a20cda9f0b3f0be4487cbde22d071b5dbc565eafe2f55415627751ec01432f90b980f4b3724bcbb82655e66f1ca0f3c0f2978de8fdbff17 + checksum: d07ab7a6f330616462d0b92a4fc043fff48fb857539895ff3bf39eed9ff570145f9c1852f75147ddf9d82f2525a78e30b2f472487241074107a1d17a01551d75 languageName: node linkType: hard @@ -16500,9 +17258,9 @@ typescript@^3.6.3: linkType: hard "unicode-property-aliases-ecmascript@npm:^1.0.4": - version: 1.1.0 - resolution: "unicode-property-aliases-ecmascript@npm:1.1.0" - checksum: 2fa80e62a6ec395af3ee4747ce9738d2fee25ef963fb5650e358b2eb878d7f047f5ccdbd5f92e9605d13276f995fc3c4e3084475b03722cdd7ce9d58a148b2bd + version: 1.0.5 + resolution: "unicode-property-aliases-ecmascript@npm:1.0.5" + checksum: adfdc7cebc0ccdc20240088642b4a30a4e5be1a4364a45cdcc7148e52f176a21e4b537836cdd31868125fe3d998bdff6a63be6d60618876e3920c44bb2fa7079 languageName: node linkType: hard @@ -16547,20 +17305,11 @@ typescript@^3.6.3: linkType: hard "universal-user-agent@npm:^4.0.0": - version: 4.0.1 - resolution: "universal-user-agent@npm:4.0.1" - dependencies: - os-name: ^3.1.0 - checksum: 553ee1f53f3d9a93d4c752a7633ac1b05d4863496c76727ad6356af87d39e344c9a02225e0bf560bffd60122797bb890c8e389829265ad868d27d9eb14ab813f - languageName: node - linkType: hard - -"universal-user-agent@npm:^5.0.0": - version: 5.0.0 - resolution: "universal-user-agent@npm:5.0.0" + version: 4.0.0 + resolution: "universal-user-agent@npm:4.0.0" dependencies: os-name: ^3.1.0 - checksum: 9b664885e88cfccc765837f918869157ca30a141a5499f4397245c5b2541e3ba2323cca2337eb70ad0898ea747bca41d435df3af2fc71bc8e4f8430c142af7bd + checksum: 2aa2156ca725823bdf7d3bfcc20780de83d6ddcf7698826cf628744ccf769ce58ecf84dc69c64f42b98e8b2c7294e25225ae33fb4b247ea1a7381c827ff6b323 languageName: node linkType: hard @@ -16581,7 +17330,7 @@ typescript@^3.6.3: languageName: node linkType: hard -"upath@npm:^1.1.1, upath@npm:^1.2.0": +"upath@npm:^1.1.1": version: 1.2.0 resolution: "upath@npm:1.2.0" checksum: ecb08ff3e7e3b152e03bceb7089e6f0077bf3494764397a301eb99a7a5cd4c593ea4d0b13a7714195ad8a3ddca9d7a5964037a1c0bc712e1ba7b67a79165a0be @@ -16637,6 +17386,16 @@ typescript@^3.6.3: languageName: node linkType: hard +"util.promisify@npm:^1.0.0": + version: 1.0.0 + resolution: "util.promisify@npm:1.0.0" + dependencies: + define-properties: ^1.1.2 + object.getownpropertydescriptors: ^2.0.3 + checksum: 0dffbe1af61c9c034b5e7b411461e46c17c788d855fb02bcbf96cd0f603c086eb83160a3c878c4d69bede9a42118a7ce2b3cc05ed5a235e1c1c04c93bd5608e7 + languageName: node + linkType: hard + "util@npm:0.10.3": version: 0.10.3 resolution: "util@npm:0.10.3" @@ -16656,11 +17415,11 @@ typescript@^3.6.3: linkType: hard "uuid@npm:^3.0.1, uuid@npm:^3.3.2": - version: 3.4.0 - resolution: "uuid@npm:3.4.0" + version: 3.3.3 + resolution: "uuid@npm:3.3.3" bin: uuid: ./bin/uuid - checksum: 1ce3f37e214d6d0dc94a6a9663a0365013ace66bc3fd5b203e6f5d2eeb978aaee1192367222386345d30b4c6a447928c501121aa84c637724bf105ef57284949 + checksum: bc03fc22456bdb24c0c9e47028fe1f11f8229184794f41e8792170ff0afed6a56443ce3ac52a2d4b06cd1f1114f16b4d881711a5d63651f2236de9f3b7d781f5 languageName: node linkType: hard @@ -16682,7 +17441,7 @@ typescript@^3.6.3: languageName: node linkType: hard -"v8flags@npm:^3.0.1, v8flags@npm:^3.1.1": +"v8flags@npm:^3.0.1": version: 3.1.3 resolution: "v8flags@npm:3.1.3" dependencies: @@ -16691,6 +17450,15 @@ typescript@^3.6.3: languageName: node linkType: hard +"v8flags@npm:^3.1.1": + version: 3.2.0 + resolution: "v8flags@npm:3.2.0" + dependencies: + homedir-polyfill: ^1.0.1 + checksum: d68937c42667f91cef97886fab0268d06d37c0de1659f9b3ad57a75aaaed1c21342659bfc80f4558fec21126ef25e486e7717017738b02be4840f465efd6379a + languageName: node + linkType: hard + "validate-npm-package-license@npm:^3.0.1, validate-npm-package-license@npm:^3.0.3": version: 3.0.4 resolution: "validate-npm-package-license@npm:3.0.4" @@ -16799,11 +17567,11 @@ typescript@^3.6.3: linkType: hard "w3c-hr-time@npm:^1.0.1": - version: 1.0.2 - resolution: "w3c-hr-time@npm:1.0.2" + version: 1.0.1 + resolution: "w3c-hr-time@npm:1.0.1" dependencies: - browser-process-hrtime: ^1.0.0 - checksum: bb021b4c4b15acc26a7b0de5b6f4c02d829b458345af162713685e84698380fabffc7856f4a85ba368f23c8419d3a7a726b628b993ffeb0d5a83d0d57d4cbf72 + browser-process-hrtime: ^0.1.2 + checksum: a3b0dde235ec1fd8812b821ed5af1a53f3600af59bea2f48c29db71974732b2215d69d4f28990f807c8c8db7ae269bb54110ca901da7651677f9386714726d65 languageName: node linkType: hard @@ -16843,7 +17611,7 @@ typescript@^3.6.3: languageName: node linkType: hard -"whatwg-encoding@npm:^1.0.1, whatwg-encoding@npm:^1.0.5": +"whatwg-encoding@npm:^1.0.1, whatwg-encoding@npm:^1.0.3, whatwg-encoding@npm:^1.0.5": version: 1.0.5 resolution: "whatwg-encoding@npm:1.0.5" dependencies: @@ -16852,13 +17620,24 @@ typescript@^3.6.3: languageName: node linkType: hard -"whatwg-mimetype@npm:^2.2.0, whatwg-mimetype@npm:^2.3.0": +"whatwg-mimetype@npm:^2.1.0, whatwg-mimetype@npm:^2.2.0, whatwg-mimetype@npm:^2.3.0": version: 2.3.0 resolution: "whatwg-mimetype@npm:2.3.0" checksum: 926e6ef8c7e53d158e501ce5e3c0e491d343c3c97e71b3d30451ffe4b1d6f81844c336b46a446a0b4f3fe4f327d76e3451d53ee8055344a0f5f2f35b84518011 languageName: node linkType: hard +"whatwg-url@npm:^6.4.1": + version: 6.5.0 + resolution: "whatwg-url@npm:6.5.0" + dependencies: + lodash.sortby: ^4.7.0 + tr46: ^1.0.1 + webidl-conversions: ^4.0.2 + checksum: 454a06402d3ccec0057b8b2d00231153a38bb985749268903111166175e599254175461515b351cd3e6c7e1a9674c35adbcf708304cd38e6aae5b81c6ac9e095 + languageName: node + linkType: hard + "whatwg-url@npm:^7.0.0": version: 7.1.0 resolution: "whatwg-url@npm:7.1.0" @@ -16891,7 +17670,7 @@ typescript@^3.6.3: languageName: node linkType: hard -"which@npm:^1.2.14, which@npm:^1.2.9, which@npm:^1.3.1": +"which@npm:1, which@npm:^1.2.14, which@npm:^1.2.9, which@npm:^1.3.0, which@npm:^1.3.1": version: 1.3.1 resolution: "which@npm:1.3.1" dependencies: @@ -16923,15 +17702,15 @@ typescript@^3.6.3: linkType: hard "windows-release@npm:^3.1.0": - version: 3.3.0 - resolution: "windows-release@npm:3.3.0" + version: 3.2.0 + resolution: "windows-release@npm:3.2.0" dependencies: execa: ^1.0.0 - checksum: 23318b65efd3a14c9d1401c005706ba54f41b8bad16f85a2511744f2daa4ff04385111271c8ea1824bbad898cf75797ca9d0ba03d770b4bbaab37ba5aea86e80 + checksum: 44112204088d1f01366a2296f33718a6cebb873f355445324085b2889ed3cd9583b585cacacf4a7a2af3ac9bca3ffeeb05169ab6e4d49363da360d47035e5d68 languageName: node linkType: hard -"word-wrap@npm:~1.2.3": +"word-wrap@npm:^1.2.3, word-wrap@npm:~1.2.3": version: 1.2.3 resolution: "word-wrap@npm:1.2.3" checksum: 6526abd75d4409c76d1989cf2fbf6080b903db29824be3d17d0a0b8f6221486c76a021174eda2616cf311199787983c34bae3c5e7b51d2ad7476f2066cddb75a @@ -16994,6 +17773,17 @@ typescript@^3.6.3: languageName: node linkType: hard +"write-file-atomic@npm:2.4.1": + version: 2.4.1 + resolution: "write-file-atomic@npm:2.4.1" + dependencies: + graceful-fs: ^4.1.11 + imurmurhash: ^0.1.4 + signal-exit: ^3.0.2 + checksum: d5a00706d00cb4a13bca748d85d4d149b9a997201cdbedc9162810c9ac04188e191b1b06ca868df670db972ae9dbd4022a4eff2aec0c7dce73376dccb6d4efab + languageName: node + linkType: hard + "write-file-atomic@npm:^2.0.0, write-file-atomic@npm:^2.3.0, write-file-atomic@npm:^2.4.2": version: 2.4.3 resolution: "write-file-atomic@npm:2.4.3" @@ -17064,9 +17854,18 @@ typescript@^3.6.3: languageName: node linkType: hard +"ws@npm:^5.2.0": + version: 5.2.2 + resolution: "ws@npm:5.2.2" + dependencies: + async-limiter: ~1.0.0 + checksum: c8217b54821ac9109bd395029487fd2a577867d6227624079dfa04c927728be13fdbe43070b2d349e9360d7dd17416c33362ba1062bff3bd9ddab6e9a9272915 + languageName: node + linkType: hard + "ws@npm:^7.0.0": - version: 7.2.5 - resolution: "ws@npm:7.2.5" + version: 7.3.1 + resolution: "ws@npm:7.3.1" peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ^5.0.2 @@ -17075,7 +17874,7 @@ typescript@^3.6.3: optional: true utf-8-validate: optional: true - checksum: bd4ff2ceb52eaebefb05093c673e7dd0005131f31f2eae0452b8a0276af83d911213fe659cb455af1883565ea38d90a25dd8601b905617037d48d2c16c6992f0 + checksum: 9302f1f6658c5f3ecd6d35d1c5a38ad708d8e5404cba66ad884ead072ef7a4c948f54d728649a2cb3af1865ca0e15f903e0e2ac9df30c1a0d4dd00d00e6e0d4a languageName: node linkType: hard @@ -17093,7 +17892,16 @@ typescript@^3.6.3: languageName: node linkType: hard -"xtend@npm:^4.0.0, xtend@npm:^4.0.1, xtend@npm:^4.0.2, xtend@npm:~4.0.0, xtend@npm:~4.0.1": +"xregexp@npm:^4.2.4": + version: 4.3.0 + resolution: "xregexp@npm:4.3.0" + dependencies: + "@babel/runtime-corejs3": ^7.8.3 + checksum: 2dcef4888ea32e7c01b8f42d1ee3df24970de14b299a8f534ccecf2252d297092f92d037502176ec334b6c8d7cd1dd3dba0d3cf949e26f418d50b46846268839 + languageName: node + linkType: hard + +"xtend@npm:>=4.0.0 <4.1.0-0, xtend@npm:^4.0.0, xtend@npm:^4.0.1, xtend@npm:^4.0.2, xtend@npm:~4.0.0, xtend@npm:~4.0.1": version: 4.0.2 resolution: "xtend@npm:4.0.2" checksum: 37ee522a3e9fb9b143a400c30b21dc122aa8c9c9411c6afae1005a4617dc20a21765c114d544e37a6bb60c2733dd8ee0a44ed9e80d884ac78cccd30b5e0ab0da @@ -17121,12 +17929,37 @@ typescript@^3.6.3: languageName: node linkType: hard +"yallist@npm:^4.0.0": + version: 4.0.0 + resolution: "yallist@npm:4.0.0" + checksum: a2960ef879af6ee67a76cae29bac9d8bffeb6e9e366c217dbd21464e7fce071933705544724f47e90ba5209cf9c83c17d5582dd04415d86747a826b2a231efb8 + languageName: node + linkType: hard + "yaml@npm:^1.7.2": - version: 1.9.2 - resolution: "yaml@npm:1.9.2" + version: 1.10.0 + resolution: "yaml@npm:1.10.0" + checksum: d4cc9f9724f8d0aebc2cf52e4e6aa7059f12d50deb54b5225d103462fb2af36e5c0bb419101ca4b1f0cd3b4db9e4139cf2c690e863ac6227648d39d6f4e2522c + languageName: node + linkType: hard + +"yargs-parser@npm:5.0.0-security.0": + version: 5.0.0-security.0 + resolution: "yargs-parser@npm:5.0.0-security.0" + dependencies: + camelcase: ^3.0.0 + object.assign: ^4.1.0 + checksum: b351d8dff2ae692815171b4c4d321812767ce903a50284177bbbb79aeadf7312d7d3c9d89605e1077e8d8ee8565123e5a344ed015a719d620a834bd8a060aed5 + languageName: node + linkType: hard + +"yargs-parser@npm:^13.1.2": + version: 13.1.2 + resolution: "yargs-parser@npm:13.1.2" dependencies: - "@babel/runtime": ^7.9.2 - checksum: 098baa974d33f13c3a93efba4e83c8992f533e78463010afc41a9c2ae574890fa670d91e8d18ffaf9af616c3a0683a4e93b69057bd143f53306570a117ebcb7f + camelcase: ^5.0.0 + decamelize: ^1.2.0 + checksum: 82d3b7ab99085d70a5121399ad407d2b98d296538bf7012ac2ce044a61160ca891ea617de6374699d81955d9a61c36a3b2a6a51588e38f710bd211ce2e63c33c languageName: node linkType: hard @@ -17140,7 +17973,7 @@ typescript@^3.6.3: languageName: node linkType: hard -"yargs-parser@npm:^18.1.1, yargs-parser@npm:^18.1.3": +"yargs-parser@npm:^18.1.2, yargs-parser@npm:^18.1.3": version: 18.1.3 resolution: "yargs-parser@npm:18.1.3" dependencies: @@ -17159,12 +17992,21 @@ typescript@^3.6.3: languageName: node linkType: hard -"yargs-parser@npm:^5.0.0": - version: 5.0.0 - resolution: "yargs-parser@npm:5.0.0" +"yargs@npm:^13.3.0": + version: 13.3.2 + resolution: "yargs@npm:13.3.2" dependencies: - camelcase: ^3.0.0 - checksum: 504bd83dcc09f47d7e2d7d740b50060ee205eab31375025f3b51ef319d442832bdb46fa54f2d52ae8c203b597116575396cc3ca0bd5eccde395823f5e16d9158 + cliui: ^5.0.0 + find-up: ^3.0.0 + get-caller-file: ^2.0.1 + require-directory: ^2.1.1 + require-main-filename: ^2.0.0 + set-blocking: ^2.0.0 + string-width: ^3.0.0 + which-module: ^2.0.0 + y18n: ^4.0.0 + yargs-parser: ^13.1.2 + checksum: 92c612cd14a9217d7421ae4f42bc7c460472633bfc2e45f7f86cd614a61a845670d3bac7c2228c39df7fcecce0b8c12b2af65c785b1f757de974dcf84b5074f9 languageName: node linkType: hard @@ -17188,11 +18030,11 @@ typescript@^3.6.3: linkType: hard "yargs@npm:^15.3.1": - version: 15.3.1 - resolution: "yargs@npm:15.3.1" + version: 15.4.0 + resolution: "yargs@npm:15.4.0" dependencies: cliui: ^6.0.0 - decamelize: ^1.2.0 + decamelize: ^3.2.0 find-up: ^4.1.0 get-caller-file: ^2.0.1 require-directory: ^2.1.1 @@ -17201,12 +18043,12 @@ typescript@^3.6.3: string-width: ^4.2.0 which-module: ^2.0.0 y18n: ^4.0.0 - yargs-parser: ^18.1.1 - checksum: 6504a0bb4e6f5933ebaaa52307943a9cdb44da6200cd1ca8794aaa1d18b70f0acd2f49f46630b07bd4d2aa12cb1fe666b186d367c36fa1b4998f7ce8bdc9ffdf + yargs-parser: ^18.1.2 + checksum: b4163b7e8f67250bdd4472b8c0a76665030199f3167dcaedc83a6c7daccd761d24208db83320414b9861b44dc3242d737864b13058b5a59c734a5e690d7b7692 languageName: node linkType: hard -"yargs@npm:^6.5.0, yargs@npm:^6.6.0": +"yargs@npm:^6.6.0": version: 6.6.0 resolution: "yargs@npm:6.6.0" dependencies: @@ -17228,8 +18070,8 @@ typescript@^3.6.3: linkType: hard "yargs@npm:^7.1.0": - version: 7.1.0 - resolution: "yargs@npm:7.1.0" + version: 7.1.1 + resolution: "yargs@npm:7.1.1" dependencies: camelcase: ^3.0.0 cliui: ^3.2.0 @@ -17243,7 +18085,7 @@ typescript@^3.6.3: string-width: ^1.0.2 which-module: ^1.0.0 y18n: ^3.2.1 - yargs-parser: ^5.0.0 - checksum: 076561496f9a20c4a72608db1d55d6471e99da861c8371e44ef7f848f72344e53affa3d567000281401666f99330cc45a8d656e0f2aaef06e7f981c3b9a8205b + yargs-parser: 5.0.0-security.0 + checksum: 62bb2345031bbb3dd99626a62fd94caa0c13610c53b3d914792f387432c7c7d49432d85ea9eb6339092aca5788a2f1184507826f98c3af277e1e2202ae1d9341 languageName: node linkType: hard