diff --git a/.eslintignore b/.eslintignore index 4a10dadac2fa..18e74eafba27 100644 --- a/.eslintignore +++ b/.eslintignore @@ -4,8 +4,9 @@ package.json lerna.json packages/babel-runtime -!packages/babel-runtime/scripts -!packages/babel-runtime/core-js.js +!packages/babel-plugin-transform-runtime/scripts +!packages/babel-runtime-corejs2/core-js.js +packages/babel-runtime-corejs2 packages/*/node_modules packages/*/lib packages/*/dist diff --git a/.eslintrc.json b/.eslintrc.json index feeff75a7380..d26b40aa6c5d 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,11 +1,9 @@ { "root": true, "extends": "babel", - "plugins": ["prettier"], + "plugins": ["local-rules", "prettier"], "rules": { - "curly": ["error", "multi-line"], - "prettier/prettier": "error", - "no-case-declarations": "error" + "prettier/prettier": "error" }, "env": { "node": true @@ -14,8 +12,8 @@ { "files": ["packages/*/src/**/*.js", "codemods/*/src/**/*.js"], "rules": { - "no-undefined-identifier": "error", - "no-deprecated-clone": "error" + "local-rules/no-undefined-identifier": "error", + "local-rules/no-deprecated-clone": "error" } }, { diff --git a/.flowconfig b/.flowconfig index a60a4a9144d5..9aacaf35ebdd 100644 --- a/.flowconfig +++ b/.flowconfig @@ -5,6 +5,7 @@ .*/codemods/.*/lib .*/codemods/.*/test .*/node_modules/conventional-changelog-core/ +.*/node_modules/module-deps/ [include] packages/*/src diff --git a/.gitignore b/.gitignore index a2f346175fcc..2b06f7e3e409 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,9 @@ .DS_Store /node_modules /packages/*/node_modules +/packages/*/LICENSE +!/packages/babel-parser/LICENSE +!/packages/babel-plugin-transform-object-assign/LICENSE *.log *.cache /build @@ -12,24 +15,27 @@ coverage dist /.package.json package-lock.json -/packages/babel-runtime/core-js/**/*.js -!/packages/babel-runtime/core-js/map.js + /packages/babel-runtime/helpers/*.js !/packages/babel-runtime/helpers/toArray.js !/packages/babel-runtime/helpers/iterableToArray.js !/packages/babel-runtime/helpers/temporalRef.js -/packages/babel-runtime/helpers/builtin/*.js -!/packages/babel-runtime/helpers/builtin/toArray.js -!/packages/babel-runtime/helpers/builtin/iterableToArray.js -!/packages/babel-runtime/helpers/builtin/temporalRef.js -/packages/babel-runtime/helpers/builtin/es6/*.js -!/packages/babel-runtime/helpers/builtin/es6/toArray.js -!/packages/babel-runtime/helpers/builtin/es6/iterableToArray.js -!/packages/babel-runtime/helpers/builtin/es6/temporalRef.js -/packages/babel-runtime/helpers/es6/*.js -!/packages/babel-runtime/helpers/es6/toArray.js -!/packages/babel-runtime/helpers/es6/iterableToArray.js -!/packages/babel-runtime/helpers/es6/temporalRef.js +/packages/babel-runtime/helpers/esm/*.js +!/packages/babel-runtime/helpers/esm/toArray.js +!/packages/babel-runtime/helpers/esm/iterableToArray.js +!/packages/babel-runtime/helpers/esm/temporalRef.js + +/packages/babel-runtime-corejs2/helpers/*.js +!/packages/babel-runtime-corejs2/helpers/toArray.js +!/packages/babel-runtime-corejs2/helpers/iterableToArray.js +!/packages/babel-runtime-corejs2/helpers/temporalRef.js +/packages/babel-runtime-corejs2/helpers/esm/*.js +!/packages/babel-runtime-corejs2/helpers/esm/toArray.js +!/packages/babel-runtime-corejs2/helpers/esm/iterableToArray.js +!/packages/babel-runtime-corejs2/helpers/esm/temporalRef.js +/packages/babel-runtime-corejs2/core-js/**/*.js +!/packages/babel-runtime-corejs2/core-js/map.js + /packages/babel-register/test/.babel /packages/babel-cli/test/tmp /packages/babel-node/test/tmp diff --git a/.prettierrc b/.prettierrc index 371aad410ab4..5c53b22f8ab7 100644 --- a/.prettierrc +++ b/.prettierrc @@ -7,7 +7,6 @@ "bracketSpacing": true, "jsxBracketSameLine": false, "tabWidth": 2, - "parser": "babylon", "printWidth": 80, "overrides": [{ "files": [ @@ -16,6 +15,7 @@ "**/packages/*/src/**/*.js", "**/packages/*/test/**/*.js" ], + "parser": "babylon", "options": { "trailingComma": "all" } diff --git a/CHANGELOG.md b/CHANGELOG.md index fec706d66de2..35a6624ce7ca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,10 +11,353 @@ _Note: Gaps between patch versions are faulty, broken or test releases._ -See [CHANGELOG - v4-v6](/.github/CHANGELOG-v4-v6.md) for the v4.x-v6.x changelog. +See [CHANGELOG - v4](/.github/CHANGELOG-v4.md), [CHANGELOG - v5](/.github/CHANGELOG-v5.md), and [CHANGELOG - v6](/.github/CHANGELOG-v6.md) for v4.x-v6.x changes. See [CHANGELOG - 6to5](/.github/CHANGELOG-6to5.md) for the pre-4.0.0 version changelog. See [Babylon's CHANGELOG](packages/babylon/CHANGELOG.md) for the Babylon pre-7.0.0-beta.29 version changelog. +## 7.1.2 (2018-09-28) + +Same as v7.1.1, except compiled against Node 6 instead of Node 8 by accident (e.g had `async functions`). + +## v7.1.1 (2018-09-28) + +> EDIT: had a publish issue here as well where it compiled against Node 8 instead of Node 6 so 7.1.2 will fix this. +> Also force publish `@babel/runtime` and `@babel/runtime-corejs2`. We need to fix the publishing around that since Lerna doesn't pickup the `@babel/helpers` changes as there is no "dependency" + +#### :bug: Bug Fix +* `babel-generator`, `babel-parser`, `babel-types` + * [#8755](https://github.com/babel/babel/pull/8755) TypeScript: reserve `unknown` as TSUnknownKeyword. ([@g-plane](https://github.com/g-plane)) +* `babel-plugin-transform-destructuring` + * [#8535](https://github.com/babel/babel/pull/8535) Do not unpack array patterns that update a referenced binding. ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo)) +* `babel-plugin-proposal-decorators` + * [#8742](https://github.com/babel/babel/pull/8742) [decorators] Support async and generator methods. ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo)) +* `babel-helpers`, `babel-plugin-proposal-decorators` + * [#8761](https://github.com/babel/babel/pull/8761) [decorators] Fields are enumerable. ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo)) +* `babel-generator` + * [#8751](https://github.com/babel/babel/pull/8751) Fix some missing parens cases with OptionalMemberExpression in generator. ([@existentialism](https://github.com/existentialism)) + * [#8727](https://github.com/babel/babel/pull/8727) Handle throw expressions in generator. ([@existentialism](https://github.com/existentialism)) + +#### :house: Internal +* Other + * [#8780](https://github.com/babel/babel/pull/8780) Run test262 tests for exportNamespaceFrom. ([@existentialism](https://github.com/existentialism)) +* `babel-helper-transform-fixture-test-runner` + * [#8768](https://github.com/babel/babel/pull/8768) Use babel-check-duplicated-nodes. ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo)) + +## v7.1.0 (2018-09-17) + +Check http://babeljs.io/blog/2018/09/17/7.1.0 + +#### :rocket: New Feature +* `babel-cli`, `babel-core` + * [#8660](https://github.com/babel/babel/pull/8660) Better support monorepos by allowing users to opt into automatically resolving 'root' with `rootMode: "upward"`.. ([@loganfsmyth](https://github.com/loganfsmyth)) +* `babel-helper-transform-fixture-test-runner` + * [#7582](https://github.com/babel/babel/pull/7582) Allow regular plugins/presets resolution algorithm for packages outsi…. ([@Andarist](https://github.com/Andarist)) +* `babel-helpers`, `babel-plugin-proposal-decorators`, `babel-plugin-syntax-decorators` + * [#7976](https://github.com/babel/babel/pull/7976) Add support for the new decorators proposal. ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo)) +* `babel-helpers`, `babel-plugin-proposal-class-properties` + * [#8205](https://github.com/babel/babel/pull/8205) Private Static Fields Features: Stage 3. ([@rricard](https://github.com/rricard)) + +#### :bug: Bug Fix +* `babel-parser` + * [#8698](https://github.com/babel/babel/pull/8698) Fix parsing of newline between 'async' and 'function'. ([@existentialism](https://github.com/existentialism)) + * [#8677](https://github.com/babel/babel/pull/8677) Fix typescript parsing typed object shorthand methods. ([@existentialism](https://github.com/existentialism)) +* `babel-plugin-transform-typescript` + * [#8682](https://github.com/babel/babel/pull/8682) Fix TSParameterProperty getting lost with transform-classes. ([@existentialism](https://github.com/existentialism)) + * [#8695](https://github.com/babel/babel/pull/8695) Adjust TSParameterProperty handling to work with transform-parameters. ([@existentialism](https://github.com/existentialism)) + * [#8666](https://github.com/babel/babel/pull/8666) Fix typescript import elision. ([@Retsam](https://github.com/Retsam)) +* `babel-preset-env` + * [#8693](https://github.com/babel/babel/pull/8693) Fix es6.string.iterator mapping in babel-preset-env. ([@existentialism](https://github.com/existentialism)) +* `babel-core`, `babel-plugin-proposal-class-properties`, `babel-plugin-proposal-decorators`, `babel-plugin-transform-runtime` + * [#8659](https://github.com/babel/babel/pull/8659) Fix version checks in .availableHelper and transform-runtime definitions.. ([@loganfsmyth](https://github.com/loganfsmyth)) +* Other + * [#8627](https://github.com/babel/babel/pull/8627) ts generator: allow reserved keywords in interfaces. ([@43081j](https://github.com/43081j)) +* `babel-plugin-transform-parameters` + * [#8414](https://github.com/babel/babel/pull/8414) Allow patterns as argument of RestElement. ([@microbouji](https://github.com/microbouji)) +* `babel-core`, `babel-plugin-transform-runtime` + * [#8624](https://github.com/babel/babel/pull/8624) Verify 'sourceMap' option with hasOwnProperty, and verify string-typed 'version'. ([@loganfsmyth](https://github.com/loganfsmyth)) +* `babel-helpers`, `babel-plugin-proposal-class-properties` + * [#8614](https://github.com/babel/babel/pull/8614) [static private] Unify loose handling of static and instance props. ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo)) + +#### :nail_care: Polish +* `babel-plugin-transform-runtime` + * [#8581](https://github.com/babel/babel/pull/8581) Fix grammar in error message at @babel/plugin-transform-runtime. ([@tricknotes](https://github.com/tricknotes)) +* `babel-parser` + * [#8576](https://github.com/babel/babel/pull/8576) More helpful errorr message for missing decoratorsBeforeExport in parser. ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo)) + +#### :memo: Documentation +* [#8561](https://github.com/babel/babel/pull/8561) Added pronounciation of babel. ([@siddhant1](https://github.com/siddhant1)) + +#### :house: Internal +* `babel-core` + * [#8714](https://github.com/babel/babel/pull/8714) Fix Flow error with new versionRange test.. ([@loganfsmyth](https://github.com/loganfsmyth)) +* Other + * [#8679](https://github.com/babel/babel/pull/8679) remove force publish, temp tag [skip ci]. ([@hzoo](https://github.com/hzoo)) +* `babel-plugin-transform-runtime` + * [#8661](https://github.com/babel/babel/pull/8661) Makefile: run fix json on fix. ([@xtuc](https://github.com/xtuc)) +* `babel-*` + * [#8658](https://github.com/babel/babel/pull/8658) Format fixture options.json with Prettier.. ([@loganfsmyth](https://github.com/loganfsmyth)) +* `babel-parser` + * [#8630](https://github.com/babel/babel/pull/8630) Bump flow to 0.80 and fix sourceType error. ([@existentialism](https://github.com/existentialism)) + * [#8610](https://github.com/babel/babel/pull/8610) types: missing `unambiguous` sourceType. ([@xtuc](https://github.com/xtuc)) + * [#8170](https://github.com/babel/babel/pull/8170) @babel/parser: expose a TypeScript definition file from package. ([@AviVahl](https://github.com/AviVahl)) +* `babel-*` + * [#8573](https://github.com/babel/babel/pull/8573) add access public to all packages [skip ci]. ([@hzoo](https://github.com/hzoo)) + +## v7.0.1 (2018-09-11) + +Doing a quick patch regarding helpers versioning to prevent future issues: https://github.com/babel/babel/pull/8659 + +## v7.0.0 (2018-08-27) + +No change from rc.4. Finally released as https://babeljs.io/blog/2018/08/27/7.0.0! + +## v7.0.0-rc.4 (2018-08-27) + +> Similar to removing proposals in `@babel/polyfill`, we are removing them in `transform-runtime` + +#### :boom: Breaking Change +* `babel-plugin-transform-runtime` + * [#8547](https://github.com/babel/babel/pull/8547) Remove nonstandard functions and fake prototype methods from babel-runtime. ([@loganfsmyth](https://github.com/loganfsmyth)) +* `babel-parser` + * [#8539](https://github.com/babel/babel/pull/8539) Update parser whitespace for clarity. ([@jridgewell](https://github.com/jridgewell)) + +#### :bug: Bug Fix +* `babel-register` + * [#8553](https://github.com/babel/babel/pull/8553) bump source-map-support. ([@hzoo](https://github.com/hzoo)) +* `babel-core` + * [#8546](https://github.com/babel/babel/pull/8546) Default highlightCode:true for the parser highlighting.. ([@loganfsmyth](https://github.com/loganfsmyth)) + +#### :house: Internal +* Other + * [#8554](https://github.com/babel/babel/pull/8554) Lerna: remove exact [skip ci]. ([@hzoo](https://github.com/hzoo)) +* `babel-parser` + * [#8540](https://github.com/babel/babel/pull/8540) Cleanup getLineInfo. ([@jridgewell](https://github.com/jridgewell)) + * [#8541](https://github.com/babel/babel/pull/8541) Update to ES6 String methods. ([@jridgewell](https://github.com/jridgewell)) + * [#8537](https://github.com/babel/babel/pull/8537) Flatten TokenType class hierarchy. ([@jridgewell](https://github.com/jridgewell)) + * [#8539](https://github.com/babel/babel/pull/8539) Update parser whitespace for clarity. ([@jridgewell](https://github.com/jridgewell)) + +## v7.0.0-rc.3 (2018-08-24) + +#### :boom: Breaking Change +* `babel-preset-env` + * [#8509](https://github.com/babel/babel/pull/8509) Add browserslist 4 support.. ([@yavorsky](https://github.com/yavorsky)) +* `babel-plugin-transform-runtime` + * [#8518](https://github.com/babel/babel/pull/8518) Make 'useESModules' only toggle CJS vs ESM helpers when importing file is ESM.. ([@loganfsmyth](https://github.com/loganfsmyth)) + +#### :rocket: New Feature +* `babel-plugin-transform-runtime` + * [#8520](https://github.com/babel/babel/pull/8520) Expose opt-in useESModules:"auto" from transform-runtime to toggle based on 'supportsStaticESM'. ([@loganfsmyth](https://github.com/loganfsmyth)) + +#### :bug: Bug Fix +* `babel-helpers`, `babel-plugin-transform-classes`, `babel-preset-env` + * [#8501](https://github.com/babel/babel/pull/8501) [_wrapNativeSuper] Don't wrap non-native constructors. ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo)) +* `babel-generator`, `babel-traverse`, `babel-types` + * [#8478](https://github.com/babel/babel/pull/8478) Fix path.scope.rename() to not change break clauses. ([@rafeca](https://github.com/rafeca)) +* `babel-plugin-proposal-object-rest-spread` + * [#8514](https://github.com/babel/babel/pull/8514) fix: object rest with default values bug. ([@jquense](https://github.com/jquense)) +* `babel-traverse` + * [#8505](https://github.com/babel/babel/pull/8505) Rename exported functions where name conflicts with param.. ([@loganfsmyth](https://github.com/loganfsmyth)) + +#### :house: Internal +* `babel-plugin-transform-object-set-prototype-of-to-assign` + * [#8409](https://github.com/babel/babel/pull/8409) Add LICENSE file to published npm packages [skip ci]. ([@opichals](https://github.com/opichals)) +* Other + * [#8504](https://github.com/babel/babel/pull/8504) Update Babel to rc.2. ([@hzoo](https://github.com/hzoo)) + +## v7.0.0-rc.2 (2018-08-21) + +A notable change is the addition of https://github.com/babel/babel/pull/8485 which enables https://github.com/babel/babel-loader/pull/660 (automatically doing `modules: false` for `@babel/preset-env` when using `babel-loader`. + +#### :boom: Breaking Change +* `babel-core` + * [#8470](https://github.com/babel/babel/pull/8470) Remove File#resolveModuleSource. ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo)) + * [#8473](https://github.com/babel/babel/pull/8473) Allow babel-plugin/preset prefix to not be a prefix, when used in a scope.. ([@loganfsmyth](https://github.com/loganfsmyth)) +* `babel-core`, `babel-parser`, `babel-plugin-syntax-decorators` + * [#8465](https://github.com/babel/babel/pull/8465) Require decoratorsBeforeExport option for decorators. ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo)) + +#### :rocket: New Feature +* `babel-preset-env` + * [#8500](https://github.com/babel/babel/pull/8500) Add missing es7.promise.finally polyfill when using useBuiltIns: usage. ([@jsnajdr](https://github.com/jsnajdr)) +* `babel-cli`, `babel-core`, `babel-node`, `babel-preset-env`, `babel-register` + * [#8485](https://github.com/babel/babel/pull/8485) Allow preset-env to toggle module handling based on flags from the caller (like babel-loader). ([@loganfsmyth](https://github.com/loganfsmyth)) +* `babel-core` + * [#8474](https://github.com/babel/babel/pull/8474) Preserve 'false'-options for disabled plugins/presets.. ([@loganfsmyth](https://github.com/loganfsmyth)) + * [#8473](https://github.com/babel/babel/pull/8473) Allow babel-plugin/preset prefix to not be a prefix, when used in a scope.. ([@loganfsmyth](https://github.com/loganfsmyth)) +* `babel-helper-transform-fixture-test-runner`, `babel-plugin-transform-runtime` + * [#8435](https://github.com/babel/babel/pull/8435) Allow transform-runtime to insert runtime references with absolute paths.. ([@loganfsmyth](https://github.com/loganfsmyth)) + +#### :bug: Bug Fix +* `babel-parser` + * [#8488](https://github.com/babel/babel/pull/8488) Fix trailingComments for FunctionExpression that is CallExpression arguments. ([@jiaxuan](https://github.com/jiaxuan)) +* `babel-core` + * [#8493](https://github.com/babel/babel/pull/8493) Take top-level config source into consideration when processing nested env/overrides.. ([@loganfsmyth](https://github.com/loganfsmyth)) +* `babel-helpers`, `babel-plugin-proposal-decorators` + * [#7429](https://github.com/babel/babel/pull/7429) Fix default descriptor setting for class properties with decorators. ([@yhpark](https://github.com/yhpark)) +* `babel-plugin-transform-parameters` + * [#8479](https://github.com/babel/babel/pull/8479) Fixes setter paratemer default value. ([@nikolayemrikh](https://github.com/nikolayemrikh)) + +#### :nail_care: Polish +* `babel-core` + * [#8494](https://github.com/babel/babel/pull/8494) Cache individual programmatic descriptors along with the overall list.. ([@loganfsmyth](https://github.com/loganfsmyth)) + * [#8493](https://github.com/babel/babel/pull/8493) Take top-level config source into consideration when processing nested env/overrides.. ([@loganfsmyth](https://github.com/loganfsmyth)) + +#### :house: Internal +* `babel-core` + * [#8493](https://github.com/babel/babel/pull/8493) Take top-level config source into consideration when processing nested env/overrides.. ([@loganfsmyth](https://github.com/loganfsmyth)) +* `babel-plugin-transform-classes` + * [#8472](https://github.com/babel/babel/pull/8472) Remove unused file. ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo)) + +## v7.0.0-rc.1 (2018-08-09) + +Same as rc.0 but fixes the peerDep issue #8443. It's changed to just be ^7.0.0-0 + +## v7.0.0-rc.0 (2018-08-09) + +> This had an issue with `peerDependencies` so please use `rc.1`. + +Alright finally at the end 🙂. Shouldn't have anymore breaking changes and going to wait some time to fix bugs/regressions + +> Summary: `@babel/polyfill` will not include proposal polyfills by default and fixed a regression. + +#### :boom: Breaking Change +* `babel-polyfill` + * [#8440](https://github.com/babel/babel/pull/8440) remove proposals polyfills from default import [skip ci]. ([@hzoo](https://github.com/hzoo)) + +> Will add this to the upgrade guide/polyfill docs. I guess we could include a `babel-upgrade` for this too, not sure. + +#### :bug: Bug Fix +* `babel-cli` + * [#8436](https://github.com/babel/babel/pull/8436) Require v1.1.0 so that correct filter params are passed.. ([@loganfsmyth](https://github.com/loganfsmyth)) + +## v7.0.0-beta.56 (2018-08-03) + +- Separate `@babel/runtime`: should work for helpers alone and opt-into core-js if necessary. +- More details in http://babeljs.io/docs/en/next/babel-runtime, http://babeljs.io/docs/en/next/babel-plugin-transform-runtime (via https://github.com/babel/babel/pull/8266, https://github.com/babel/website/pull/1714) +- `babel-upgrade` issue: https://github.com/babel/babel-upgrade/issues/70 + +#### :boom: Breaking Change +* `babel-plugin-transform-regenerator`, `babel-plugin-transform-runtime`, `babel-runtime-corejs2`, `babel-runtime` + * [#8266](https://github.com/babel/babel/pull/8266) Split @babel/runtime into 2 modules via @babel/runtime-corejs2. ([@loganfsmyth](https://github.com/loganfsmyth)) +* `babel-core`, `babel-helper-module-imports`, `babel-helpers`, `babel-plugin-external-helpers`, `babel-plugin-transform-runtime` + * [#8398](https://github.com/babel/babel/pull/8398) Only reference helpers from external/runtime helpers if they are known to be available.. ([@loganfsmyth](https://github.com/loganfsmyth)) + +#### :rocket: New Feature +* `babel-plugin-transform-regenerator`, `babel-plugin-transform-runtime`, `babel-runtime-corejs2`, `babel-runtime` + * [#8266](https://github.com/babel/babel/pull/8266) Split @babel/runtime into 2 modules via @babel/runtime-corejs2. ([@loganfsmyth](https://github.com/loganfsmyth)) + +#### :bug: Bug Fix +* `babel-parser`, `babel-plugin-transform-typescript` + * [#8408](https://github.com/babel/babel/pull/8408) Allow TSInterfaceDeclaration to be default export. ([@existentialism](https://github.com/existentialism)) +* `babel-preset-env` + * [#8403](https://github.com/babel/babel/pull/8403) Ensure esmodule targets are parsed by browserslist. ([@existentialism](https://github.com/existentialism)) +* Other + * [#8024](https://github.com/babel/babel/pull/8024) Run transform-runtime on the standalone bundle so it stays ES5-compatible.. ([@loganfsmyth](https://github.com/loganfsmyth)) + +#### :memo: Documentation +* [#8412](https://github.com/babel/babel/pull/8412) Update Documentation[skip ci]. ([@leongjiameng](https://github.com/leongjiameng)) + +## v7.0.0-beta.55 (2018-07-28) + +Breaking Change in beta: + +> Throws an error on using Stage presets: https://babeljs.io/blog/2018/07/27/removing-babels-stage-presets + +#### :boom: Breaking Change +* `babel-core`, `babel-plugin-proposal-class-properties`, `babel-plugin-proposal-decorators`, `babel-preset-stage-0`, `babel-preset-stage-1`, `babel-preset-stage-2`, `babel-preset-stage-3`, `babel-standalone` + * [#8293](https://github.com/babel/babel/pull/8293) Remove Stage presets. ([@hzoo](https://github.com/hzoo)) + +#### :rocket: New Feature +* `babel-generator`, `babel-parser`, `babel-plugin-transform-typescript`, `babel-types` + * [#7754](https://github.com/babel/babel/pull/7754) TypeScript: Support type arguments on tagged templates. ([@andy-ms](https://github.com/andy-ms)) + +#### :bug: Bug Fix +* `babel-cli`, `babel-core`, `babel-generator` + * [#8380](https://github.com/babel/babel/pull/8380) Ensure that Identifier source mappings explicitly start and stop on the generated range. ([@loganfsmyth](https://github.com/loganfsmyth)) +* `babel-preset-env` + * [#8391](https://github.com/babel/babel/pull/8391) Ensure preset-env doesn't clobber browserslist defaults. ([@existentialism](https://github.com/existentialism)) +* `babel-core` + * [#8376](https://github.com/babel/babel/pull/8376) Fix order of optional argument reordering. ([@Qix-](https://github.com/Qix-)) + * [#8381](https://github.com/babel/babel/pull/8381) Allow an Array for `babelrcRoots`.. ([@wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg)) + * [#8342](https://github.com/babel/babel/pull/8342) Do not mutate ast. ([@thiagoarrais](https://github.com/thiagoarrais)) +* `babel-parser` + * [#8374](https://github.com/babel/babel/pull/8374) Correctly parse interface methods named 'static'. ([@bakkot](https://github.com/bakkot)) + +#### :nail_care: Polish +* `babel-parser` + * [#8355](https://github.com/babel/babel/pull/8355) remove .then from `dynamic import` parser exception message. ([@dnalborczyk](https://github.com/dnalborczyk)) + +#### :house: Internal +* `babel-core`, `babel-preset-stage-0`, `babel-preset-stage-1`, `babel-preset-stage-2`, `babel-preset-stage-3`, `babel-standalone` + * [#8397](https://github.com/babel/babel/pull/8397) Remove our own use of stage presets. ([@hzoo](https://github.com/hzoo)) +* `babel-helpers`, `babel-plugin-proposal-class-properties` + * [#8318](https://github.com/babel/babel/pull/8318) Save full descriptor instead of only value for private fields.. ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo)) +* `babel-core` + * [#8381](https://github.com/babel/babel/pull/8381) Allow an Array for `babelrcRoots`.. ([@wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg)) +* `babel-cli`, `babel-core`, `babel-generator`, `babel-helper-define-map`, `babel-helper-fixtures`, `babel-helper-module-imports`, `babel-helper-module-transforms`, `babel-helper-regex`, `babel-helper-simple-access`, `babel-helper-transform-fixture-test-runner`, `babel-node`, `babel-plugin-transform-block-scoping`, `babel-register`, `babel-template`, `babel-traverse`, `babel-types` + * [#8377](https://github.com/babel/babel/pull/8377) Bumped lodash to 4.17.10. ([@Berkmann18](https://github.com/Berkmann18)) + +## v7.0.0-beta.54 (2018-07-16) + +> Regarding https://github.com/babel/babel/issues/8184, we aren't using `micromatch` for paths, just basic `*/**` substitution now. For anything more complicated we will recommend using a regex/`.js` config. +> Fixed a bug in the stage presets (https://github.com/babel/babel/issues/8307), so we just removed the requirements for setting options in the meantime for ease of use. We are removing the Stage presets next release. https://github.com/babel/babel/pull/8293 + +#### :boom: Breaking Change +* `babel-core`, `babel-register`, `babel-traverse` + * [#8327](https://github.com/babel/babel/pull/8327) Treat string ignore/only/test/include/exclude values as paths with only basic pattern matching. ([@loganfsmyth](https://github.com/loganfsmyth)) + +#### :bug: Bug Fix +* `babel-core`, `babel-register`, `babel-traverse` + * [#8327](https://github.com/babel/babel/pull/8327) Treat string ignore/only/test/include/exclude values as paths with only basic pattern matching. ([@loganfsmyth](https://github.com/loganfsmyth)) +* `babel-preset-stage-0`, `babel-preset-stage-1` + * [#8317](https://github.com/babel/babel/pull/8317) Fix stage-0/1 import of pipeline proposals array. ([@mAAdhaTTah](https://github.com/mAAdhaTTah)) +* `babel-helper-module-transforms`, `babel-plugin-transform-modules-commonjs` + * [#8316](https://github.com/babel/babel/pull/8316) Ensure that the wildcard interop is used with re-export + default.. ([@loganfsmyth](https://github.com/loganfsmyth)) +* `babel-core` + * [#8315](https://github.com/babel/babel/pull/8315) Remove option-filtering options from the final options results.. ([@loganfsmyth](https://github.com/loganfsmyth)) + +#### :memo: Documentation +* [#8320](https://github.com/babel/babel/pull/8320) Add link to audio version of song. ([@rugk](https://github.com/rugk)) + +## v7.0.0-beta.53 (2018-07-11) + +- Fix for regression with paths on windows due to micromatch upgrade, remove yearly presets (not published) +- (There was an issue with the Stage presets in this release, but it is also deprecated) + +#### :boom: Breaking Change +* `babel-*` + * [#8274](https://github.com/babel/babel/pull/8274) Remove yearly presets from repo. ([@hzoo](https://github.com/hzoo)) + +#### :rocket: New Feature +* `babel-generator`, `babel-parser`, `babel-plugin-transform-typescript`, `babel-types` + * [#7799](https://github.com/babel/babel/pull/7799) TypeScript: Support type arguments on JSX opening and self-closing tags. ([@andy-ms](https://github.com/andy-ms)) +* `babel-parser` + * [#8291](https://github.com/babel/babel/pull/8291) Support pipeline proposal flag in `@babel/parser`. ([@mAAdhaTTah](https://github.com/mAAdhaTTah)) +* `babel-plugin-proposal-object-rest-spread` + * [#8264](https://github.com/babel/babel/pull/8264) Remove unused bindings when excluding keys with rest in loose mode. ([@Andarist](https://github.com/Andarist)) +* `babel-helpers`, `babel-plugin-proposal-object-rest-spread`, `babel-plugin-transform-destructuring`, `babel-preset-env` + * [#8261](https://github.com/babel/babel/pull/8261) Introduce objectWithoutPropertiesLoose helper. ([@Andarist](https://github.com/Andarist)) + +#### :bug: Bug Fix +* `babel-core` + * [#8281](https://github.com/babel/babel/pull/8281) Revert micromatch upgrade (regression) [skip ci]. ([@hzoo](https://github.com/hzoo)) +* `babel-types` + * [#8165](https://github.com/babel/babel/pull/8165) [babel-types] Fix isNodesEquivalent() behavior for TemplateElements. ([@timkendrick](https://github.com/timkendrick)) + +#### :nail_care: Polish +* `babel-plugin-syntax-pipeline-operator`, `babel-preset-stage-0`, `babel-preset-stage-1` + * [#8279](https://github.com/babel/babel/pull/8279) Improve error messages around pipeline option. ([@mAAdhaTTah](https://github.com/mAAdhaTTah)) + +#### :memo: Documentation +* [#8286](https://github.com/babel/babel/pull/8286) Move v4-v6 changelog to another file and all prerelease 7.0 logs [ski…. ([@hzoo](https://github.com/hzoo)) + +#### :house: Internal +* `babel-preset-env` + * [#8299](https://github.com/babel/babel/pull/8299) Make env preset build-data scripts reproducible. ([@rtsao](https://github.com/rtsao)) +* `babel-plugin-proposal-object-rest-spread` + * [#8287](https://github.com/babel/babel/pull/8287) Fixed fixture tests after merge. ([@Andarist](https://github.com/Andarist)) +* Other + * [#8187](https://github.com/babel/babel/pull/8187) Invoke Jest main file directly. ([@ishitatsuyuki](https://github.com/ishitatsuyuki)) + ## v7.0.0-beta.52 (2018-07-06) Deprecating the yearly/stage presets in v7 (will remove next beta). Ran `npm deprecate` on `@babel/preset-es2015`, `@babel/preset-es2016`, `@babel/preset-es2017`, `@babel/preset-stage-0`, `@babel/preset-stage-1`, `@babel/preset-stage-2`, `@babel/preset-stage-3` only for versions `>v7.0.0-beta.52`. This means this will only break your build if you are using `^` in Babel v7 beta (which we have recommended against each release). (It is unfortunate that the default behavior of npm is to use `^` when using `npm install` though; haven't made an RFC for it yet). diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index f422085299e7..7ddb751688f0 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -3,7 +3,7 @@ ## Our Pledge In the interest of fostering an open and welcoming environment, we as -contributors and maintainers pledge to making participation in our project and +contributors and maintainers pledge to make participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and @@ -55,7 +55,7 @@ further defined and clarified by project maintainers. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by contacting hzoo, thejameskyle, sebastian, or loganfsmyth on [Slack](https://slack.babeljs.io/). All +reported by contacting Henry Zhu , Logan Smyth or one of the other [Babel core team members](https://babeljs.io/team). All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index eaa84cd98f56..e7b9bd953b54 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -24,7 +24,7 @@ contributing, please read the ## Not sure where to start? - If you aren't just making a documentation change, you'll probably want to learn a bit about a few topics. - - [ASTs](https://en.wikipedia.org/wiki/Abstract_syntax_tree) (Abstract Syntax Tree): The Babel AST [spec](https://github.com/babel/babel/blob/master/packages/babel-parser/ast/spec.md) is a bit different from [ESTree](https://github.com/estree/estree). The differences are listed [here](https://github.com/babel/babel/tree/master/packages/babel-parser#output). + - [ASTs](https://en.wikipedia.org/wiki/Abstract_syntax_tree) (Abstract Syntax Tree): The Babel AST [spec](https://github.com/babel/babel/blob/master/packages/babel-parser/ast/spec.md) is a bit different from [ESTree](https://github.com/estree/estree). The differences are listed [here](https://babeljs.io/docs/en/next/babel-parser.html#output). - Check out [`/doc`](https://github.com/babel/babel/tree/master/doc) for information about Babel's internals - Check out [the Babel Plugin Handbook](https://github.com/thejameskyle/babel-handbook/blob/master/translations/en/plugin-handbook.md#babel-plugin-handbook) - core plugins are written the same way as any other plugin! - Check out [AST Explorer](http://astexplorer.net/#/scUfOmVOG5) to learn more about ASTs or make your own plugin in the browser @@ -186,7 +186,7 @@ For example, in [`@babel/plugin-transform-exponentiation-operator/test`](https:/ - If you need to expect an error, you can ignore creating the `output.js` file and pass a new `throws` key to the `options.json` that contains the error string that is created. - The second and preferred type is a test that actually evaluates the produced code and asserts that certain properties are true or false. We do this by creating an [`exec.js`](https://github.com/babel/babel/blob/master/packages/babel-plugin-transform-exponentiation-operator/test/fixtures/exponentian-operator/comprehensive/exec.js) file. -In a fixture test, you simply write out the code you want transformed in `input.js`. +In a fixture test, you simply write out the code you want to transform in `input.js`. ```js // input.js @@ -230,7 +230,7 @@ If the test requires a minimum Node version, you can add `minNodeVersion` (must Writing tests for the babel parser is very similar to the other packages. -Inside the `packages/babel-parser/tests/fixtures` folder are categories/groupings of test fixtures (es2015, flow, +Inside the `packages/babel-parser/test/fixtures` folder are categories/groupings of test fixtures (es2015, flow, etc.). To add a test, create a folder under one of these groupings (or create a new one) with a descriptive name, and add the following: @@ -310,7 +310,7 @@ Note that the code shown in Chrome DevTools is compiled code and therefore diffe - 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/master/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/bloc/master/packages/babel-parser/ast/spec.md) + - [ ] If any new nodes or modifications need to be added to the AST, update [ast/spec.md](https://github.com/babel/babel/blob/master/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) - [ ] Add failing/passing tests according to spec behavior - Start working about the Babel transform itself! diff --git a/LICENSE b/LICENSE index 620366eb9007..a06ec0e70f28 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2014-2018 Sebastian McKenzie +Copyright (c) 2014-2018 Sebastian McKenzie and other contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the diff --git a/Makefile b/Makefile index a23354d7b1f7..325866dea3cf 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ MAKEFLAGS = -j1 -FLOW_COMMIT = 395e045c18d537fcbbc552a96ef2cdcd70b4ab52 -TEST262_COMMIT = f90a52b39609a620c0854e0bd0b3a906c930fd17 +FLOW_COMMIT = bea8b83f50f597454941d2a7ecef6e93a881e576 +TEST262_COMMIT = 06c2f019019cf7850923de4d56828e6dfd9212b8 # Fix color output until TravisCI fixes https://github.com/travis-ci/travis-ci/issues/7967 export FORCE_COLOR = true @@ -31,7 +31,7 @@ build-preset-env-standalone: build-dist: build cd packages/babel-polyfill; \ scripts/build-dist.sh - cd packages/babel-runtime; \ + cd packages/babel-plugin-transform-runtime; \ node scripts/build-dist.js watch: clean clean-lib @@ -47,10 +47,13 @@ flow: ./node_modules/.bin/flow check --strip-root lint: - ./node_modules/.bin/eslint scripts $(SOURCES) '*.js' --format=codeframe --rulesdir="./scripts/eslint_rules" + ./node_modules/.bin/eslint scripts $(SOURCES) '*.js' --format=codeframe -fix: - ./node_modules/.bin/eslint scripts $(SOURCES) '*.js' --format=codeframe --fix --rulesdir="./scripts/eslint_rules" +fix: fix-json + ./node_modules/.bin/eslint scripts $(SOURCES) '*.js' --format=codeframe --fix + +fix-json: + ./node_modules/.bin/prettier "{packages,codemod}/*/test/fixtures/**/options.json" --write --loglevel warn clean: test-clean rm -rf packages/babel-polyfill/browser* @@ -104,23 +107,32 @@ test-test262-ci: bootstrap test-test262 test-test262-update-whitelist: node scripts/tests/test262/run_babel_parser_test262.js --update-whitelist -publish: - git pull --rebase +clone-license: + ./scripts/clone-license.sh + +prepublish-build: make clean-lib rm -rf packages/babel-runtime/helpers - rm -rf packages/babel-runtime/core-js + rm -rf packages/babel-runtime-corejs2/helpers + rm -rf packages/babel-runtime-corejs2/core-js BABEL_ENV=production make build-dist + make clone-license + +prepublish: + git pull --rebase + make prepublish-build make test - # not using lerna independent mode atm, so only update packages that have changed since we use ^ + +publish: prepublish # --only-explicit-updates - ./node_modules/.bin/lerna publish --force-publish=* --exact --skip-temp-tag + ./node_modules/.bin/lerna publish make clean bootstrap: clean-all yarn --ignore-engines ./node_modules/.bin/lerna bootstrap -- --ignore-engines make build - cd packages/babel-runtime; \ + cd packages/babel-plugin-transform-runtime; \ node scripts/build-dist.js clean-lib: diff --git a/README.md b/README.md index ab1fce3734b2..7d09826914b5 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ Business Strategy Status

-Babel is a community-driven project used by many companies and projects, and is maintained by a group of [volunteers](https://babeljs.io/team). If you'd like to help support the future of the project, please consider: +Babel (pronounced ["babble"](https://soundcloud.com/sebmck/how-to-pronounce-babel)) is a community-driven project used by many companies and projects, and is maintained by a group of [volunteers](https://babeljs.io/team). If you'd like to help support the future of the project, please consider: - Giving developer time on the project. (Message us on [Twitter](https://twitter.com/babeljs) or [Slack](https://slack.babeljs.io/) for guidance!) - Giving funds by becoming a sponsor (see below)! @@ -68,6 +68,10 @@ Become a sponsor and get your logo on our README on Github with a link to your s Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://www.patreon.com/henryzhu)] +## Silver + + + ## Bronze @@ -103,11 +107,11 @@ Mostly a handful of volunteers! Please check out our [team page](https://babeljs ### Looking for support? -For questions and support please visit join our [Slack Community](https://slack.babeljs.io/) (you can sign-up [here](https://slack.babeljs.io/) for an invite), ask a question on [Stack Overflow](https://stackoverflow.com/questions/tagged/babeljs), or ping us on [Twitter](https://twitter.com/babeljs). +For questions and support please join our [Slack Community](https://slack.babeljs.io/) (you can sign-up [here](https://slack.babeljs.io/) for an invite), ask a question on [Stack Overflow](https://stackoverflow.com/questions/tagged/babeljs), or ping us on [Twitter](https://twitter.com/babeljs). ### Is there a Babel song? -I'm so glad you asked: [Hallelujah —— In Praise of Babel](SONG.md) by [@angus-c](https://github.com/angus-c). Tweet us your recordings! +I'm so glad you asked: [Hallelujah —— In Praise of Babel](SONG.md) by [@angus-c](https://github.com/angus-c), [audio version](https://youtu.be/40abpedBKK8) by [@swyx](https://twitter.com/@swyx). Tweet us your recordings! ### Where are the docs? diff --git a/SONG.md b/SONG.md index 1ef939df3bc3..a6939e15af28 100644 --- a/SONG.md +++ b/SONG.md @@ -1,5 +1,7 @@ ## Hallelujah—In Praise of Babel +➤ [🎶 Audio version here!](https://youtu.be/40abpedBKK8) + I heard there was a clever trick That rewrote all your JavaScript But you don’t really care for magic, do you diff --git a/babel.config.js b/babel.config.js index d68eb3172f8d..ce4eb1d5653c 100644 --- a/babel.config.js +++ b/babel.config.js @@ -13,13 +13,18 @@ module.exports = function(api) { let convertESM = true; let ignoreLib = true; + let includeRuntime = false; switch (env) { // Configs used during bundling builds. case "babel-parser": + convertESM = false; + ignoreLib = false; + break; case "standalone": convertESM = false; ignoreLib = false; + includeRuntime = true; break; case "production": // Config during builds before publish. @@ -41,6 +46,10 @@ module.exports = function(api) { } const config = { + // Our dependencies are all standard CommonJS, along with all sorts of + // other random files in Babel's codebase, so we use script as the default, + // and then mark actual modules as modules farther down. + sourceType: "script", comments: false, ignore: [ // These may not be strictly necessary with the newly-limited scope of @@ -84,7 +93,29 @@ module.exports = function(api) { convertESM ? "@babel/transform-modules-commonjs" : null, ].filter(Boolean), }, - ], + { + // The vast majority of our src files are modules, but we use + // unambiguous to keep things simple until we get around to renaming + // the modules to be more easily distinguished from CommonJS + test: [ + "packages/*/src", + "packages/*/test", + "codemods/*/src", + "codemods/*/test", + ], + sourceType: "unambiguous", + }, + { + // The runtime transform shouldn't process its own runtime or core-js. + exclude: [ + "packages/babel-runtime", + /[\\/]node_modules[\\/](?:@babel\/runtime|babel-runtime|core-js)[\\/]/, + ], + plugins: [includeRuntime ? "@babel/transform-runtime" : null].filter( + Boolean + ), + }, + ].filter(Boolean), }; // we need to do this as long as we do not test everything from source diff --git a/codemods/babel-plugin-codemod-object-assign-to-object-spread/README.md b/codemods/babel-plugin-codemod-object-assign-to-object-spread/README.md index d33028bcad42..d0f4a1d8486a 100644 --- a/codemods/babel-plugin-codemod-object-assign-to-object-spread/README.md +++ b/codemods/babel-plugin-codemod-object-assign-to-object-spread/README.md @@ -36,7 +36,7 @@ npm install --save-dev @babel/plugin-codemod-object-assign-to-object-spread **.babelrc** -```json +```jsonc { "plugins": ["@babel/plugin-codemod-object-assign-to-object-spread"] } diff --git a/codemods/babel-plugin-codemod-object-assign-to-object-spread/package.json b/codemods/babel-plugin-codemod-object-assign-to-object-spread/package.json index 2ca5dc4cf346..747fa0fe68e7 100644 --- a/codemods/babel-plugin-codemod-object-assign-to-object-spread/package.json +++ b/codemods/babel-plugin-codemod-object-assign-to-object-spread/package.json @@ -1,23 +1,26 @@ { "name": "@babel/plugin-codemod-object-assign-to-object-spread", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Transforms Object.assign into object spread syntax", "repository": "https://github.com/babel/babel/tree/master/codemods/babel-plugin-codemod-object-assign-to-object-spread", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "@babel/codemod", "@babel/plugin" ], "dependencies": { - "@babel/plugin-syntax-object-rest-spread": "7.0.0-beta.52" + "@babel/plugin-syntax-object-rest-spread": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" }, "publishConfig": { "access": "public" diff --git a/codemods/babel-plugin-codemod-optional-catch-binding/README.md b/codemods/babel-plugin-codemod-optional-catch-binding/README.md index 6ba95eb9f423..c46215601613 100644 --- a/codemods/babel-plugin-codemod-optional-catch-binding/README.md +++ b/codemods/babel-plugin-codemod-optional-catch-binding/README.md @@ -34,7 +34,7 @@ npm install --save-dev @babel/plugin-codemod-optional-catch-binding **.babelrc** -```json +```jsonc { "plugins": ["@babel/plugin-codemod-optional-catch-binding"] } diff --git a/codemods/babel-plugin-codemod-optional-catch-binding/package.json b/codemods/babel-plugin-codemod-optional-catch-binding/package.json index 53ed7c153d01..45913353021c 100644 --- a/codemods/babel-plugin-codemod-optional-catch-binding/package.json +++ b/codemods/babel-plugin-codemod-optional-catch-binding/package.json @@ -1,22 +1,25 @@ { "name": "@babel/plugin-codemod-optional-catch-binding", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Remove unused catch bindings", "repository": "https://github.com/babel/babel/tree/master/codemods/babel-plugin-codemod-remove-unused-catch-binding", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "@babel/codemod", "@babel/plugin" ], "dependencies": { - "@babel/plugin-syntax-optional-catch-binding": "7.0.0-beta.52" + "@babel/plugin-syntax-optional-catch-binding": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/eslint-local-rules.js b/eslint-local-rules.js new file mode 100644 index 000000000000..73af83e4840e --- /dev/null +++ b/eslint-local-rules.js @@ -0,0 +1,9 @@ +"use strict"; + +const noDeprecatedClone = require("./scripts/eslint_rules/no-deprecated-clone"); +const noUndefinedIdentifier = require("./scripts/eslint_rules/no-undefined-identifier"); + +module.exports = { + "no-deprecated-clone": noDeprecatedClone, + "no-undefined-identifier": noUndefinedIdentifier, +}; diff --git a/lerna.json b/lerna.json index a984283ff0cc..385f723f20e3 100644 --- a/lerna.json +++ b/lerna.json @@ -1,6 +1,6 @@ { "lerna": "2.11.0", - "version": "7.0.0-beta.52", + "version": "7.1.4", "changelog": { "repo": "babel/babel", "cacheDir": ".changelog", @@ -18,8 +18,11 @@ "publish": { "ignore": [ "*.md", + "*.json", + "*.txt", "test/**", - "codemods/**" + "codemods/**", + "package.json" ] } }, diff --git a/lib/third-party-libs.js.flow b/lib/third-party-libs.js.flow index 9d0e0e76ddbd..74913a5df11a 100644 --- a/lib/third-party-libs.js.flow +++ b/lib/third-party-libs.js.flow @@ -32,6 +32,20 @@ declare module "lodash/merge" { declare export default (T, Object) => T; } +declare module "semver" { + declare module.exports: { + valid(v: string): boolean; + gt(v1: string, v2: string): boolean; + lt(v1: string, v2: string): boolean; + major(v: string): number; + minor(v: string): number; + patch(v: string): number; + satisfies(v1: string, r1: string): boolean; + + intersects(r1: string, r2: string): boolean; + } +} + declare module "source-map" { declare export type SourceMap = { version: 3, diff --git a/package.json b/package.json index 2ef4be29b440..203ecfe70fd0 100644 --- a/package.json +++ b/package.json @@ -6,33 +6,37 @@ "build": "make build", "fix": "make fix", "lint": "make lint", - "precommit": "lint-staged", "test": "make test" }, "devDependencies": { - "@babel/cli": "7.0.0-beta.52", - "@babel/core": "7.0.0-beta.52", - "@babel/plugin-transform-modules-commonjs": "7.0.0-beta.52", - "@babel/preset-env": "7.0.0-beta.52", - "@babel/preset-flow": "7.0.0-beta.52", - "@babel/preset-stage-0": "7.0.0-beta.52", - "@babel/register": "7.0.0-beta.52", + "@babel/cli": "^7.1.2", + "@babel/core": "^7.1.2", + "@babel/plugin-proposal-class-properties": "^7.1.0", + "@babel/plugin-proposal-export-namespace-from": "^7.0.0", + "@babel/plugin-proposal-numeric-separator": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.1.0", + "@babel/plugin-transform-runtime": "^7.1.0", + "@babel/preset-env": "^7.1.0", + "@babel/preset-flow": "^7.0.0", + "@babel/register": "^7.0.0", + "@babel/runtime": "^7.1.2", "babel-core": "^7.0.0-0", - "babel-eslint": "^8.2.5", - "babel-jest": "^22.4.1", - "babel-loader": "8.0.0-beta.0", + "babel-eslint": "^10.0.1", + "babel-jest": "^23.6.0", + "babel-loader": "^8.0.4", "babel-plugin-transform-charcodes": "^0.1.0", - "browserify": "^13.1.1", + "browserify": "^16.2.2", "bundle-collapser": "^1.2.1", "chalk": "^2.3.2", "charcodes": "^0.1.0", "derequire": "^2.0.2", "enhanced-resolve": "^3.0.0", - "eslint": "^5.0.1", - "eslint-config-babel": "^7.0.2", - "eslint-plugin-flowtype": "^2.49.3", - "eslint-plugin-prettier": "^2.6.1", - "flow-bin": "^0.75.0", + "eslint": "^5.6.0", + "eslint-config-babel": "^8.0.1", + "eslint-plugin-flowtype": "^2.50.1", + "eslint-plugin-local-rules": "0.1.0", + "eslint-plugin-prettier": "^2.6.2", + "flow-bin": "^0.82.0", "graceful-fs": "^4.1.11", "gulp": "^4.0.0", "gulp-babel": "^8.0.0-beta.2", @@ -43,15 +47,15 @@ "gulp-uglify": "^3.0.0", "gulp-util": "^3.0.7", "gulp-watch": "^5.0.0", - "husky": "^0.14.3", - "jest": "^22.4.2", + "husky": "^1.0.0-rc.15", + "jest": "^23.6.0", "lerna": "^2.11.0", "lerna-changelog": "^0.5.0", - "lint-staged": "^6.0.1", - "lodash": "^4.17.5", + "lint-staged": "^7.3.0", + "lodash": "^4.17.10", "merge-stream": "^1.0.1", "output-file-sync": "^2.0.0", - "prettier": "1.13.2", + "prettier": "^1.14.3", "pump": "^1.0.2", "rimraf": "^2.4.3", "rollup-plugin-babel": "^4.0.0-beta.0", @@ -68,14 +72,19 @@ }, "engines": { "node": ">= 6.9.0 <= 11.0.0-0", - "npm": ">= 2.x <= 5.x", + "npm": ">= 3.x <= 6.x", "yarn": ">=0.27.5 || >=1.0.0-20170811" }, "lint-staged": { "*.js": [ - "eslint --format=codeframe --rulesdir='./scripts/eslint_rules'" + "eslint --format=codeframe" ] }, + "husky": { + "hooks": { + "pre-commit": "lint-staged" + } + }, "jest": { "collectCoverageFrom": [ "packages/*/src/**/*.mjs", diff --git a/packages/README.md b/packages/README.md index e0f65daa2991..5c94297efd1c 100644 --- a/packages/README.md +++ b/packages/README.md @@ -13,10 +13,10 @@ A monorepo, muhahahahahaha. See the [monorepo design doc](/doc/design/monorepo.m | Package | Version | Dependencies | |--------|-------|------------| -| [`@babel/core`](/packages/babel-core) | [![npm](https://img.shields.io/npm/v/@babel/core.svg?maxAge=2592000)](https://www.npmjs.com/package/@babel/core) | [![Dependency Status](https://david-dm.org/babel/babel.svg?path=packages/babel-core)](https://david-dm.org/babel/babel?path=packages/babel-core) | -| [`@babel/parser`](/packages/@babel/parser) | [![npm](https://img.shields.io/npm/v/@babel/parser.svg?maxAge=2592000)](https://www.npmjs.com/package/@babel/parser) | [![Dependency Status](https://david-dm.org/babel/babel.svg?path=packages/babel-parser)](https://david-dm.org/babel/babel?path=packages/babel-parser) | -| [`@babel/traverse`](/packages/babel-traverse) | [![npm](https://img.shields.io/npm/v/@babel/traverse.svg?maxAge=2592000)](https://www.npmjs.com/package/@babel/traverse) | [![Dependency Status](https://david-dm.org/babel/babel.svg?path=packages/babel-traverse)](https://david-dm.org/babel/babel?path=packages/babel-traverse) | -| [`@babel/generator`](/packages/babel-generator) | [![npm](https://img.shields.io/npm/v/@babel/generator.svg?maxAge=2592000)](https://www.npmjs.com/package/@babel/generator) | [![Dependency Status](https://david-dm.org/babel/babel.svg?path=packages/babel-generator)](https://david-dm.org/babel/babel?path=packages/babel-generator) | +| [`@babel/core`](/packages/babel-core) | [![npm](https://img.shields.io/npm/v/@babel/core.svg?maxAge=3600)](https://www.npmjs.com/package/@babel/core) | [![Dependency Status](https://david-dm.org/babel/babel.svg?path=packages/babel-core)](https://david-dm.org/babel/babel?path=packages/babel-core) | +| [`@babel/parser`](/packages/babel-parser) | [![npm](https://img.shields.io/npm/v/@babel/parser.svg?maxAge=3600)](https://www.npmjs.com/package/@babel/parser) | [![Dependency Status](https://david-dm.org/babel/babel.svg?path=packages/babel-parser)](https://david-dm.org/babel/babel?path=packages/babel-parser) | +| [`@babel/traverse`](/packages/babel-traverse) | [![npm](https://img.shields.io/npm/v/@babel/traverse.svg?maxAge=3600)](https://www.npmjs.com/package/@babel/traverse) | [![Dependency Status](https://david-dm.org/babel/babel.svg?path=packages/babel-traverse)](https://david-dm.org/babel/babel?path=packages/babel-traverse) | +| [`@babel/generator`](/packages/babel-generator) | [![npm](https://img.shields.io/npm/v/@babel/generator.svg?maxAge=3600)](https://www.npmjs.com/package/@babel/generator) | [![Dependency Status](https://david-dm.org/babel/babel.svg?path=packages/babel-generator)](https://david-dm.org/babel/babel?path=packages/babel-generator) | [`@babel/core`](/packages/babel-core) is the Babel compiler itself; it exposes the `babel.transform` method, where `transformedCode = transform(src).code`. @@ -36,14 +36,14 @@ Check out the [`babel-handbook`](https://github.com/thejameskyle/babel-handbook/ | Package | Version | Dependencies | |--------|-------|------------| -| [`@babel/cli`](/packages/babel-cli) | [![npm](https://img.shields.io/npm/v/@babel/cli.svg?maxAge=2592000)](https://www.npmjs.com/package/@babel/cli) | [![Dependency Status](https://david-dm.org/babel/babel.svg?path=packages/babel-cli)](https://david-dm.org/babel/babel?path=packages/babel-cli) | -| [`@babel/types`](/packages/babel-types) | [![npm](https://img.shields.io/npm/v/@babel/types.svg?maxAge=2592000)](https://www.npmjs.com/package/@babel/types) | [![Dependency Status](https://david-dm.org/babel/babel.svg?path=packages/babel-types)](https://david-dm.org/babel/babel?path=packages/babel-types) | -| [`@babel/polyfill`](/packages/babel-polyfill) | [![npm](https://img.shields.io/npm/v/@babel/polyfill.svg?maxAge=2592000)](https://www.npmjs.com/package/@babel/polyfill) | [![Dependency Status](https://david-dm.org/babel/babel.svg?path=packages/babel-polyfill)](https://david-dm.org/babel/babel?path=packages/babel-polyfill) | -| [`@babel/runtime`](/packages/babel-runtime) | [![npm](https://img.shields.io/npm/v/@babel/runtime.svg?maxAge=2592000)](https://www.npmjs.com/package/@babel/runtime) | [![Dependency Status](https://david-dm.org/babel/babel.svg?path=packages/babel-runtime)](https://david-dm.org/babel/babel?path=packages/babel-runtime) | -| [`@babel/register`](/packages/babel-register) | [![npm](https://img.shields.io/npm/v/@babel/register.svg?maxAge=2592000)](https://www.npmjs.com/package/@babel/register) | [![Dependency Status](https://david-dm.org/babel/babel.svg?path=packages/babel-register)](https://david-dm.org/babel/babel?path=packages/babel-register) | -| [`@babel/template`](/packages/babel-template) | [![npm](https://img.shields.io/npm/v/@babel/template.svg?maxAge=2592000)](https://www.npmjs.com/package/@babel/template) | [![Dependency Status](https://david-dm.org/babel/babel.svg?path=packages/babel-template)](https://david-dm.org/babel/babel?path=packages/babel-template) | -| [`@babel/helpers`](/packages/babel-helpers) | [![npm](https://img.shields.io/npm/v/@babel/helpers.svg?maxAge=2592000)](https://www.npmjs.com/package/@babel/helpers) | [![Dependency Status](https://david-dm.org/babel/babel.svg?path=packages/babel-helpers)](https://david-dm.org/babel/babel?path=packages/babel-helpers) | -| [`@babel/code-frame`](/packages/babel-code-frame) | [![npm](https://img.shields.io/npm/v/@babel/code-frame.svg?maxAge=2592000)](https://www.npmjs.com/package/@babel/code-frame) | [![Dependency Status](https://david-dm.org/babel/babel.svg?path=packages/babel-code-frame)](https://david-dm.org/babel/babel?path=packages/babel-code-frame) | +| [`@babel/cli`](/packages/babel-cli) | [![npm](https://img.shields.io/npm/v/@babel/cli.svg?maxAge=3600)](https://www.npmjs.com/package/@babel/cli) | [![Dependency Status](https://david-dm.org/babel/babel.svg?path=packages/babel-cli)](https://david-dm.org/babel/babel?path=packages/babel-cli) | +| [`@babel/types`](/packages/babel-types) | [![npm](https://img.shields.io/npm/v/@babel/types.svg?maxAge=3600)](https://www.npmjs.com/package/@babel/types) | [![Dependency Status](https://david-dm.org/babel/babel.svg?path=packages/babel-types)](https://david-dm.org/babel/babel?path=packages/babel-types) | +| [`@babel/polyfill`](/packages/babel-polyfill) | [![npm](https://img.shields.io/npm/v/@babel/polyfill.svg?maxAge=3600)](https://www.npmjs.com/package/@babel/polyfill) | [![Dependency Status](https://david-dm.org/babel/babel.svg?path=packages/babel-polyfill)](https://david-dm.org/babel/babel?path=packages/babel-polyfill) | +| [`@babel/runtime`](/packages/babel-runtime) | [![npm](https://img.shields.io/npm/v/@babel/runtime.svg?maxAge=3600)](https://www.npmjs.com/package/@babel/runtime) | [![Dependency Status](https://david-dm.org/babel/babel.svg?path=packages/babel-runtime)](https://david-dm.org/babel/babel?path=packages/babel-runtime) | +| [`@babel/register`](/packages/babel-register) | [![npm](https://img.shields.io/npm/v/@babel/register.svg?maxAge=3600)](https://www.npmjs.com/package/@babel/register) | [![Dependency Status](https://david-dm.org/babel/babel.svg?path=packages/babel-register)](https://david-dm.org/babel/babel?path=packages/babel-register) | +| [`@babel/template`](/packages/babel-template) | [![npm](https://img.shields.io/npm/v/@babel/template.svg?maxAge=3600)](https://www.npmjs.com/package/@babel/template) | [![Dependency Status](https://david-dm.org/babel/babel.svg?path=packages/babel-template)](https://david-dm.org/babel/babel?path=packages/babel-template) | +| [`@babel/helpers`](/packages/babel-helpers) | [![npm](https://img.shields.io/npm/v/@babel/helpers.svg?maxAge=3600)](https://www.npmjs.com/package/@babel/helpers) | [![Dependency Status](https://david-dm.org/babel/babel.svg?path=packages/babel-helpers)](https://david-dm.org/babel/babel?path=packages/babel-helpers) | +| [`@babel/code-frame`](/packages/babel-code-frame) | [![npm](https://img.shields.io/npm/v/@babel/code-frame.svg?maxAge=3600)](https://www.npmjs.com/package/@babel/code-frame) | [![Dependency Status](https://david-dm.org/babel/babel.svg?path=packages/babel-code-frame)](https://david-dm.org/babel/babel?path=packages/babel-code-frame) | - [`@babel/cli`](/packages/babel-cli) is the CLI tool that runs `@babel/core` and helps with outputting to a directory, a file, stdout and more (also includes `@babel/node` cli). Check out the [docs](https://babeljs.io/docs/usage/cli/). - [`@babel/types`](/packages/babel-types) is used to validate, build and change AST nodes. @@ -62,7 +62,7 @@ The transformer[s] used in Babel are the independent pieces of code that transfo | Package | Version | Dependencies | Description | |--------|-------|------------|---| -| [`@babel/preset-env`](/packages/babel-preset-env) | [![npm](https://img.shields.io/npm/v/@babel/preset-env.svg?maxAge=2592000)](https://www.npmjs.com/package/@babel/preset-env) | [![Dependency Status](https://david-dm.org/babel/babel/status.svg?path=packages/babel-preset-env)](https://david-dm.org/babel/babel?path=packages/babel-preset-env) | automatically determines plugins and polyfills you need based on your supported environments | +| [`@babel/preset-env`](/packages/babel-preset-env) | [![npm](https://img.shields.io/npm/v/@babel/preset-env.svg?maxAge=?maxAge=3600)](https://www.npmjs.com/package/@babel/preset-env) | [![Dependency Status](https://david-dm.org/babel/babel/status.svg?path=packages/babel-preset-env)](https://david-dm.org/babel/babel?path=packages/babel-preset-env) | automatically determines plugins and polyfills you need based on your supported environments | > You can find community maintained presets on [npm](https://www.npmjs.com/search?q=babel-preset) diff --git a/packages/babel-cli/package.json b/packages/babel-cli/package.json index 6c915b143251..b520ad82f923 100644 --- a/packages/babel-cli/package.json +++ b/packages/babel-cli/package.json @@ -1,10 +1,13 @@ { "name": "@babel/cli", - "version": "7.0.0-beta.52", + "version": "7.1.2", "description": "Babel command line.", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", "license": "MIT", + "publishConfig": { + "access": "public" + }, "repository": "https://github.com/babel/babel/tree/master/packages/babel-cli", "keywords": [ "6to5", @@ -18,23 +21,23 @@ "dependencies": { "commander": "^2.8.1", "convert-source-map": "^1.1.0", - "fs-readdir-recursive": "^1.0.0", + "fs-readdir-recursive": "^1.1.0", "glob": "^7.0.0", - "lodash": "^4.17.5", + "lodash": "^4.17.10", "mkdirp": "^0.5.1", "output-file-sync": "^2.0.0", - "slash": "^1.0.0", + "slash": "^2.0.0", "source-map": "^0.5.0" }, "optionalDependencies": { "chokidar": "^2.0.3" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-fixtures": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-fixtures": "^7.0.0" }, "bin": { "babel": "./bin/babel.js", diff --git a/packages/babel-cli/src/babel/dir.js b/packages/babel-cli/src/babel/dir.js index 1dbd0ed12903..2eaca85750f8 100644 --- a/packages/babel-cli/src/babel/dir.js +++ b/packages/babel-cli/src/babel/dir.js @@ -89,7 +89,7 @@ export default async function({ cliOptions, babelOptions }) { const stat = fs.statSync(filenameOrDir); - if (stat.isDirectory(filenameOrDir)) { + if (stat.isDirectory()) { const dirname = filenameOrDir; let count = 0; diff --git a/packages/babel-cli/src/babel/options.js b/packages/babel-cli/src/babel/options.js index a058d48be118..d8a5bd4f3f7e 100644 --- a/packages/babel-cli/src/babel/options.js +++ b/packages/babel-cli/src/babel/options.js @@ -28,6 +28,11 @@ commander.option( "The name of the 'env' to use when loading configs and plugins. " + "Defaults to the value of BABEL_ENV, or else NODE_ENV, or else 'development'.", ); +commander.option( + "--root-mode [mode]", + "The project-root resolution mode. " + + "One of 'root' (the default), 'upward', or 'upward-optional'.", +); // Basic file input configuration. commander.option("--source-type [script|module]", ""); @@ -76,7 +81,7 @@ commander.option( "print a comment after any injected non-user code", ); -// General soucemap formatting. +// General source map formatting. commander.option("-s, --source-maps [true|false|inline|both]", "", booleanify); commander.option( "--source-map-target [string]", @@ -162,20 +167,20 @@ export default function parseArgv(args: Array) { filenames.forEach(function(filename) { if (!fs.existsSync(filename)) { - errors.push(filename + " doesn't exist"); + errors.push(filename + " does not exist"); } }); if (commander.outDir && !filenames.length) { - errors.push("filenames required for --out-dir"); + errors.push("--out-dir requires filenames"); } if (commander.outFile && commander.outDir) { - errors.push("cannot have --out-file and --out-dir"); + errors.push("--out-file and --out-dir cannot be used together"); } if (commander.relative && !commander.outDir) { - errors.push("output directory required for --relative"); + errors.push("--relative requires --out-dir usage"); } if (commander.watch) { @@ -207,41 +212,56 @@ export default function parseArgv(args: Array) { } if (errors.length) { - console.error(errors.join(". ")); + console.error("babel:"); + errors.forEach(function(e) { + console.error(" " + e); + }); process.exit(2); } const opts = commander.opts(); + const babelOptions = { + presets: opts.presets, + plugins: opts.plugins, + rootMode: opts.rootMode, + configFile: opts.configFile, + envName: opts.envName, + sourceType: opts.sourceType, + ignore: opts.ignore, + only: opts.only, + retainLines: opts.retainLines, + compact: opts.compact, + minified: opts.minified, + auxiliaryCommentBefore: opts.auxiliaryCommentBefore, + auxiliaryCommentAfter: opts.auxiliaryCommentAfter, + sourceMaps: opts.sourceMaps, + sourceFileName: opts.sourceFileName, + sourceRoot: opts.sourceRoot, + moduleRoot: opts.moduleRoot, + moduleIds: opts.moduleIds, + moduleId: opts.moduleId, + + // Commander will default the "--no-" arguments to true, but we want to + // leave them undefined so that @babel/core can handle the + // default-assignment logic on its own. + babelrc: opts.babelrc === true ? undefined : opts.babelrc, + highlightCode: opts.highlightCode === true ? undefined : opts.highlightCode, + comments: opts.comments === true ? undefined : opts.comments, + }; + + // If the @babel/cli version is newer than the @babel/core version, and we have added + // new options for @babel/core, we'll potentially get option validation errors from + // @babel/core. To avoid that, we delete undefined options, so @babel/core will only + // give the error if users actually pass an unsupported CLI option. + for (const key of Object.keys(babelOptions)) { + if (babelOptions[key] === undefined) { + delete babelOptions[key]; + } + } + return { - babelOptions: { - presets: opts.presets, - plugins: opts.plugins, - configFile: opts.configFile, - envName: opts.envName, - sourceType: opts.sourceType, - ignore: opts.ignore, - only: opts.only, - retainLines: opts.retainLines, - compact: opts.compact, - minified: opts.minified, - auxiliaryCommentBefore: opts.auxiliaryCommentBefore, - auxiliaryCommentAfter: opts.auxiliaryCommentAfter, - sourceMaps: opts.sourceMaps, - sourceFileName: opts.sourceFileName, - sourceRoot: opts.sourceRoot, - moduleRoot: opts.moduleRoot, - moduleIds: opts.moduleIds, - moduleId: opts.moduleId, - - // Commander will default the "--no-" arguments to true, but we want to - // leave them undefined so that @babel/core can handle the - // default-assignment logic on its own. - babelrc: opts.babelrc === true ? undefined : opts.babelrc, - highlightCode: - opts.highlightCode === true ? undefined : opts.highlightCode, - comments: opts.comments === true ? undefined : opts.comments, - }, + babelOptions, cliOptions: { filename: opts.filename, filenames, diff --git a/packages/babel-cli/src/babel/util.js b/packages/babel-cli/src/babel/util.js index 5d0cdc479e68..ad972fd0cd15 100644 --- a/packages/babel-cli/src/babel/util.js +++ b/packages/babel-cli/src/babel/util.js @@ -15,11 +15,15 @@ export function readdir( includeDotfiles: boolean, filter: ReaddirFilter, ) { - return readdirRecursive( - dirname, - filename => - (includeDotfiles || filename[0] !== ".") && (!filter || filter(filename)), - ); + return readdirRecursive(dirname, (filename, _index, currentDirectory) => { + const stat = fs.statSync(path.join(currentDirectory, filename)); + + if (stat.isDirectory()) return true; + + return ( + (includeDotfiles || filename[0] !== ".") && (!filter || filter(filename)) + ); + }); } export function readdirForCompilable( @@ -45,9 +49,14 @@ export function addSourceMappingUrl(code, loc) { return code + "\n//# sourceMappingURL=" + path.basename(loc); } +const CALLER = { + name: "@babel/cli", +}; + export function transform(filename, code, opts) { opts = { ...opts, + caller: CALLER, filename, }; @@ -60,6 +69,11 @@ export function transform(filename, code, opts) { } export function compile(filename, opts) { + opts = { + ...opts, + caller: CALLER, + }; + return new Promise((resolve, reject) => { babel.transformFile(filename, opts, (err, result) => { if (err) reject(err); diff --git a/packages/babel-cli/test/fixtures/babel/--copy-files --include-dotfiles with ignore/options.json b/packages/babel-cli/test/fixtures/babel/--copy-files --include-dotfiles with ignore/options.json index 729a051678e2..1dbdbc952969 100644 --- a/packages/babel-cli/test/fixtures/babel/--copy-files --include-dotfiles with ignore/options.json +++ b/packages/babel-cli/test/fixtures/babel/--copy-files --include-dotfiles with ignore/options.json @@ -1,10 +1,12 @@ { "args": [ "src", - "--out-dir", "lib", + "--out-dir", + "lib", "--copy-files", "--include-dotfiles", - "--ignore", "src/foo", + "--ignore", + "src/foo", "--verbose" ] } diff --git a/packages/babel-cli/test/fixtures/babel/--copy-files --include-dotfiles with only/options.json b/packages/babel-cli/test/fixtures/babel/--copy-files --include-dotfiles with only/options.json index 64034dfa62da..c7aa322fc7a8 100644 --- a/packages/babel-cli/test/fixtures/babel/--copy-files --include-dotfiles with only/options.json +++ b/packages/babel-cli/test/fixtures/babel/--copy-files --include-dotfiles with only/options.json @@ -1,10 +1,12 @@ { "args": [ "src", - "--out-dir", "lib", + "--out-dir", + "lib", "--copy-files", "--include-dotfiles", - "--only", "src/foo", + "--only", + "src/foo", "--verbose" ] } diff --git a/packages/babel-cli/test/fixtures/babel/--copy-files --include-dotfiles/options.json b/packages/babel-cli/test/fixtures/babel/--copy-files --include-dotfiles/options.json index 4d90f91ad5f4..bb94e945f80e 100644 --- a/packages/babel-cli/test/fixtures/babel/--copy-files --include-dotfiles/options.json +++ b/packages/babel-cli/test/fixtures/babel/--copy-files --include-dotfiles/options.json @@ -1,3 +1,10 @@ { - "args": ["src", "--out-dir", "lib", "--copy-files", "--include-dotfiles", "--verbose"] + "args": [ + "src", + "--out-dir", + "lib", + "--copy-files", + "--include-dotfiles", + "--verbose" + ] } diff --git a/packages/babel-cli/test/fixtures/babel/--copy-files with ignore/options.json b/packages/babel-cli/test/fixtures/babel/--copy-files with ignore/options.json index c5551001db26..89633066e60d 100644 --- a/packages/babel-cli/test/fixtures/babel/--copy-files with ignore/options.json +++ b/packages/babel-cli/test/fixtures/babel/--copy-files with ignore/options.json @@ -1,9 +1,11 @@ { "args": [ "src", - "--out-dir", "lib", + "--out-dir", + "lib", "--copy-files", - "--ignore", "src/foo/*", + "--ignore", + "src/foo/*", "--verbose" ] } diff --git a/packages/babel-cli/test/fixtures/babel/--copy-files with only/options.json b/packages/babel-cli/test/fixtures/babel/--copy-files with only/options.json index a1c2f38e399e..89b67e48e62a 100644 --- a/packages/babel-cli/test/fixtures/babel/--copy-files with only/options.json +++ b/packages/babel-cli/test/fixtures/babel/--copy-files with only/options.json @@ -1,9 +1,11 @@ { "args": [ "src", - "--out-dir", "lib", + "--out-dir", + "lib", "--copy-files", - "--only", "src/foo/*", + "--only", + "src/foo/*", "--verbose" ] } diff --git a/packages/babel-cli/test/fixtures/babel/.stdin --out-file --source-maps/options.json b/packages/babel-cli/test/fixtures/babel/.stdin --out-file --source-maps/options.json deleted file mode 100644 index 8fa500178b1c..000000000000 --- a/packages/babel-cli/test/fixtures/babel/.stdin --out-file --source-maps/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "args": ["--source-maps", "--out-file", "test.js"] -} diff --git a/packages/babel-cli/test/fixtures/babel/.stdin --source-maps inline/options.json b/packages/babel-cli/test/fixtures/babel/.stdin --source-maps inline/options.json deleted file mode 100644 index e3938d373425..000000000000 --- a/packages/babel-cli/test/fixtures/babel/.stdin --source-maps inline/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "args": ["--source-maps", "inline"] -} diff --git a/packages/babel-cli/test/fixtures/babel/.stdin --source-maps inline/stdout.txt b/packages/babel-cli/test/fixtures/babel/.stdin --source-maps inline/stdout.txt deleted file mode 100644 index b21594bbfcee..000000000000 --- a/packages/babel-cli/test/fixtures/babel/.stdin --source-maps inline/stdout.txt +++ /dev/null @@ -1,7 +0,0 @@ -"use strict"; - -arr.map(function (x) { - return x * x; -}); - -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0ZGluIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFBLENBQUM7U0FBSSxDQUFDLEdBQUcsQ0FBQztDQUFBLENBQUMsQ0FBQyIsImZpbGUiOiJzdGRvdXQiLCJzb3VyY2VzQ29udGVudCI6WyJhcnIubWFwKHggPT4geCAqIHgpOyJdfQ== diff --git a/packages/babel-cli/test/fixtures/babel/dir --out-dir --out-file/in-files/src/bar/bar.js b/packages/babel-cli/test/fixtures/babel/dir --out-dir --out-file/in-files/src/bar/bar.js new file mode 100644 index 000000000000..45842c5e2674 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --out-dir --out-file/in-files/src/bar/bar.js @@ -0,0 +1,3 @@ +class Test { + +} diff --git a/packages/babel-cli/test/fixtures/babel/dir --out-dir --out-file/in-files/src/foo.js b/packages/babel-cli/test/fixtures/babel/dir --out-dir --out-file/in-files/src/foo.js new file mode 100644 index 000000000000..4bc9539528d4 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --out-dir --out-file/in-files/src/foo.js @@ -0,0 +1 @@ +arr.map(x => x * MULTIPLIER); diff --git a/packages/babel-cli/test/fixtures/babel/dir --out-dir --out-file/options.json b/packages/babel-cli/test/fixtures/babel/dir --out-dir --out-file/options.json new file mode 100644 index 000000000000..4e56bdab4f86 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --out-dir --out-file/options.json @@ -0,0 +1,3 @@ +{ + "args": ["src", "--out-dir", "lib", "--out-file", "compiled.js"] +} diff --git a/packages/babel-cli/test/fixtures/babel/dir --out-dir --out-file/stderr.txt b/packages/babel-cli/test/fixtures/babel/dir --out-dir --out-file/stderr.txt new file mode 100644 index 000000000000..a9d91e73bd58 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --out-dir --out-file/stderr.txt @@ -0,0 +1,2 @@ +babel: + --out-file and --out-dir cannot be used together diff --git a/packages/babel-cli/test/fixtures/babel/dir --out-dir --source-maps inline/out-files/lib/foo.js b/packages/babel-cli/test/fixtures/babel/dir --out-dir --source-maps inline/out-files/lib/foo.js index a7df874e439c..9b8f51f2f6fc 100644 --- a/packages/babel-cli/test/fixtures/babel/dir --out-dir --source-maps inline/out-files/lib/foo.js +++ b/packages/babel-cli/test/fixtures/babel/dir --out-dir --source-maps inline/out-files/lib/foo.js @@ -3,4 +3,4 @@ arr.map(function (x) { return x * MULTIPLIER; }); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9mb28uanMiXSwibmFtZXMiOlsiYXJyIiwibWFwIiwieCIsIk1VTFRJUExJRVIiXSwibWFwcGluZ3MiOiI7O0FBQUFBLElBQUlDLEdBQUosQ0FBUTtBQUFBLFNBQUtDLElBQUlDLFVBQVQ7QUFBQSxDQUFSIiwic291cmNlc0NvbnRlbnQiOlsiYXJyLm1hcCh4ID0+IHggKiBNVUxUSVBMSUVSKTsiXX0= +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9mb28uanMiXSwibmFtZXMiOlsiYXJyIiwibWFwIiwieCIsIk1VTFRJUExJRVIiXSwibWFwcGluZ3MiOiI7O0FBQUFBLEdBQUcsQ0FBQ0MsR0FBSixDQUFRLFVBQUFDLENBQUM7QUFBQSxTQUFJQSxDQUFDLEdBQUdDLFVBQVI7QUFBQSxDQUFUIiwic291cmNlc0NvbnRlbnQiOlsiYXJyLm1hcCh4ID0+IHggKiBNVUxUSVBMSUVSKTsiXX0= diff --git a/packages/babel-cli/test/fixtures/babel/dir --out-dir --source-maps/out-files/lib/foo.js.map b/packages/babel-cli/test/fixtures/babel/dir --out-dir --source-maps/out-files/lib/foo.js.map index 595013088ca2..3caee699c140 100644 --- a/packages/babel-cli/test/fixtures/babel/dir --out-dir --source-maps/out-files/lib/foo.js.map +++ b/packages/babel-cli/test/fixtures/babel/dir --out-dir --source-maps/out-files/lib/foo.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/foo.js"],"names":["arr","map","x","MULTIPLIER"],"mappings":";;AAAAA,IAAIC,GAAJ,CAAQ;AAAA,SAAKC,IAAIC,UAAT;AAAA,CAAR","sourcesContent":["arr.map(x => x * MULTIPLIER);"],"file":"foo.js"} +{"version":3,"sources":["../src/foo.js"],"names":["arr","map","x","MULTIPLIER"],"mappings":";;AAAAA,GAAG,CAACC,GAAJ,CAAQ,UAAAC,CAAC;AAAA,SAAIA,CAAC,GAAGC,UAAR;AAAA,CAAT","sourcesContent":["arr.map(x => x * MULTIPLIER);"],"file":"foo.js"} diff --git a/packages/babel-cli/test/fixtures/babel/dir --out-dir no filenames/options.json b/packages/babel-cli/test/fixtures/babel/dir --out-dir no filenames/options.json new file mode 100644 index 000000000000..f22bf435c132 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --out-dir no filenames/options.json @@ -0,0 +1,3 @@ +{ + "args": ["--out-dir", "lib"] +} diff --git a/packages/babel-cli/test/fixtures/babel/dir --out-dir no filenames/stderr.txt b/packages/babel-cli/test/fixtures/babel/dir --out-dir no filenames/stderr.txt new file mode 100644 index 000000000000..ed50bfb81ee2 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --out-dir no filenames/stderr.txt @@ -0,0 +1,2 @@ +babel: + --out-dir requires filenames diff --git a/packages/babel-cli/test/fixtures/babel/dir --out-file/in-files/src/bar/bar.js b/packages/babel-cli/test/fixtures/babel/dir --out-file/in-files/src/bar/bar.js new file mode 100644 index 000000000000..9e99278492df --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --out-file/in-files/src/bar/bar.js @@ -0,0 +1 @@ + (() => 42) \ No newline at end of file diff --git a/packages/babel-cli/test/fixtures/babel/dir --out-file/in-files/src/foo.js b/packages/babel-cli/test/fixtures/babel/dir --out-file/in-files/src/foo.js new file mode 100644 index 000000000000..4bc9539528d4 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --out-file/in-files/src/foo.js @@ -0,0 +1 @@ +arr.map(x => x * MULTIPLIER); diff --git a/packages/babel-cli/test/fixtures/babel/dir --out-file/options.json b/packages/babel-cli/test/fixtures/babel/dir --out-file/options.json new file mode 100644 index 000000000000..b82e32da5bef --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --out-file/options.json @@ -0,0 +1,3 @@ +{ + "args": ["src", "--out-file", "test.js"] +} diff --git a/packages/babel-cli/test/fixtures/babel/dir --out-file/out-files/test.js b/packages/babel-cli/test/fixtures/babel/dir --out-file/out-files/test.js new file mode 100644 index 000000000000..d3e579815a50 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --out-file/out-files/test.js @@ -0,0 +1,10 @@ +"use strict"; + +(function () { + return 42; +}); +"use strict"; + +arr.map(function (x) { + return x * MULTIPLIER; +}); diff --git a/packages/babel-cli/test/fixtures/babel/dir --out-file/stdout.txt b/packages/babel-cli/test/fixtures/babel/dir --out-file/stdout.txt new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/packages/babel-cli/test/fixtures/babel/dir --skip-initial-build no --watch/in-files/src/bar/bar.js b/packages/babel-cli/test/fixtures/babel/dir --skip-initial-build no --watch/in-files/src/bar/bar.js new file mode 100644 index 000000000000..45842c5e2674 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --skip-initial-build no --watch/in-files/src/bar/bar.js @@ -0,0 +1,3 @@ +class Test { + +} diff --git a/packages/babel-cli/test/fixtures/babel/dir --skip-initial-build no --watch/in-files/src/foo.js b/packages/babel-cli/test/fixtures/babel/dir --skip-initial-build no --watch/in-files/src/foo.js new file mode 100644 index 000000000000..4bc9539528d4 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --skip-initial-build no --watch/in-files/src/foo.js @@ -0,0 +1 @@ +arr.map(x => x * MULTIPLIER); diff --git a/packages/babel-cli/test/fixtures/babel/dir --skip-initial-build no --watch/options.json b/packages/babel-cli/test/fixtures/babel/dir --skip-initial-build no --watch/options.json new file mode 100644 index 000000000000..54626b517a24 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --skip-initial-build no --watch/options.json @@ -0,0 +1,3 @@ +{ + "args": ["src", "--skip-initial-build", "--out-dir", "lib"] +} diff --git a/packages/babel-cli/test/fixtures/babel/dir --skip-initial-build no --watch/stderr.txt b/packages/babel-cli/test/fixtures/babel/dir --skip-initial-build no --watch/stderr.txt new file mode 100644 index 000000000000..ca9d53a3f917 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --skip-initial-build no --watch/stderr.txt @@ -0,0 +1,2 @@ +babel: + --skip-initial-build requires --watch diff --git a/packages/babel-cli/test/fixtures/babel/dir --watch no --out-dir no --out-file/in-files/src/bar/bar.js b/packages/babel-cli/test/fixtures/babel/dir --watch no --out-dir no --out-file/in-files/src/bar/bar.js new file mode 100644 index 000000000000..45842c5e2674 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --watch no --out-dir no --out-file/in-files/src/bar/bar.js @@ -0,0 +1,3 @@ +class Test { + +} diff --git a/packages/babel-cli/test/fixtures/babel/dir --watch no --out-dir no --out-file/in-files/src/foo.js b/packages/babel-cli/test/fixtures/babel/dir --watch no --out-dir no --out-file/in-files/src/foo.js new file mode 100644 index 000000000000..4bc9539528d4 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --watch no --out-dir no --out-file/in-files/src/foo.js @@ -0,0 +1 @@ +arr.map(x => x * MULTIPLIER); diff --git a/packages/babel-cli/test/fixtures/babel/dir --watch no --out-dir no --out-file/options.json b/packages/babel-cli/test/fixtures/babel/dir --watch no --out-dir no --out-file/options.json new file mode 100644 index 000000000000..3a5be032d5fe --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --watch no --out-dir no --out-file/options.json @@ -0,0 +1,3 @@ +{ + "args": ["src", "--watch"] +} diff --git a/packages/babel-cli/test/fixtures/babel/dir --watch no --out-dir no --out-file/stderr.txt b/packages/babel-cli/test/fixtures/babel/dir --watch no --out-dir no --out-file/stderr.txt new file mode 100644 index 000000000000..956952ee18fd --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --watch no --out-dir no --out-file/stderr.txt @@ -0,0 +1,2 @@ +babel: + --watch requires --out-file or --out-dir diff --git a/packages/babel-cli/test/fixtures/babel/error --out-dir --out-file/stderr.txt b/packages/babel-cli/test/fixtures/babel/error --out-dir --out-file/stderr.txt index d873bfee65b6..6ca9b2ed12c3 100644 --- a/packages/babel-cli/test/fixtures/babel/error --out-dir --out-file/stderr.txt +++ b/packages/babel-cli/test/fixtures/babel/error --out-dir --out-file/stderr.txt @@ -1 +1 @@ -filenames required for --out-dir +--out-dir requires filenames diff --git a/packages/babel-cli/test/fixtures/babel/error --out-dir/stderr.txt b/packages/babel-cli/test/fixtures/babel/error --out-dir/stderr.txt index ad905db42d33..b56e7a082788 100644 --- a/packages/babel-cli/test/fixtures/babel/error --out-dir/stderr.txt +++ b/packages/babel-cli/test/fixtures/babel/error --out-dir/stderr.txt @@ -1 +1 @@ -cannot have --out-file and --out-dir +--out-file and --out-dir cannot be used together diff --git a/packages/babel-cli/test/fixtures/babel/error --relative/options.json b/packages/babel-cli/test/fixtures/babel/error --relative/options.json index 1901c571c5b6..4992a127304c 100644 --- a/packages/babel-cli/test/fixtures/babel/error --relative/options.json +++ b/packages/babel-cli/test/fixtures/babel/error --relative/options.json @@ -1,4 +1,4 @@ { - "args": ["--relative"], + "args": ["--relative", "--no-babelrc"], "stderrContains": true } diff --git a/packages/babel-cli/test/fixtures/babel/error --relative/stderr.txt b/packages/babel-cli/test/fixtures/babel/error --relative/stderr.txt index ae7f59e27ea4..f8d5d02029c2 100644 --- a/packages/babel-cli/test/fixtures/babel/error --relative/stderr.txt +++ b/packages/babel-cli/test/fixtures/babel/error --relative/stderr.txt @@ -1 +1 @@ -output directory required for --relative +--relative requires --out-dir usage diff --git a/packages/babel-cli/test/fixtures/babel/error wrong filename/stderr.txt b/packages/babel-cli/test/fixtures/babel/error wrong filename/stderr.txt index 125378c05d32..d45006ba9e97 100644 --- a/packages/babel-cli/test/fixtures/babel/error wrong filename/stderr.txt +++ b/packages/babel-cli/test/fixtures/babel/error wrong filename/stderr.txt @@ -1 +1 @@ -foo.json doesn't exist +foo.json does not exist diff --git a/packages/babel-cli/test/fixtures/babel/filename --out-file --source-maps inline/out-files/script2.js b/packages/babel-cli/test/fixtures/babel/filename --out-file --source-maps inline/out-files/script2.js index 6aa8c1d519b8..884a7d713270 100644 --- a/packages/babel-cli/test/fixtures/babel/filename --out-file --source-maps inline/out-files/script2.js +++ b/packages/babel-cli/test/fixtures/babel/filename --out-file --source-maps inline/out-files/script2.js @@ -4,4 +4,4 @@ arr.map(function (x) { return x * MULTIPLIER; }); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjcmlwdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLElBQUksR0FBSixDQUFRO0FBQUEsU0FBSyxJQUFJLFVBQVQ7QUFBQSxDQUFSIiwiZmlsZSI6InNjcmlwdDIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJhcnIubWFwKHggPT4geCAqIE1VTFRJUExJRVIpOyJdfQ== +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjcmlwdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLEdBQUcsQ0FBQyxHQUFKLENBQVEsVUFBQSxDQUFDO0FBQUEsU0FBSSxDQUFDLEdBQUcsVUFBUjtBQUFBLENBQVQiLCJmaWxlIjoic2NyaXB0Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbImFyci5tYXAoeCA9PiB4ICogTVVMVElQTElFUik7Il19 diff --git a/packages/babel-cli/test/fixtures/babel/filename --watch no filenames/in-files/script.js b/packages/babel-cli/test/fixtures/babel/filename --watch no filenames/in-files/script.js new file mode 100644 index 000000000000..4bc9539528d4 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/filename --watch no filenames/in-files/script.js @@ -0,0 +1 @@ +arr.map(x => x * MULTIPLIER); diff --git a/packages/babel-cli/test/fixtures/babel/filename --watch no filenames/options.json b/packages/babel-cli/test/fixtures/babel/filename --watch no filenames/options.json new file mode 100644 index 000000000000..50f7bfab2000 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/filename --watch no filenames/options.json @@ -0,0 +1,3 @@ +{ + "args": ["--watch", "--out-file", "out.js", "--no-babelrc"] +} diff --git a/packages/babel-cli/test/fixtures/babel/filename --watch no filenames/stderr.txt b/packages/babel-cli/test/fixtures/babel/filename --watch no filenames/stderr.txt new file mode 100644 index 000000000000..efaf1ab77dc9 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/filename --watch no filenames/stderr.txt @@ -0,0 +1,2 @@ +babel: + --watch requires filenames diff --git a/packages/babel-cli/test/fixtures/babel/filename does not exist/options.json b/packages/babel-cli/test/fixtures/babel/filename does not exist/options.json new file mode 100644 index 000000000000..6ca9f9cb4253 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/filename does not exist/options.json @@ -0,0 +1,3 @@ +{ + "args": ["index.js"] +} diff --git a/packages/babel-cli/test/fixtures/babel/filename does not exist/stderr.txt b/packages/babel-cli/test/fixtures/babel/filename does not exist/stderr.txt new file mode 100644 index 000000000000..d50a9b77724f --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/filename does not exist/stderr.txt @@ -0,0 +1,2 @@ +babel: + index.js does not exist diff --git a/packages/babel-cli/test/fixtures/babel/filename-sourcemap --out-file --source-maps inline/out-files/script2.js b/packages/babel-cli/test/fixtures/babel/filename-sourcemap --out-file --source-maps inline/out-files/script2.js index dd0b9d668f38..d1ac8b1f1154 100644 --- a/packages/babel-cli/test/fixtures/babel/filename-sourcemap --out-file --source-maps inline/out-files/script2.js +++ b/packages/babel-cli/test/fixtures/babel/filename-sourcemap --out-file --source-maps inline/out-files/script2.js @@ -4,4 +4,4 @@ arr.map(function (x) { return x * MULTIPLIER; }); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yaWdpbmFsLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsSUFBQSxHQUFBLENBQUE7QUFBQSxTQUFVLElBQUEsVUFBVjtBQUFBLENBQUEiLCJmaWxlIjoic2NyaXB0Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBmb28gPSAoKSA9PiA0OyJdfQ== +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yaWdpbmFsLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsR0FBQSxDQUFBLEdBQUEsQ0FBQSxVQUFBLENBQUE7QUFBQSxTQUFVLENBQUEsR0FBQSxVQUFWO0FBQUEsQ0FBQSIsImZpbGUiOiJzY3JpcHQyLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGZvbyA9ICgpID0+IDQ7Il19 diff --git a/packages/babel-cli/test/fixtures/babel/filenames --out-file --source-maps inline/options.json b/packages/babel-cli/test/fixtures/babel/filenames --out-file --source-maps inline/options.json index 4c967d3de135..e1b64abb35ab 100644 --- a/packages/babel-cli/test/fixtures/babel/filenames --out-file --source-maps inline/options.json +++ b/packages/babel-cli/test/fixtures/babel/filenames --out-file --source-maps inline/options.json @@ -1,3 +1,10 @@ { - "args": ["script.js", "script2.js", "--source-maps", "inline", "--out-file", "script3.js"] + "args": [ + "script.js", + "script2.js", + "--source-maps", + "inline", + "--out-file", + "script3.js" + ] } diff --git a/packages/babel-cli/test/fixtures/babel/filenames --out-file --source-maps inline/out-files/script3.js b/packages/babel-cli/test/fixtures/babel/filenames --out-file --source-maps inline/out-files/script3.js index 538f3938e12f..6fea3635b1f1 100644 --- a/packages/babel-cli/test/fixtures/babel/filenames --out-file --source-maps inline/out-files/script3.js +++ b/packages/babel-cli/test/fixtures/babel/filenames --out-file --source-maps inline/out-files/script3.js @@ -9,4 +9,4 @@ arr.map(function (x) { return x * MULTIPLIER; }); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjcmlwdC5qcyIsInNjcmlwdDIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxDQUFDO0FBQUEsU0FBTSxFQUFOO0FBQUEsQ0FBRDs7O0FDQUEsSUFBSSxHQUFKLENBQVE7QUFBQSxTQUFLLElBQUksVUFBVDtBQUFBLENBQVIiLCJmaWxlIjoic2NyaXB0My5qcyIsInNvdXJjZXNDb250ZW50IjpbIigoKSA9PiA0MikiLCJhcnIubWFwKHggPT4geCAqIE1VTFRJUExJRVIpOyJdfQ== +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjcmlwdC5qcyIsInNjcmlwdDIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxDQUFDO0FBQUEsU0FBTSxFQUFOO0FBQUEsQ0FBRDs7O0FDQUEsR0FBRyxDQUFDLEdBQUosQ0FBUSxVQUFBLENBQUM7QUFBQSxTQUFJLENBQUMsR0FBRyxVQUFSO0FBQUEsQ0FBVCIsImZpbGUiOiJzY3JpcHQzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiKCgpID0+IDQyKSIsImFyci5tYXAoeCA9PiB4ICogTVVMVElQTElFUik7Il19 diff --git a/packages/babel-cli/test/fixtures/babel/filenames --out-file --source-maps/options.json b/packages/babel-cli/test/fixtures/babel/filenames --out-file --source-maps/options.json index 15308d9c7ffd..c19120cc5653 100644 --- a/packages/babel-cli/test/fixtures/babel/filenames --out-file --source-maps/options.json +++ b/packages/babel-cli/test/fixtures/babel/filenames --out-file --source-maps/options.json @@ -1,3 +1,9 @@ { - "args": ["script.js", "script2.js", "--source-maps", "--out-file", "script3.js"] + "args": [ + "script.js", + "script2.js", + "--source-maps", + "--out-file", + "script3.js" + ] } diff --git a/packages/babel-cli/test/fixtures/babel/filenames --out-file --source-maps/out-files/script3.js.map b/packages/babel-cli/test/fixtures/babel/filenames --out-file --source-maps/out-files/script3.js.map index d0eac05292eb..ebbc4f5b25fa 100644 --- a/packages/babel-cli/test/fixtures/babel/filenames --out-file --source-maps/out-files/script3.js.map +++ b/packages/babel-cli/test/fixtures/babel/filenames --out-file --source-maps/out-files/script3.js.map @@ -1 +1 @@ -{"version":3,"sources":["script.js","script2.js"],"names":[],"mappings":";;AAAA,CAAC;AAAA,SAAM,EAAN;AAAA,CAAD;;;ACAA,IAAI,GAAJ,CAAQ;AAAA,SAAK,IAAI,UAAT;AAAA,CAAR","file":"script3.js","sourcesContent":["(() => 42)","arr.map(x => x * MULTIPLIER);"]} \ No newline at end of file +{"version":3,"sources":["script.js","script2.js"],"names":[],"mappings":";;AAAA,CAAC;AAAA,SAAM,EAAN;AAAA,CAAD;;;ACAA,GAAG,CAAC,GAAJ,CAAQ,UAAA,CAAC;AAAA,SAAI,CAAC,GAAG,UAAR;AAAA,CAAT","file":"script3.js","sourcesContent":["(() => 42)","arr.map(x => x * MULTIPLIER);"]} diff --git a/packages/babel-cli/test/fixtures/babel/stdin --out-file --source-maps/options.json b/packages/babel-cli/test/fixtures/babel/stdin --out-file --source-maps/options.json new file mode 100644 index 000000000000..a7a278dc4974 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/stdin --out-file --source-maps/options.json @@ -0,0 +1,3 @@ +{ + "args": ["--source-maps", "--out-file", "test.js", "--no-babelrc"] +} diff --git a/packages/babel-cli/test/fixtures/babel/.stdin --out-file --source-maps/out-files/test.js b/packages/babel-cli/test/fixtures/babel/stdin --out-file --source-maps/out-files/test.js similarity index 100% rename from packages/babel-cli/test/fixtures/babel/.stdin --out-file --source-maps/out-files/test.js rename to packages/babel-cli/test/fixtures/babel/stdin --out-file --source-maps/out-files/test.js diff --git a/packages/babel-cli/test/fixtures/babel/.stdin --out-file --source-maps/out-files/test.js.map b/packages/babel-cli/test/fixtures/babel/stdin --out-file --source-maps/out-files/test.js.map similarity index 66% rename from packages/babel-cli/test/fixtures/babel/.stdin --out-file --source-maps/out-files/test.js.map rename to packages/babel-cli/test/fixtures/babel/stdin --out-file --source-maps/out-files/test.js.map index 78347b03c36f..271bfcad10b2 100644 --- a/packages/babel-cli/test/fixtures/babel/.stdin --out-file --source-maps/out-files/test.js.map +++ b/packages/babel-cli/test/fixtures/babel/stdin --out-file --source-maps/out-files/test.js.map @@ -1 +1 @@ -{"version":3,"sources":["stdin"],"names":[],"mappings":";;AAAA,GAAG,CAAC,GAAG,CAAC,UAAA,CAAC;SAAI,CAAC,GAAG,CAAC;CAAA,CAAC,CAAC","file":"test.js","sourcesContent":["arr.map(x => x * x);"]} +{"version":3,"sources":["stdin"],"names":[],"mappings":";;AAAA,GAAG,CAAC,GAAJ,CAAQ,UAAA,CAAC;AAAA,SAAI,CAAC,GAAG,CAAR;AAAA,CAAT","file":"test.js","sourcesContent":["arr.map(x => x * x);"]} diff --git a/packages/babel-cli/test/fixtures/babel/.stdin --out-file --source-maps/stdin.txt b/packages/babel-cli/test/fixtures/babel/stdin --out-file --source-maps/stdin.txt similarity index 100% rename from packages/babel-cli/test/fixtures/babel/.stdin --out-file --source-maps/stdin.txt rename to packages/babel-cli/test/fixtures/babel/stdin --out-file --source-maps/stdin.txt diff --git a/packages/babel-cli/test/fixtures/babel/stdin --source-maps inline/options.json b/packages/babel-cli/test/fixtures/babel/stdin --source-maps inline/options.json new file mode 100644 index 000000000000..767c3917f449 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/stdin --source-maps inline/options.json @@ -0,0 +1,3 @@ +{ + "args": ["--source-maps", "inline", "--no-babelrc"] +} diff --git a/packages/babel-cli/test/fixtures/babel/.stdin --source-maps inline/stdin.txt b/packages/babel-cli/test/fixtures/babel/stdin --source-maps inline/stdin.txt similarity index 100% rename from packages/babel-cli/test/fixtures/babel/.stdin --source-maps inline/stdin.txt rename to packages/babel-cli/test/fixtures/babel/stdin --source-maps inline/stdin.txt diff --git a/packages/babel-cli/test/fixtures/babel/stdin --source-maps inline/stdout.txt b/packages/babel-cli/test/fixtures/babel/stdin --source-maps inline/stdout.txt new file mode 100644 index 000000000000..2408b7272e91 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/stdin --source-maps inline/stdout.txt @@ -0,0 +1,8 @@ +"use strict"; + +arr.map(function (x) { + return x * x; +}); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0ZGluIl0sIm5hbWVzIjpbImFyciIsIm1hcCIsIngiXSwibWFwcGluZ3MiOiI7O0FBQUFBLEdBQUcsQ0FBQ0MsR0FBSixDQUFRLFVBQUFDLENBQUM7QUFBQSxTQUFJQSxDQUFDLEdBQUdBLENBQVI7QUFBQSxDQUFUIiwic291cmNlc0NvbnRlbnQiOlsiYXJyLm1hcCh4ID0+IHggKiB4KTsiXX0= + +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzdGRvdXQifQ== diff --git a/packages/babel-code-frame/package.json b/packages/babel-code-frame/package.json index a11fd7cc54c3..7e0609b321b4 100644 --- a/packages/babel-code-frame/package.json +++ b/packages/babel-code-frame/package.json @@ -1,14 +1,17 @@ { "name": "@babel/code-frame", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Generate errors that contain a code frame that point to source locations.", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", "license": "MIT", + "publishConfig": { + "access": "public" + }, "repository": "https://github.com/babel/babel/tree/master/packages/babel-code-frame", "main": "lib/index.js", "dependencies": { - "@babel/highlight": "7.0.0-beta.52" + "@babel/highlight": "^7.0.0" }, "devDependencies": { "chalk": "^2.0.0", diff --git a/packages/babel-core/package.json b/packages/babel-core/package.json index 7af33ff4afc0..cd963851d30a 100644 --- a/packages/babel-core/package.json +++ b/packages/babel-core/package.json @@ -1,11 +1,14 @@ { "name": "@babel/core", - "version": "7.0.0-beta.52", + "version": "7.1.2", "description": "Babel compiler core.", "main": "lib/index.js", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", "license": "MIT", + "publishConfig": { + "access": "public" + }, "repository": "https://github.com/babel/babel/tree/master/packages/babel-core", "keywords": [ "6to5", @@ -30,24 +33,23 @@ "./lib/transform-file.js": "./lib/transform-file-browser.js" }, "dependencies": { - "@babel/code-frame": "7.0.0-beta.52", - "@babel/generator": "7.0.0-beta.52", - "@babel/helpers": "7.0.0-beta.52", - "@babel/parser": "7.0.0-beta.52", - "@babel/template": "7.0.0-beta.52", - "@babel/traverse": "7.0.0-beta.52", - "@babel/types": "7.0.0-beta.52", + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.1.2", + "@babel/helpers": "^7.1.2", + "@babel/parser": "^7.1.2", + "@babel/template": "^7.1.2", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.1.2", "convert-source-map": "^1.1.0", "debug": "^3.1.0", "json5": "^0.5.0", - "lodash": "^4.17.5", - "micromatch": "^2.3.11", + "lodash": "^4.17.10", "resolve": "^1.3.2", "semver": "^5.4.1", "source-map": "^0.5.0" }, "devDependencies": { - "@babel/helper-transform-fixture-test-runner": "7.0.0-beta.52", - "@babel/register": "7.0.0-beta.52" + "@babel/helper-transform-fixture-test-runner": "^7.0.0", + "@babel/register": "^7.0.0" } } diff --git a/packages/babel-core/src/config/caching.js b/packages/babel-core/src/config/caching.js index 7c3a28bda215..c8db5a166c71 100644 --- a/packages/babel-core/src/config/caching.js +++ b/packages/babel-core/src/config/caching.js @@ -206,12 +206,29 @@ function makeSimpleConfigurator( return; } - return cache.using(val); + return cache.using(() => assertSimpleType(val())); } cacheFn.forever = () => cache.forever(); cacheFn.never = () => cache.never(); - cacheFn.using = cb => cache.using(() => cb()); - cacheFn.invalidate = cb => cache.invalidate(() => cb()); + cacheFn.using = cb => cache.using(() => assertSimpleType(cb())); + cacheFn.invalidate = cb => cache.invalidate(() => assertSimpleType(cb())); return (cacheFn: any); } + +// Types are limited here so that in the future these values can be used +// as part of Babel's caching logic. +type SimpleType = string | boolean | number | null | void; +export function assertSimpleType(value: mixed): SimpleType { + if ( + value != null && + typeof value !== "string" && + typeof value !== "boolean" && + typeof value !== "number" + ) { + throw new Error( + "Cache keys must be either string, boolean, number, null, or undefined.", + ); + } + return value; +} diff --git a/packages/babel-core/src/config/config-chain.js b/packages/babel-core/src/config/config-chain.js index d117e7c53802..b9e13a130797 100644 --- a/packages/babel-core/src/config/config-chain.js +++ b/packages/babel-core/src/config/config-chain.js @@ -1,7 +1,6 @@ // @flow import path from "path"; -import micromatch from "micromatch"; import buildDebug from "debug"; import { validate, @@ -9,7 +8,9 @@ import { type IgnoreList, type ConfigApplicableTest, type BabelrcSearch, + type CallerMetadata, } from "./validation/options"; +import pathPatternToRegex from "./pattern-to-regex"; const debug = buildDebug("babel:config:config-chain"); @@ -50,17 +51,27 @@ export type ConfigContext = { cwd: string, root: string, envName: string, -}; - -type ConfigContextNamed = { - ...ConfigContext, - filename: string, + caller: CallerMetadata | void, }; /** * Build a config chain for a given preset. */ -export const buildPresetChain: ( +export function buildPresetChain( + arg: PresetInstance, + context: *, +): ConfigChain | null { + const chain = buildPresetChainWalker(arg, context); + if (!chain) return null; + + return { + plugins: dedupDescriptors(chain.plugins), + presets: dedupDescriptors(chain.presets), + options: chain.options, + }; +} + +export const buildPresetChainWalker: ( arg: PresetInstance, context: *, ) => * = makeChainWalker({ @@ -133,9 +144,14 @@ export function buildRootChain( let configFile; if (typeof opts.configFile === "string") { - configFile = loadConfig(opts.configFile, context.cwd, context.envName); + configFile = loadConfig( + opts.configFile, + context.cwd, + context.envName, + context.caller, + ); } else if (opts.configFile !== false) { - configFile = findRootConfig(context.root, context.envName); + configFile = findRootConfig(context.root, context.envName, context.caller); } let { babelrc, babelrcRoots } = opts; @@ -174,6 +190,7 @@ export function buildRootChain( ({ ignore: ignoreFile, config: babelrcFile } = findRelativeConfig( pkgData, context.envName, + context.caller, )); if ( @@ -217,7 +234,7 @@ function babelrcLoadEnabled( const absoluteRoot = context.root; - // Fast path to avoid having to load micromatch if the babelrc is just + // Fast path to avoid having to match patterns if the babelrc is just // loading in the standard root directory. if (babelrcRoots === undefined) { return pkgData.directories.indexOf(absoluteRoot) !== -1; @@ -225,15 +242,23 @@ function babelrcLoadEnabled( let babelrcPatterns = babelrcRoots; if (!Array.isArray(babelrcPatterns)) babelrcPatterns = [babelrcPatterns]; - babelrcPatterns = babelrcPatterns.map(pat => path.resolve(context.cwd, pat)); + babelrcPatterns = babelrcPatterns.map(pat => { + return typeof pat === "string" ? path.resolve(context.cwd, pat) : pat; + }); - // Fast path to avoid having to load micromatch if the babelrc is just + // Fast path to avoid having to match patterns if the babelrc is just // loading in the standard root directory. if (babelrcPatterns.length === 1 && babelrcPatterns[0] === absoluteRoot) { return pkgData.directories.indexOf(absoluteRoot) !== -1; } - return micromatch(pkgData.directories, babelrcPatterns).length > 0; + return babelrcPatterns.some(pat => { + if (typeof pat === "string") pat = pathPatternToRegex(pat, context.cwd); + + return pkgData.directories.some(directory => { + return matchPattern(pat, context.cwd, directory, context); + }); + }); } const validateConfigFile = makeWeakCache( @@ -446,7 +471,12 @@ function mergeExtendsChain( ): boolean { if (opts.extends === undefined) return true; - const file = loadConfig(opts.extends, dirname, context.envName); + const file = loadConfig( + opts.extends, + dirname, + context.envName, + context.caller, + ); if (files.has(file)) { throw new Error( @@ -500,15 +530,19 @@ function normalizeOptions(opts: ValidatedOptions): ValidatedOptions { }; delete options.extends; delete options.env; + delete options.overrides; delete options.plugins; delete options.presets; delete options.passPerPreset; delete options.ignore; delete options.only; + delete options.test; + delete options.include; + delete options.exclude; // "sourceMap" is just aliased to sourceMap, so copy it over as // we merge the options together. - if (options.sourceMap) { + if (options.hasOwnProperty("sourceMap")) { options.sourceMaps = options.sourceMap; delete options.sourceMap; } @@ -520,7 +554,7 @@ function dedupDescriptors( ): Array { const map: Map< Function, - Map, + Map, > = new Map(); const descriptors = []; @@ -535,16 +569,12 @@ function dedupDescriptors( } let desc = nameMap.get(item.name); if (!desc) { - desc = { value: null }; + desc = { value: item }; descriptors.push(desc); // Treat passPerPreset presets as unique, skipping them // in the merge processing steps. if (!item.ownPass) nameMap.set(item.name, desc); - } - - if (item.options === false) { - desc.value = null; } else { desc.value = item; } @@ -554,7 +584,7 @@ function dedupDescriptors( } return descriptors.reduce((acc, desc) => { - if (desc.value) acc.push(desc.value); + acc.push(desc.value); return acc; }, []); } @@ -579,20 +609,9 @@ function configFieldIsApplicable( test: ConfigApplicableTest, dirname: string, ): boolean { - if (typeof context.filename !== "string") { - throw new Error( - `Configuration contains explicit test/include/exclude checks, but no filename was passed to Babel`, - ); - } - // $FlowIgnore - Flow refinements aren't quite smart enough for this :( - const ctx: ConfigContextNamed = context; - const patterns = Array.isArray(test) ? test : [test]; - // Disabling negation here because it's a bit buggy from - // https://github.com/babel/babel/issues/6907 and it's not clear that it is - // needed since users can use 'exclude' alongside 'test'/'include'. - return matchesPatterns(ctx, patterns, dirname, false /* allowNegation */); + return matchesPatterns(context, patterns, dirname); } /** @@ -604,43 +623,24 @@ function shouldIgnore( only: ?IgnoreList, dirname: string, ): boolean { - if (ignore) { - if (typeof context.filename !== "string") { - throw new Error( - `Configuration contains ignore checks, but no filename was passed to Babel`, - ); - } - // $FlowIgnore - Flow refinements aren't quite smart enough for this :( - const ctx: ConfigContextNamed = context; - if (matchesPatterns(ctx, ignore, dirname)) { - debug( - "Ignored %o because it matched one of %O from %o", - context.filename, - ignore, - dirname, - ); - return true; - } + if (ignore && matchesPatterns(context, ignore, dirname)) { + debug( + "Ignored %o because it matched one of %O from %o", + context.filename, + ignore, + dirname, + ); + return true; } - if (only) { - if (typeof context.filename !== "string") { - throw new Error( - `Configuration contains ignore checks, but no filename was passed to Babel`, - ); - } - // $FlowIgnore - Flow refinements aren't quite smart enough for this :( - const ctx: ConfigContextNamed = context; - - if (!matchesPatterns(ctx, only, dirname)) { - debug( - "Ignored %o because it failed to match one of %O from %o", - context.filename, - only, - dirname, - ); - return true; - } + if (only && !matchesPatterns(context, only, dirname)) { + debug( + "Ignored %o because it failed to match one of %O from %o", + context.filename, + only, + dirname, + ); + return true; } return false; @@ -651,64 +651,37 @@ function shouldIgnore( * Otherwise returns result of matching pattern Regex with filename. */ function matchesPatterns( - context: ConfigContextNamed, + context: ConfigContext, patterns: IgnoreList, dirname: string, - allowNegation?: boolean = true, ): boolean { - const res = []; - const strings = []; - const fns = []; - - patterns.forEach(pattern => { - if (typeof pattern === "string") strings.push(pattern); - else if (typeof pattern === "function") fns.push(pattern); - else res.push(pattern); - }); - - const filename = context.filename; - if (res.some(re => re.test(context.filename))) return true; - if (fns.some(fn => fn(filename))) return true; - - if (strings.length > 0) { - const possibleDirs = getPossibleDirs(context); - - const absolutePatterns = strings.map(pattern => { - // Preserve the "!" prefix so that micromatch can use it for negation. - const negate = pattern[0] === "!"; - if (negate && !allowNegation) { - throw new Error(`Negation of file paths is not supported.`); - } - if (negate) pattern = pattern.slice(1); + return patterns.some(pattern => + matchPattern(pattern, dirname, context.filename, context), + ); +} - return (negate ? "!" : "") + path.resolve(dirname, pattern); +function matchPattern( + pattern, + dirname, + pathToTest, + context: ConfigContext, +): boolean { + if (typeof pattern === "function") { + return !!pattern(pathToTest, { + dirname, + envName: context.envName, + caller: context.caller, }); - - if ( - micromatch(possibleDirs, absolutePatterns, { - nocase: true, - nonegate: !allowNegation, - }).length > 0 - ) { - return true; - } } - return false; -} - -const getPossibleDirs = makeWeakCache((context: ConfigContextNamed) => { - let current = context.filename; - if (typeof current !== "string") return []; - - const possibleDirs = [current]; - while (true) { - const previous = current; - current = path.dirname(current); - if (previous === current) break; - - possibleDirs.push(current); + if (typeof pathToTest !== "string") { + throw new Error( + `Configuration contains string/RegExp pattern, but no filename was passed to Babel`, + ); } - return possibleDirs; -}); + if (typeof pattern === "string") { + pattern = pathPatternToRegex(pattern, dirname); + } + return pattern.test(pathToTest); +} diff --git a/packages/babel-core/src/config/config-descriptors.js b/packages/babel-core/src/config/config-descriptors.js index cee11ad62001..e17cca93c680 100644 --- a/packages/babel-core/src/config/config-descriptors.js +++ b/packages/babel-core/src/config/config-descriptors.js @@ -41,6 +41,22 @@ export type UnloadedDescriptor = { } | void, }; +function isEqualDescriptor( + a: UnloadedDescriptor, + b: UnloadedDescriptor, +): boolean { + return ( + a.name === b.name && + a.value === b.value && + a.options === b.options && + a.dirname === b.dirname && + a.alias === b.alias && + a.ownPass === b.ownPass && + (a.file && a.file.request) === (b.file && b.file.request) && + (a.file && a.file.resolved) === (b.file && b.file.resolved) + ); +} + export type ValidatedFile = { filepath: string, dirname: string, @@ -50,7 +66,7 @@ export type ValidatedFile = { /** * Create a set of descriptors from a given options object, preserving * descriptor identity based on the identity of the plugin/preset arrays - * themselves. + * themselves, and potentially on the identity of the plugins/presets + options. */ export function createCachedDescriptors( dirname: string, @@ -113,26 +129,82 @@ export function createUncachedDescriptors( }; } +const PRESET_DESCRIPTOR_CACHE = new WeakMap(); const createCachedPresetDescriptors = makeWeakCache( (items: PluginList, cache: CacheConfigurator) => { const dirname = cache.using(dir => dir); return makeStrongCache((alias: string) => makeStrongCache((passPerPreset: boolean) => - createPresetDescriptors(items, dirname, alias, passPerPreset), + createPresetDescriptors(items, dirname, alias, passPerPreset).map( + // Items are cached using the overall preset array identity when + // possibly, but individual descriptors are also cached if a match + // can be found in the previously-used descriptor lists. + desc => loadCachedDescriptor(PRESET_DESCRIPTOR_CACHE, desc), + ), ), ); }, ); +const PLUGIN_DESCRIPTOR_CACHE = new WeakMap(); const createCachedPluginDescriptors = makeWeakCache( (items: PluginList, cache: CacheConfigurator) => { const dirname = cache.using(dir => dir); return makeStrongCache((alias: string) => - createPluginDescriptors(items, dirname, alias), + createPluginDescriptors(items, dirname, alias).map( + // Items are cached using the overall plugin array identity when + // possibly, but individual descriptors are also cached if a match + // can be found in the previously-used descriptor lists. + desc => loadCachedDescriptor(PLUGIN_DESCRIPTOR_CACHE, desc), + ), ); }, ); +/** + * When no options object is given in a descriptor, this object is used + * as a WeakMap key in order to have consistent identity. + */ +const DEFAULT_OPTIONS = {}; + +/** + * Given the cache and a descriptor, returns a matching descriptor from the + * cache, or else returns the input descriptor and adds it to the cache for + * next time. + */ +function loadCachedDescriptor( + cache: WeakMap<{} | Function, WeakMap<{}, Array>>, + desc: UnloadedDescriptor, +) { + const { value, options = DEFAULT_OPTIONS } = desc; + if (options === false) return desc; + + let cacheByOptions = cache.get(value); + if (!cacheByOptions) { + cacheByOptions = new WeakMap(); + cache.set(value, cacheByOptions); + } + + let possibilities = cacheByOptions.get(options); + if (!possibilities) { + possibilities = []; + cacheByOptions.set(options, possibilities); + } + + if (possibilities.indexOf(desc) === -1) { + const matches = possibilities.filter(possibility => + isEqualDescriptor(possibility, desc), + ); + if (matches.length > 0) { + return matches[0]; + } + + possibilities.push(desc); + } + + return desc; +} + function createPresetDescriptors( items: PluginList, dirname: string, diff --git a/packages/babel-core/src/config/files/configuration.js b/packages/babel-core/src/config/files/configuration.js index 4547f5e4ec0f..279da6b7cf08 100644 --- a/packages/babel-core/src/config/files/configuration.js +++ b/packages/babel-core/src/config/files/configuration.js @@ -12,7 +12,9 @@ import { } from "../caching"; import makeAPI from "../helpers/config-api"; import { makeStaticFileCache } from "./utils"; +import pathPatternToRegex from "../pattern-to-regex"; import type { FilePackageData, RelativeConfig, ConfigFile } from "./types"; +import type { CallerMetadata } from "../validation/options"; const debug = buildDebug("babel:config:loading:files:configuration"); @@ -22,9 +24,25 @@ const BABELRC_FILENAME = ".babelrc"; const BABELRC_JS_FILENAME = ".babelrc.js"; const BABELIGNORE_FILENAME = ".babelignore"; +export function findConfigUpwards(rootDir: string): string | null { + let dirname = rootDir; + while (true) { + if (fs.existsSync(path.join(dirname, BABEL_CONFIG_JS_FILENAME))) { + return dirname; + } + + const nextDir = path.dirname(dirname); + if (dirname === nextDir) break; + dirname = nextDir; + } + + return null; +} + export function findRelativeConfig( packageData: FilePackageData, envName: string, + caller: CallerMetadata | void, ): RelativeConfig { let config = null; let ignore = null; @@ -36,7 +54,7 @@ export function findRelativeConfig( config = [BABELRC_FILENAME, BABELRC_JS_FILENAME].reduce( (previousConfig: ConfigFile | null, name) => { const filepath = path.join(loc, name); - const config = readConfig(filepath, envName); + const config = readConfig(filepath, envName, caller); if (config && previousConfig) { throw new Error( @@ -90,10 +108,11 @@ export function findRelativeConfig( export function findRootConfig( dirname: string, envName: string, + caller: CallerMetadata | void, ): ConfigFile | null { const filepath = path.resolve(dirname, BABEL_CONFIG_JS_FILENAME); - const conf = readConfig(filepath, envName); + const conf = readConfig(filepath, envName, caller); if (conf) { debug("Found root config %o in $o.", BABEL_CONFIG_JS_FILENAME, dirname); } @@ -104,10 +123,11 @@ export function loadConfig( name: string, dirname: string, envName: string, + caller: CallerMetadata | void, ): ConfigFile { const filepath = resolve.sync(name, { basedir: dirname }); - const conf = readConfig(filepath, envName); + const conf = readConfig(filepath, envName, caller); if (!conf) { throw new Error(`Config file ${filepath} contains no configuration data`); } @@ -120,16 +140,22 @@ export function loadConfig( * Read the given config file, returning the result. Returns null if no config was found, but will * throw if there are parsing errors while loading a config. */ -function readConfig(filepath, envName): ConfigFile | null { +function readConfig(filepath, envName, caller): ConfigFile | null { return path.extname(filepath) === ".js" - ? readConfigJS(filepath, { envName }) + ? readConfigJS(filepath, { envName, caller }) : readConfigJSON5(filepath); } const LOADING_CONFIGS = new Set(); const readConfigJS = makeStrongCache( - (filepath, cache: CacheConfigurator<{ envName: string }>) => { + ( + filepath, + cache: CacheConfigurator<{ + envName: string, + caller: CallerMetadata | void, + }>, + ) => { if (!fs.existsSync(filepath)) { cache.forever(); return null; @@ -240,15 +266,24 @@ const readConfigJSON5 = makeStaticFileCache((filepath, content) => { }); const readIgnoreConfig = makeStaticFileCache((filepath, content) => { - const ignore = content + const ignoreDir = path.dirname(filepath); + const ignorePatterns = content .split("\n") .map(line => line.replace(/#(.*?)$/, "").trim()) .filter(line => !!line); + for (const pattern of ignorePatterns) { + if (pattern[0] === "!") { + throw new Error(`Negation of file paths is not supported.`); + } + } + return { filepath, dirname: path.dirname(filepath), - ignore, + ignore: ignorePatterns.map(pattern => + pathPatternToRegex(pattern, ignoreDir), + ), }; }); diff --git a/packages/babel-core/src/config/files/index-browser.js b/packages/babel-core/src/config/files/index-browser.js index cbc8b69a9887..1d2adccaa811 100644 --- a/packages/babel-core/src/config/files/index-browser.js +++ b/packages/babel-core/src/config/files/index-browser.js @@ -7,8 +7,16 @@ import type { FilePackageData, } from "./types"; +import type { CallerMetadata } from "../validation/options"; + export type { ConfigFile, IgnoreFile, RelativeConfig, FilePackageData }; +export function findConfigUpwards( + rootDir: string, // eslint-disable-line no-unused-vars +): string | null { + return null; +} + export function findPackageData(filepath: string): FilePackageData { return { filepath, @@ -21,6 +29,7 @@ export function findPackageData(filepath: string): FilePackageData { export function findRelativeConfig( pkgData: FilePackageData, // eslint-disable-line no-unused-vars envName: string, // eslint-disable-line no-unused-vars + caller: CallerMetadata | void, // eslint-disable-line no-unused-vars ): RelativeConfig { return { pkg: null, config: null, ignore: null }; } @@ -28,6 +37,7 @@ export function findRelativeConfig( export function findRootConfig( dirname: string, // eslint-disable-line no-unused-vars envName: string, // eslint-disable-line no-unused-vars + caller: CallerMetadata | void, // eslint-disable-line no-unused-vars ): ConfigFile | null { return null; } @@ -36,6 +46,7 @@ export function loadConfig( name: string, dirname: string, envName: string, // eslint-disable-line no-unused-vars + caller: CallerMetadata | void, // eslint-disable-line no-unused-vars ): ConfigFile { throw new Error(`Cannot load ${name} relative to ${dirname} in a browser`); } diff --git a/packages/babel-core/src/config/files/index.js b/packages/babel-core/src/config/files/index.js index 9f8d9797bbfb..3c74f2d4eebb 100644 --- a/packages/babel-core/src/config/files/index.js +++ b/packages/babel-core/src/config/files/index.js @@ -10,6 +10,7 @@ import typeof * as indexType from "./index"; export { findPackageData } from "./package"; export { + findConfigUpwards, findRelativeConfig, findRootConfig, loadConfig, diff --git a/packages/babel-core/src/config/files/plugins.js b/packages/babel-core/src/config/files/plugins.js index 75ed818cc07c..be20468d1615 100644 --- a/packages/babel-core/src/config/files/plugins.js +++ b/packages/babel-core/src/config/files/plugins.js @@ -15,8 +15,8 @@ const BABEL_PLUGIN_PREFIX_RE = /^(?!@|module:|[^/]+\/|babel-plugin-)/; const BABEL_PRESET_PREFIX_RE = /^(?!@|module:|[^/]+\/|babel-preset-)/; const BABEL_PLUGIN_ORG_RE = /^(@babel\/)(?!plugin-|[^/]+\/)/; const BABEL_PRESET_ORG_RE = /^(@babel\/)(?!preset-|[^/]+\/)/; -const OTHER_PLUGIN_ORG_RE = /^(@(?!babel\/)[^/]+\/)(?!babel-plugin(?:-|\/|$)|[^/]+\/)/; -const OTHER_PRESET_ORG_RE = /^(@(?!babel\/)[^/]+\/)(?!babel-preset(?:-|\/|$)|[^/]+\/)/; +const OTHER_PLUGIN_ORG_RE = /^(@(?!babel\/)[^/]+\/)(?![^/]*babel-plugin(?:-|\/|$)|[^/]+\/)/; +const OTHER_PRESET_ORG_RE = /^(@(?!babel\/)[^/]+\/)(?![^/]*babel-preset(?:-|\/|$)|[^/]+\/)/; const OTHER_ORG_DEFAULT_RE = /^(@(?!babel$)[^/]+)$/; export function resolvePlugin(name: string, dirname: string): string | null { @@ -132,7 +132,7 @@ function resolveStandardizedName( } catch (e2) {} if (resolvedOppositeType) { - e.message += `\n- Did you accidentally pass a ${type} as a ${oppositeType}?`; + e.message += `\n- Did you accidentally pass a ${oppositeType} as a ${type}?`; } throw e; diff --git a/packages/babel-core/src/config/files/types.js b/packages/babel-core/src/config/files/types.js index fa9d96fe5da3..24649d010fc7 100644 --- a/packages/babel-core/src/config/files/types.js +++ b/packages/babel-core/src/config/files/types.js @@ -9,7 +9,7 @@ export type ConfigFile = { export type IgnoreFile = { filepath: string, dirname: string, - ignore: Array, + ignore: Array, }; export type RelativeConfig = { diff --git a/packages/babel-core/src/config/full.js b/packages/babel-core/src/config/full.js index 8892056f7673..af4212953f67 100644 --- a/packages/babel-core/src/config/full.js +++ b/packages/babel-core/src/config/full.js @@ -13,7 +13,7 @@ import { import type { UnloadedDescriptor } from "./config-descriptors"; import traverse from "@babel/traverse"; import { makeWeakCache, type CacheConfigurator } from "./caching"; -import { validate } from "./validation/options"; +import { validate, type CallerMetadata } from "./validation/options"; import { validatePluginObject } from "./validation/plugins"; import makeAPI from "./helpers/config-api"; @@ -41,6 +41,7 @@ export type PluginPasses = Array; // process 'ignore'/'only' and other filename-based logic. type SimpleContext = { envName: string, + caller: CallerMetadata | void, }; export default function loadFullConfig( @@ -68,15 +69,21 @@ export default function loadFullConfig( }, pass: Array, ) { - const plugins = config.plugins.map(descriptor => { - return loadPluginDescriptor(descriptor, context); - }); - const presets = config.presets.map(descriptor => { - return { - preset: loadPresetDescriptor(descriptor, context), - pass: descriptor.ownPass ? [] : pass, - }; - }); + const plugins = config.plugins.reduce((acc, descriptor) => { + if (descriptor.options !== false) { + acc.push(loadPluginDescriptor(descriptor, context)); + } + return acc; + }, []); + const presets = config.presets.reduce((acc, descriptor) => { + if (descriptor.options !== false) { + acc.push({ + preset: loadPresetDescriptor(descriptor, context), + pass: descriptor.ownPass ? [] : pass, + }); + } + return acc; + }, []); // resolve presets if (presets.length > 0) { diff --git a/packages/babel-core/src/config/helpers/config-api.js b/packages/babel-core/src/config/helpers/config-api.js index da14c22eebf5..fa106f0ce24b 100644 --- a/packages/babel-core/src/config/helpers/config-api.js +++ b/packages/babel-core/src/config/helpers/config-api.js @@ -2,7 +2,13 @@ import semver from "semver"; import { version as coreVersion } from "../../"; -import type { CacheConfigurator, SimpleCacheConfigurator } from "../caching"; +import { + assertSimpleType, + type CacheConfigurator, + type SimpleCacheConfigurator, +} from "../caching"; + +import type { CallerMetadata } from "../validation/options"; type EnvFunction = { (): string, @@ -20,12 +26,14 @@ export type PluginAPI = { }; export default function makeAPI( - cache: CacheConfigurator<{ envName: string }>, + cache: CacheConfigurator<{ envName: string, caller: CallerMetadata | void }>, ): PluginAPI { const env: any = value => cache.using(data => { if (typeof value === "undefined") return data.envName; - if (typeof value === "function") return value(data.envName); + if (typeof value === "function") { + return assertSimpleType(value(data.envName)); + } if (!Array.isArray(value)) value = [value]; return value.some(entry => { @@ -36,12 +44,16 @@ export default function makeAPI( }); }); + const caller: any = cb => + cache.using(data => assertSimpleType(cb(data.caller))); + return { version: coreVersion, cache: cache.simple(), // Expose ".env()" so people can easily get the same env that we expose using the "env" key. env, async: () => false, + caller, assertVersion, }; } diff --git a/packages/babel-core/src/config/item.js b/packages/babel-core/src/config/item.js index ab9b51207ee9..c847df029e52 100644 --- a/packages/babel-core/src/config/item.js +++ b/packages/babel-core/src/config/item.js @@ -71,9 +71,11 @@ class ConfigItem { /** * The options, if any, that were passed to the item. - * Mutating this will lead to undefined behavior. If you need + * Mutating this will lead to undefined behavior. + * + * "false" means that this item has been disabled. */ - options: {} | void; + options: {} | void | false; /** * The directory that the options for this item are relative to. @@ -103,10 +105,6 @@ class ConfigItem { this._descriptor = descriptor; Object.defineProperty(this, "_descriptor", ({ enumerable: false }: any)); - if (this._descriptor.options === false) { - throw new Error("Assertion failure - unexpected false options"); - } - this.value = this._descriptor.value; this.options = this._descriptor.options; this.dirname = this._descriptor.dirname; diff --git a/packages/babel-core/src/config/partial.js b/packages/babel-core/src/config/partial.js index 206f7c35def5..9f5f85ed4edc 100644 --- a/packages/babel-core/src/config/partial.js +++ b/packages/babel-core/src/config/partial.js @@ -6,9 +6,43 @@ import { mergeOptions } from "./util"; import { createItemFromDescriptor } from "./item"; import { buildRootChain, type ConfigContext } from "./config-chain"; import { getEnv } from "./helpers/environment"; -import { validate, type ValidatedOptions } from "./validation/options"; +import { + validate, + type ValidatedOptions, + type RootMode, +} from "./validation/options"; + +import { findConfigUpwards, type ConfigFile, type IgnoreFile } from "./files"; + +function resolveRootMode(rootDir: string, rootMode: RootMode): string { + switch (rootMode) { + case "root": + return rootDir; + + case "upward-optional": { + const upwardRootDir = findConfigUpwards(rootDir); + return upwardRootDir === null ? rootDir : upwardRootDir; + } -import type { ConfigFile, IgnoreFile } from "./files"; + case "upward": { + const upwardRootDir = findConfigUpwards(rootDir); + if (upwardRootDir !== null) return upwardRootDir; + + throw Object.assign( + (new Error( + `Babel was run with rootMode:"upward" but a root could not ` + + `be found when searching upward from "${rootDir}"`, + ): any), + { + code: "BABEL_ROOT_NOT_FOUND", + dirname: rootDir, + }, + ); + } + default: + throw new Error(`Assertion failure - unknown rootMode value`); + } +} export default function loadPrivatePartialConfig( inputOpts: mixed, @@ -28,9 +62,18 @@ export default function loadPrivatePartialConfig( const args = inputOpts ? validate("arguments", inputOpts) : {}; - const { envName = getEnv(), cwd = ".", root: rootDir = "." } = args; + const { + envName = getEnv(), + cwd = ".", + root: rootDir = ".", + rootMode = "root", + caller, + } = args; const absoluteCwd = path.resolve(cwd); - const absoluteRootDir = path.resolve(absoluteCwd, rootDir); + const absoluteRootDir = resolveRootMode( + path.resolve(absoluteCwd, rootDir), + rootMode, + ); const context: ConfigContext = { filename: @@ -40,6 +83,7 @@ export default function loadPrivatePartialConfig( cwd: absoluteCwd, root: absoluteRootDir, envName, + caller, }; const configChain = buildRootChain(args, context); diff --git a/packages/babel-core/src/config/pattern-to-regex.js b/packages/babel-core/src/config/pattern-to-regex.js new file mode 100644 index 000000000000..d796617f89b4 --- /dev/null +++ b/packages/babel-core/src/config/pattern-to-regex.js @@ -0,0 +1,51 @@ +// @flow +import path from "path"; +import escapeRegExp from "lodash/escapeRegExp"; + +const sep = `\\${path.sep}`; +const endSep = `(?:${sep}|$)`; + +const substitution = `[^${sep}]+`; + +const starPat = `(?:${substitution}${sep})`; +const starPatLast = `(?:${substitution}${endSep})`; + +const starStarPat = `${starPat}*?`; +const starStarPatLast = `${starPat}*?${starPatLast}?`; + +/** + * Implement basic pattern matching that will allow users to do the simple + * tests with * and **. If users want full complex pattern matching, then can + * always use regex matching, or function validation. + */ +export default function pathToPattern( + pattern: string, + dirname: string, +): RegExp { + const parts = path.resolve(dirname, pattern).split(path.sep); + + return new RegExp( + [ + "^", + ...parts.map((part, i) => { + const last = i === parts.length - 1; + + // ** matches 0 or more path parts. + if (part === "**") return last ? starStarPatLast : starStarPat; + + // * matches 1 path part. + if (part === "*") return last ? starPatLast : starPat; + + // *.ext matches a wildcard with an extension. + if (part.indexOf("*.") === 0) { + return ( + substitution + escapeRegExp(part.slice(1)) + (last ? endSep : sep) + ); + } + + // Otherwise match the pattern text. + return escapeRegExp(part) + (last ? endSep : sep); + }), + ].join(""), + ); +} diff --git a/packages/babel-core/src/config/validation/option-assertions.js b/packages/babel-core/src/config/validation/option-assertions.js index a6376517008d..321e1c063229 100644 --- a/packages/babel-core/src/config/validation/option-assertions.js +++ b/packages/babel-core/src/config/validation/option-assertions.js @@ -13,16 +13,70 @@ import type { SourceTypeOption, CompactOption, RootInputSourceMapOption, + NestingPath, + CallerMetadata, + RootMode, } from "./options"; export type ValidatorSet = { [string]: Validator, }; -export type Validator = (string, mixed) => T; +export type Validator = (OptionPath, mixed) => T; + +export function msg(loc: NestingPath | GeneralPath) { + switch (loc.type) { + case "root": + return ``; + case "env": + return `${msg(loc.parent)}.env["${loc.name}"]`; + case "overrides": + return `${msg(loc.parent)}.overrides[${loc.index}]`; + case "option": + return `${msg(loc.parent)}.${loc.name}`; + case "access": + return `${msg(loc.parent)}[${JSON.stringify(loc.name)}]`; + default: + throw new Error(`Assertion failure: Unknown type ${loc.type}`); + } +} + +export function access(loc: GeneralPath, name: string | number): AccessPath { + return { + type: "access", + name, + parent: loc, + }; +} + +export type OptionPath = $ReadOnly<{ + type: "option", + name: string, + parent: NestingPath, +}>; +type AccessPath = $ReadOnly<{ + type: "access", + name: string | number, + parent: GeneralPath, +}>; +type GeneralPath = OptionPath | AccessPath; + +export function assertRootMode(loc: OptionPath, value: mixed): RootMode | void { + if ( + value !== undefined && + value !== "root" && + value !== "upward" && + value !== "upward-optional" + ) { + throw new Error( + `${msg(loc)} must be a "root", "upward", "upward-optional" or undefined`, + ); + } + return value; +} export function assertSourceMaps( - key: string, + loc: OptionPath, value: mixed, ): SourceMapsOption | void { if ( @@ -32,21 +86,24 @@ export function assertSourceMaps( value !== "both" ) { throw new Error( - `.${key} must be a boolean, "inline", "both", or undefined`, + `${msg(loc)} must be a boolean, "inline", "both", or undefined`, ); } return value; } -export function assertCompact(key: string, value: mixed): CompactOption | void { +export function assertCompact( + loc: OptionPath, + value: mixed, +): CompactOption | void { if (value !== undefined && typeof value !== "boolean" && value !== "auto") { - throw new Error(`.${key} must be a boolean, "auto", or undefined`); + throw new Error(`${msg(loc)} must be a boolean, "auto", or undefined`); } return value; } export function assertSourceType( - key: string, + loc: OptionPath, value: mixed, ): SourceTypeOption | void { if ( @@ -56,14 +113,49 @@ export function assertSourceType( value !== "unambiguous" ) { throw new Error( - `.${key} must be "module", "script", "unambiguous", or undefined`, + `${msg(loc)} must be "module", "script", "unambiguous", or undefined`, ); } return value; } +export function assertCallerMetadata( + loc: OptionPath, + value: mixed, +): CallerMetadata | void { + const obj = assertObject(loc, value); + if (obj) { + if (typeof obj[("name": string)] !== "string") { + throw new Error( + `${msg(loc)} set but does not contain "name" property string`, + ); + } + + for (const prop of Object.keys(obj)) { + const propLoc = access(loc, prop); + const value = obj[prop]; + if ( + value != null && + typeof value !== "boolean" && + typeof value !== "string" && + typeof value !== "number" + ) { + // NOTE(logan): I'm limiting the type here so that we can guarantee that + // the "caller" value will serialize to JSON nicely. We can always + // allow more complex structures later though. + throw new Error( + `${msg( + propLoc, + )} must be null, undefined, a boolean, a string, or a number.`, + ); + } + } + } + return (value: any); +} + export function assertInputSourceMap( - key: string, + loc: OptionPath, value: mixed, ): RootInputSourceMapOption | void { if ( @@ -71,75 +163,82 @@ export function assertInputSourceMap( typeof value !== "boolean" && (typeof value !== "object" || !value) ) { - throw new Error(".inputSourceMap must be a boolean, object, or undefined"); + throw new Error(`${msg(loc)} must be a boolean, object, or undefined`); } return value; } -export function assertString(key: string, value: mixed): string | void { +export function assertString(loc: GeneralPath, value: mixed): string | void { if (value !== undefined && typeof value !== "string") { - throw new Error(`.${key} must be a string, or undefined`); + throw new Error(`${msg(loc)} must be a string, or undefined`); } return value; } -export function assertFunction(key: string, value: mixed): Function | void { +export function assertFunction( + loc: GeneralPath, + value: mixed, +): Function | void { if (value !== undefined && typeof value !== "function") { - throw new Error(`.${key} must be a function, or undefined`); + throw new Error(`${msg(loc)} must be a function, or undefined`); } return value; } -export function assertBoolean(key: string, value: mixed): boolean | void { +export function assertBoolean(loc: GeneralPath, value: mixed): boolean | void { if (value !== undefined && typeof value !== "boolean") { - throw new Error(`.${key} must be a boolean, or undefined`); + throw new Error(`${msg(loc)} must be a boolean, or undefined`); } return value; } -export function assertObject(key: string, value: mixed): {} | void { +export function assertObject(loc: GeneralPath, value: mixed): {} | void { if ( value !== undefined && (typeof value !== "object" || Array.isArray(value) || !value) ) { - throw new Error(`.${key} must be an object, or undefined`); + throw new Error(`${msg(loc)} must be an object, or undefined`); } return value; } -export function assertArray(key: string, value: mixed): ?$ReadOnlyArray { +export function assertArray( + loc: GeneralPath, + value: mixed, +): ?$ReadOnlyArray { if (value != null && !Array.isArray(value)) { - throw new Error(`.${key} must be an array, or undefined`); + throw new Error(`${msg(loc)} must be an array, or undefined`); } return value; } -export function assertIgnoreList(key: string, value: mixed): IgnoreList | void { - const arr = assertArray(key, value); +export function assertIgnoreList( + loc: OptionPath, + value: mixed, +): IgnoreList | void { + const arr = assertArray(loc, value); if (arr) { - arr.forEach((item, i) => assertIgnoreItem(key, i, item)); + arr.forEach((item, i) => assertIgnoreItem(access(loc, i), item)); } return (arr: any); } -function assertIgnoreItem( - key: string, - index: number, - value: mixed, -): IgnoreItem { +function assertIgnoreItem(loc: GeneralPath, value: mixed): IgnoreItem { if ( typeof value !== "string" && typeof value !== "function" && !(value instanceof RegExp) ) { throw new Error( - `.${key}[${index}] must be an array of string/Funtion/RegExp values, or undefined`, + `${msg( + loc, + )} must be an array of string/Funtion/RegExp values, or undefined`, ); } return value; } export function assertConfigApplicableTest( - key: string, + loc: OptionPath, value: mixed, ): ConfigApplicableTest | void { if (value === undefined) return value; @@ -147,12 +246,14 @@ export function assertConfigApplicableTest( if (Array.isArray(value)) { value.forEach((item, i) => { if (!checkValidTest(item)) { - throw new Error(`.${key}[${i}] must be a string/Function/RegExp.`); + throw new Error( + `${msg(access(loc, i))} must be a string/Function/RegExp.`, + ); } }); } else if (!checkValidTest(value)) { throw new Error( - `.${key} must be a string/Function/RegExp, or an array of those`, + `${msg(loc)} must be a string/Function/RegExp, or an array of those`, ); } return (value: any); @@ -167,7 +268,7 @@ function checkValidTest(value: mixed): boolean { } export function assertConfigFileSearch( - key: string, + loc: OptionPath, value: mixed, ): ConfigFileSearch | void { if ( @@ -176,7 +277,7 @@ export function assertConfigFileSearch( typeof value !== "string" ) { throw new Error( - `.${key} must be a undefined, a boolean, a string, ` + + `${msg(loc)} must be a undefined, a boolean, a string, ` + `got ${JSON.stringify(value)}`, ); } @@ -185,52 +286,51 @@ export function assertConfigFileSearch( } export function assertBabelrcSearch( - key: string, + loc: OptionPath, value: mixed, ): BabelrcSearch | void { if (value === undefined || typeof value === "boolean") return value; if (Array.isArray(value)) { value.forEach((item, i) => { - if (typeof item !== "string") { - throw new Error(`.${key}[${i}] must be a string.`); + if (!checkValidTest(item)) { + throw new Error( + `${msg(access(loc, i))} must be a string/Function/RegExp.`, + ); } }); - } else if (typeof value !== "string") { + } else if (!checkValidTest(value)) { throw new Error( - `.${key} must be a undefined, a boolean, a string, ` + - `or an array of strings, got ${JSON.stringify(value)}`, + `${msg(loc)} must be a undefined, a boolean, a string/Function/RegExp ` + + `or an array of those, got ${JSON.stringify(value)}`, ); } return (value: any); } -export function assertPluginList(key: string, value: mixed): PluginList | void { - const arr = assertArray(key, value); +export function assertPluginList( + loc: OptionPath, + value: mixed, +): PluginList | void { + const arr = assertArray(loc, value); if (arr) { // Loop instead of using `.map` in order to preserve object identity // for plugin array for use during config chain processing. - arr.forEach((item, i) => assertPluginItem(key, i, item)); + arr.forEach((item, i) => assertPluginItem(access(loc, i), item)); } return (arr: any); } -function assertPluginItem( - key: string, - index: number, - value: mixed, -): PluginItem { +function assertPluginItem(loc: GeneralPath, value: mixed): PluginItem { if (Array.isArray(value)) { if (value.length === 0) { - throw new Error(`.${key}[${index}] must include an object`); + throw new Error(`${msg(loc)} must include an object`); } if (value.length > 3) { - throw new Error( - `.${key}[${index}] may only be a two-tuple or three-tuple`, - ); + throw new Error(`${msg(loc)} may only be a two-tuple or three-tuple`); } - assertPluginTarget(key, index, true, value[0]); + assertPluginTarget(access(loc, 0), value[0]); if (value.length > 1) { const opts = value[1]; @@ -240,38 +340,31 @@ function assertPluginItem( (typeof opts !== "object" || Array.isArray(opts)) ) { throw new Error( - `.${key}[${index}][1] must be an object, false, or undefined`, + `${msg(access(loc, 1))} must be an object, false, or undefined`, ); } } if (value.length === 3) { const name = value[2]; if (name !== undefined && typeof name !== "string") { - throw new Error(`.${key}[${index}][2] must be a string, or undefined`); + throw new Error( + `${msg(access(loc, 2))} must be a string, or undefined`, + ); } } } else { - assertPluginTarget(key, index, false, value); + assertPluginTarget(loc, value); } return (value: any); } -function assertPluginTarget( - key: string, - index: number, - inArray: boolean, - value: mixed, -): PluginTarget { +function assertPluginTarget(loc: GeneralPath, value: mixed): PluginTarget { if ( (typeof value !== "object" || !value) && typeof value !== "string" && typeof value !== "function" ) { - throw new Error( - `.${key}[${index}]${ - inArray ? `[0]` : "" - } must be a string, object, function`, - ); + throw new Error(`${msg(loc)} must be a string, object, function`); } return value; } diff --git a/packages/babel-core/src/config/validation/options.js b/packages/babel-core/src/config/validation/options.js index 25569485780a..c790adfac9f9 100644 --- a/packages/babel-core/src/config/validation/options.js +++ b/packages/babel-core/src/config/validation/options.js @@ -5,10 +5,13 @@ import Plugin from "../plugin"; import removed from "./removed"; import { + msg, + access, assertString, assertBoolean, assertObject, assertArray, + assertCallerMetadata, assertInputSourceMap, assertIgnoreList, assertPluginList, @@ -16,20 +19,28 @@ import { assertConfigFileSearch, assertBabelrcSearch, assertFunction, + assertRootMode, assertSourceMaps, assertCompact, assertSourceType, type ValidatorSet, type Validator, + type OptionPath, } from "./option-assertions"; const ROOT_VALIDATORS: ValidatorSet = { cwd: (assertString: Validator<$PropertyType>), root: (assertString: Validator<$PropertyType>), + rootMode: (assertRootMode: Validator< + $PropertyType, + >), configFile: (assertConfigFileSearch: Validator< $PropertyType, >), + caller: (assertCallerMetadata: Validator< + $PropertyType, + >), filename: (assertString: Validator< $PropertyType, >), @@ -169,10 +180,12 @@ export type ValidatedOptions = { babelrcRoots?: BabelrcSearch, configFile?: ConfigFileSearch, root?: string, + rootMode?: RootMode, code?: boolean, ast?: boolean, inputSourceMap?: RootInputSourceMapOption, envName?: string, + caller?: CallerMetadata, extends?: string, env?: EnvSet, @@ -222,6 +235,11 @@ export type ValidatedOptions = { generatorOpts?: {}, }; +export type CallerMetadata = { + // If 'caller' is specified, require that the name is given for debugging + // messages. + name: string, +}; export type EnvSet = { [string]: ?T, }; @@ -242,30 +260,69 @@ export type OverridesList = Array; export type ConfigApplicableTest = IgnoreItem | Array; export type ConfigFileSearch = string | boolean; -export type BabelrcSearch = boolean | string | Array; +export type BabelrcSearch = boolean | IgnoreItem | IgnoreList; export type SourceMapsOption = boolean | "inline" | "both"; export type SourceTypeOption = "module" | "script" | "unambiguous"; export type CompactOption = boolean | "auto"; export type RootInputSourceMapOption = {} | boolean; +export type RootMode = "root" | "upward" | "upward-optional"; -export type OptionsType = +export type OptionsSource = | "arguments" - | "env" - | "preset" - | "override" | "configfile" | "babelrcfile" - | "extendsfile"; + | "extendsfile" + | "preset"; + +type RootPath = $ReadOnly<{ + type: "root", + source: OptionsSource, +}>; +type OverridesPath = $ReadOnly<{ + type: "overrides", + index: number, + parent: RootPath, +}>; +type EnvPath = $ReadOnly<{ + type: "env", + name: string, + parent: RootPath | OverridesPath, +}>; +export type NestingPath = RootPath | OverridesPath | EnvPath; + +function getSource(loc: NestingPath): OptionsSource { + return loc.type === "root" ? loc.source : getSource(loc.parent); +} + +export function validate(type: OptionsSource, opts: {}): ValidatedOptions { + return validateNested( + { + type: "root", + source: type, + }, + opts, + ); +} + +function validateNested(loc: NestingPath, opts: {}) { + const type = getSource(loc); -export function validate(type: OptionsType, opts: {}): ValidatedOptions { assertNoDuplicateSourcemap(opts); Object.keys(opts).forEach(key => { + const optLoc = { + type: "option", + name: key, + parent: loc, + }; + if (type === "preset" && NONPRESET_VALIDATORS[key]) { - throw new Error(`.${key} is not allowed in preset options`); + throw new Error(`${msg(optLoc)} is not allowed in preset options`); } if (type !== "arguments" && ROOT_VALIDATORS[key]) { - throw new Error(`.${key} is only allowed in root programmatic options`); + throw new Error( + `${msg(optLoc)} is only allowed in root programmatic options`, + ); } if ( type !== "arguments" && @@ -274,48 +331,47 @@ export function validate(type: OptionsType, opts: {}): ValidatedOptions { ) { if (type === "babelrcfile" || type === "extendsfile") { throw new Error( - `.${key} is not allowed in .babelrc or "extend"ed files, only in root programmatic options, ` + + `${msg( + optLoc, + )} is not allowed in .babelrc or "extends"ed files, only in root programmatic options, ` + `or babel.config.js/config file options`, ); } throw new Error( - `.${key} is only allowed in root programmatic options, or babel.config.js/config file options`, + `${msg( + optLoc, + )} is only allowed in root programmatic options, or babel.config.js/config file options`, ); } - if (type === "env" && key === "env") { - throw new Error(`.${key} is not allowed inside another env block`); - } - if (type === "env" && key === "overrides") { - throw new Error(`.${key} is not allowed inside an env block`); - } - if (type === "override" && key === "overrides") { - throw new Error(`.${key} is not allowed inside an overrides block`); - } const validator = COMMON_VALIDATORS[key] || NONPRESET_VALIDATORS[key] || BABELRC_VALIDATORS[key] || - ROOT_VALIDATORS[key]; + ROOT_VALIDATORS[key] || + throwUnknownError; - if (validator) validator(key, opts[key]); - else throw buildUnknownError(key); + validator(optLoc, opts[key]); }); return (opts: any); } -function buildUnknownError(key: string) { +function throwUnknownError(loc: OptionPath) { + const key = loc.name; + if (removed[key]) { const { message, version = 5 } = removed[key]; throw new ReferenceError( - `Using removed Babel ${version} option: .${key} - ${message}`, + `Using removed Babel ${version} option: ${msg(loc)} - ${message}`, ); } else { // eslint-disable-next-line max-len - const unknownOptErr = `Unknown option: .${key}. Check out http://babeljs.io/docs/usage/options/ for more information about options.`; + const unknownOptErr = `Unknown option: ${msg( + loc, + )}. Check out https://babeljs.io/docs/en/babel-core/#options for more information about options.`; throw new ReferenceError(unknownOptErr); } @@ -331,27 +387,53 @@ function assertNoDuplicateSourcemap(opts: {}): void { } } -function assertEnvSet(key: string, value: mixed): EnvSet { - const obj = assertObject(key, value); +function assertEnvSet(loc: OptionPath, value: mixed): EnvSet { + if (loc.parent.type === "env") { + throw new Error(`${msg(loc)} is not allowed inside of another .env block`); + } + const parent: RootPath | OverridesPath = loc.parent; + + const obj = assertObject(loc, value); if (obj) { // Validate but don't copy the .env object in order to preserve // object identity for use during config chain processing. - for (const key of Object.keys(obj)) { - const env = assertObject(key, obj[key]); - if (env) validate("env", env); + for (const envName of Object.keys(obj)) { + const env = assertObject(access(loc, envName), obj[envName]); + if (!env) continue; + + const envLoc = { + type: "env", + name: envName, + parent, + }; + validateNested(envLoc, env); } } return (obj: any); } -function assertOverridesList(key: string, value: mixed): OverridesList { - const arr = assertArray(key, value); +function assertOverridesList(loc: OptionPath, value: mixed): OverridesList { + if (loc.parent.type === "env") { + throw new Error(`${msg(loc)} is not allowed inside an .env block`); + } + if (loc.parent.type === "overrides") { + throw new Error(`${msg(loc)} is not allowed inside an .overrides block`); + } + const parent: RootPath = loc.parent; + + const arr = assertArray(loc, value); if (arr) { for (const [index, item] of arr.entries()) { - const env = assertObject(`${index}`, item); - if (!env) throw new Error(`.${key}[${index}] must be an object`); - - validate("override", env); + const objLoc = access(loc, index); + const env = assertObject(objLoc, item); + if (!env) throw new Error(`${msg(objLoc)} must be an object`); + + const overridesLoc = { + type: "overrides", + index, + parent, + }; + validateNested(overridesLoc, env); } } return (arr: any); diff --git a/packages/babel-core/src/parse.js b/packages/babel-core/src/parse.js index ef905efb1f62..b3397a1a2e23 100644 --- a/packages/babel-core/src/parse.js +++ b/packages/babel-core/src/parse.js @@ -24,8 +24,8 @@ type Parse = { export const parse: Parse = (function parse(code, opts, callback) { if (typeof opts === "function") { - opts = undefined; callback = opts; + opts = undefined; } // For backward-compat with Babel 7's early betas, we allow sync parsing when diff --git a/packages/babel-core/src/transform-ast.js b/packages/babel-core/src/transform-ast.js index 62cef671e37d..101177dcece9 100644 --- a/packages/babel-core/src/transform-ast.js +++ b/packages/babel-core/src/transform-ast.js @@ -31,8 +31,8 @@ export const transformFromAst: TransformFromAst = (function transformFromAst( callback, ) { if (typeof opts === "function") { - opts = undefined; callback = opts; + opts = undefined; } // For backward-compat with Babel 6, we allow sync transformation when diff --git a/packages/babel-core/src/transform.js b/packages/babel-core/src/transform.js index 11a8ad5c0cfa..4a2f0e5c1691 100644 --- a/packages/babel-core/src/transform.js +++ b/packages/babel-core/src/transform.js @@ -18,8 +18,8 @@ type Transform = { export const transform: Transform = (function transform(code, opts, callback) { if (typeof opts === "function") { - opts = undefined; callback = opts; + opts = undefined; } // For backward-compat with Babel 6, we allow sync transformation when diff --git a/packages/babel-core/src/transformation/file/file.js b/packages/babel-core/src/transformation/file/file.js index 47900a037440..bbc28767180e 100644 --- a/packages/babel-core/src/transformation/file/file.js +++ b/packages/babel-core/src/transformation/file/file.js @@ -1,10 +1,11 @@ // @flow import * as helpers from "@babel/helpers"; -import { NodePath, Hub, Scope } from "@babel/traverse"; +import { NodePath, Scope, type HubInterface } from "@babel/traverse"; import { codeFrameColumns } from "@babel/code-frame"; import traverse from "@babel/traverse"; import * as t from "@babel/types"; +import semver from "semver"; import type { NormalizedFile } from "../normalize-file"; @@ -26,10 +27,18 @@ export default class File { ast: Object = {}; scope: Scope; metadata: {} = {}; - hub: Hub = new Hub(this); code: string = ""; inputMap: Object | null = null; + hub: HubInterface = { + // keep it for the usage in babel-core, ex: path.hub.file.opts.filename + file: this, + getCode: () => this.code, + getScope: () => this.scope, + addHelper: this.addHelper.bind(this), + buildError: this.buildCodeFrameError.bind(this), + }; + constructor(options: {}, { code, ast, inputMap }: NormalizedFile) { this.opts = options; this.code = code; @@ -64,6 +73,16 @@ export default class File { } set(key: mixed, val: mixed) { + if (key === "helpersNamespace") { + throw new Error( + "Babel 7.0.0-beta.56 has dropped support for the 'helpersNamespace' utility." + + "If you are using @babel/plugin-external-helpers you will need to use a newer " + + "version than the one you currently have installed. " + + "If you have your own implementation, you'll want to explore using 'helperGenerator' " + + "alongside 'file.availableHelper()'.", + ); + } + this._map.set(key, val); } @@ -121,12 +140,6 @@ export default class File { } } - // TODO: Remove this before 7.x's official release. Leaving it in for now to - // prevent unnecessary breakage between beta versions. - resolveModuleSource(source: string): string { - return source; - } - addImport() { throw new Error( "This API has been removed. If you're looking for this " + @@ -136,17 +149,58 @@ export default class File { ); } + /** + * Check if a given helper is available in @babel/core's helper list. + * + * This _also_ allows you to pass a Babel version specifically. If the + * helper exists, but was not available for the full given range, it will be + * considered unavailable. + */ + availableHelper(name: string, versionRange: ?string): boolean { + let minVersion; + try { + minVersion = helpers.minVersion(name); + } catch (err) { + if (err.code !== "BABEL_HELPER_UNKNOWN") throw err; + + return false; + } + + if (typeof versionRange !== "string") return true; + + // semver.intersects() has some surprising behavior with comparing ranges + // with preprelease versions. We add '^' to ensure that we are always + // comparing ranges with ranges, which sidesteps this logic. + // For example: + // + // semver.intersects(`<7.0.1`, "7.0.0-beta.0") // false - surprising + // semver.intersects(`<7.0.1`, "^7.0.0-beta.0") // true - expected + // + // This is because the first falls back to + // + // semver.satisfies("7.0.0-beta.0", `<7.0.1`) // false - surprising + // + // and this fails because a prerelease version can only satisfy a range + // if it is a prerelease within the same major/minor/patch range. + // + // Note: If this is found to have issues, please also revist the logic in + // transform-runtime's definitions.js file. + if (semver.valid(versionRange)) versionRange = `^${versionRange}`; + + return ( + !semver.intersects(`<${minVersion}`, versionRange) && + !semver.intersects(`>=8.0.0`, versionRange) + ); + } + addHelper(name: string): Object { const declar = this.declarations[name]; if (declar) return t.cloneNode(declar); const generator = this.get("helperGenerator"); - const runtime = this.get("helpersNamespace"); if (generator) { const res = generator(name); if (res) return res; - } else if (runtime) { - return t.memberExpression(t.cloneNode(runtime), t.identifier(name)); } const uid = (this.declarations[name] = this.scope.generateUidIdentifier( diff --git a/packages/babel-core/src/transformation/file/merge-map.js b/packages/babel-core/src/transformation/file/merge-map.js index 50044580a194..ff2e65b042b8 100644 --- a/packages/babel-core/src/transformation/file/merge-map.js +++ b/packages/babel-core/src/transformation/file/merge-map.js @@ -94,7 +94,7 @@ export default function mergeSourceMap( } function makeMappingKey(item: { line: number, columnStart: number }) { - return JSON.stringify([item.line, item.columnStart]); + return `${item.line}/${item.columnStart}`; } function eachOverlappingGeneratedOutputRange( @@ -293,7 +293,7 @@ function findInsertionLocation( // Ensure the value is the start of any set of matches. let i = left; if (i < array.length) { - while (i > 0 && callback(array[i]) >= 0) { + while (i >= 0 && callback(array[i]) >= 0) { i--; } return i + 1; diff --git a/packages/babel-core/src/transformation/normalize-file.js b/packages/babel-core/src/transformation/normalize-file.js index 203488acd6a1..1df42ad763b2 100644 --- a/packages/babel-core/src/transformation/normalize-file.js +++ b/packages/babel-core/src/transformation/normalize-file.js @@ -2,6 +2,7 @@ import path from "path"; import buildDebug from "debug"; +import cloneDeep from "lodash/cloneDeep"; import * as t from "@babel/types"; import type { PluginPasses } from "../config"; import convertSourceMap, { typeof Converter } from "convert-source-map"; @@ -75,6 +76,7 @@ export default function normalizeFile( } else if (ast.type !== "File") { throw new Error("AST root must be a Program or File node"); } + ast = cloneDeep(ast); } else { // The parser's AST types aren't fully compatible with the types generated // by the logic in babel-types. @@ -89,14 +91,18 @@ export default function normalizeFile( }); } -function parser(pluginPasses, options, code) { +function parser( + pluginPasses: PluginPasses, + { parserOpts, highlightCode = true, filename = "unknown" }: Object, + code: string, +) { try { const results = []; for (const plugins of pluginPasses) { for (const plugin of plugins) { const { parserOverride } = plugin; if (parserOverride) { - const ast = parserOverride(code, options.parserOpts, parse); + const ast = parserOverride(code, parserOpts, parse); if (ast !== undefined) results.push(ast); } @@ -104,7 +110,7 @@ function parser(pluginPasses, options, code) { } if (results.length === 0) { - return parse(code, options.parserOpts); + return parse(code, parserOpts); } else if (results.length === 1) { if (typeof results[0].then === "function") { throw new Error( @@ -134,15 +140,16 @@ function parser(pluginPasses, options, code) { column: loc.column + 1, }, }, - options, + { + highlightCode, + }, ); if (missingPlugin) { err.message = - `${options.filename || "unknown"}: ` + + `${filename}: ` + generateMissingPluginMessage(missingPlugin[0], loc, codeFrame); } else { - err.message = - `${options.filename || "unknown"}: ${err.message}\n\n` + codeFrame; + err.message = `${filename}: ${err.message}\n\n` + codeFrame; } err.code = "BABEL_PARSE_ERROR"; } diff --git a/packages/babel-core/src/transformation/plugin-pass.js b/packages/babel-core/src/transformation/plugin-pass.js index 291fbfd1aeba..6e62c42bc786 100644 --- a/packages/babel-core/src/transformation/plugin-pass.js +++ b/packages/babel-core/src/transformation/plugin-pass.js @@ -31,6 +31,10 @@ export default class PluginPass { return this._map.get(key); } + availableHelper(name: string, versionRange: ?string) { + return this.file.availableHelper(name, versionRange); + } + addHelper(name: string) { return this.file.addHelper(name); } diff --git a/packages/babel-core/test/api.js b/packages/babel-core/test/api.js index 6ea97ebdd168..5c3a97c7a376 100644 --- a/packages/babel-core/test/api.js +++ b/packages/babel-core/test/api.js @@ -5,11 +5,18 @@ import Plugin from "../lib/config/plugin"; import generator from "@babel/generator"; function assertIgnored(result) { - expect(result).toBeFalsy(); + expect(result).toBeNull(); } function assertNotIgnored(result) { - expect(result.ignored).toBeFalsy(); + expect(result).not.toBeNull(); +} + +function parse(code, opts) { + return babel.parse(code, { + cwd: __dirname, + ...opts, + }); } function transform(code, opts) { @@ -36,13 +43,18 @@ function transformFileSync(filename, opts) { }); } -// shim function transformAsync(code, opts) { - return { - then: function(resolve) { - resolve(transform(code, opts)); - }, - }; + return babel.transformAsync(code, { + cwd: __dirname, + ...opts, + }); +} + +function transformFromAst(ast, code, opts) { + return babel.transformFromAst(ast, code, { + cwd: __dirname, + ...opts, + }); } describe("parser and generator options", function() { @@ -170,6 +182,30 @@ describe("api", function() { expect(options).toEqual({ babelrc: false }); }); + it("transformFromAst should not mutate the AST", function() { + const program = "const identifier = 1"; + const node = parse(program); + const { code } = transformFromAst(node, program, { + 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( + "identifier", + "original ast should not have been mutated", + ); + }); + it("options throw on falsy true", function() { return expect(function() { transform("", { diff --git a/packages/babel-core/test/config-chain.js b/packages/babel-core/test/config-chain.js index dea23e0db236..849da38cfc02 100644 --- a/packages/babel-core/test/config-chain.js +++ b/packages/babel-core/test/config-chain.js @@ -899,6 +899,23 @@ describe("buildConfigChain", function() { expect(opts.comments).toBe(true); }); + + it("should remove the overrides and filtering fields from the options", () => { + const opts = loadOptions({ + cwd: fixture("nonexistant-fake"), + filename: fixture("nonexistant-fake", "src.js"), + babelrc: false, + overrides: [], + test: /^/, + include: /^/, + exclude: [], + }); + + expect(opts.overrides).toBeUndefined(); + expect(opts.test).toBeUndefined(); + expect(opts.include).toBeUndefined(); + expect(opts.exclude).toBeUndefined(); + }); }); describe("config files", () => { diff --git a/packages/babel-core/test/config-loading.js b/packages/babel-core/test/config-loading.js index 65eb0c603459..b31eac8ed2d9 100644 --- a/packages/babel-core/test/config-loading.js +++ b/packages/babel-core/test/config-loading.js @@ -1,4 +1,4 @@ -import loadConfig from "../lib/config"; +import loadConfig, { loadPartialConfig } from "../lib/config"; import path from "path"; describe("@babel/core config loading", () => { @@ -29,13 +29,53 @@ describe("@babel/core config loading", () => { filename: FILEPATH, presets: skipProgrammatic ? null - : [require("./fixtures/config-loading/preset3")], + : [[require("./fixtures/config-loading/preset3"), {}]], plugins: skipProgrammatic ? null - : [require("./fixtures/config-loading/plugin6")], + : [[require("./fixtures/config-loading/plugin6"), {}]], }; } + describe("loadPartialConfig", () => { + it("should preserve disabled plugins in the partial config", () => { + const plugin = function() { + return {}; + }; + + const opts = loadPartialConfig({ + ...makeOpts(true), + babelrc: false, + configFile: false, + plugins: [[plugin, false]], + }); + + expect(opts.options.plugins.length).toBe(1); + const item = opts.options.plugins[0]; + + expect(item.value).toBe(plugin); + expect(item.options).toBe(false); + }); + + it("should preserve disabled presets in the partial config", () => { + const preset = function() { + return {}; + }; + + const opts = loadPartialConfig({ + ...makeOpts(true), + babelrc: false, + configFile: false, + presets: [[preset, false]], + }); + + expect(opts.options.presets.length).toBe(1); + const item = opts.options.presets[0]; + + expect(item.value).toBe(preset); + expect(item.options).toBe(false); + }); + }); + describe("config file", () => { it("should load and cache the config with plugins and presets", () => { const opts = makeOpts(); @@ -173,7 +213,7 @@ describe("@babel/core config loading", () => { } }); - it("should invalidate the plugins when given a fresh arrays", () => { + it("should not invalidate the plugins when given a fresh arrays", () => { const opts = makeOpts(); const options1 = loadConfig(opts).options; @@ -184,6 +224,38 @@ describe("@babel/core config loading", () => { }).options; expect(options2.plugins.length).toBe(options1.plugins.length); + for (let i = 0; i < options2.plugins.length; i++) { + expect(options2.plugins[i]).toBe(options1.plugins[i]); + } + }); + + it("should not invalidate the presets when given a fresh arrays", () => { + const opts = makeOpts(); + + const options1 = loadConfig(opts).options; + + const options2 = loadConfig({ + ...opts, + presets: opts.presets.slice(), + }).options; + expect(options2.plugins.length).toBe(options1.plugins.length); + + for (let i = 0; i < options2.plugins.length; i++) { + expect(options2.plugins[i]).toBe(options1.plugins[i]); + } + }); + + it("should invalidate the plugins when given a fresh options", () => { + const opts = makeOpts(); + + const options1 = loadConfig(opts).options; + + const options2 = loadConfig({ + ...opts, + plugins: opts.plugins.map(([plg, opt]) => [plg, { ...opt }]), + }).options; + expect(options2.plugins.length).toBe(options1.plugins.length); + for (let i = 0; i < options2.plugins.length; i++) { if (i === 2) { expect(options2.plugins[i]).not.toBe(options1.plugins[i]); @@ -193,14 +265,14 @@ describe("@babel/core config loading", () => { } }); - it("should invalidate the presets when given a fresh arrays", () => { + it("should invalidate the presets when given a fresh options", () => { const opts = makeOpts(); const options1 = loadConfig(opts).options; const options2 = loadConfig({ ...opts, - presets: opts.presets.slice(), + presets: opts.presets.map(([plg, opt]) => [plg, { ...opt }]), }).options; expect(options2.plugins.length).toBe(options1.plugins.length); @@ -251,4 +323,51 @@ describe("@babel/core config loading", () => { } }); }); + + describe("caller metadata", () => { + it("should pass caller data through", () => { + const options1 = loadConfig({ + ...makeOpts(), + caller: { + name: "babel-test", + someFlag: true, + }, + }).options; + + expect(options1.caller.name).toBe("babel-test"); + expect(options1.caller.someFlag).toBe(true); + }); + + it("should pass unknown caller data through", () => { + const options1 = loadConfig({ + ...makeOpts(), + caller: undefined, + }).options; + + expect(options1.caller).toBeUndefined(); + }); + + it("should pass caller data to test functions", () => { + const options1 = loadConfig({ + ...makeOpts(), + caller: { + name: "babel-test", + someFlag: true, + }, + overrides: [ + { + test: (filename, { caller }) => caller.name === "babel-test", + comments: false, + }, + { + test: (filename, { caller }) => caller.name !== "babel-test", + ast: false, + }, + ], + }).options; + + expect(options1.comments).toBe(false); + expect(options1.ast).not.toBe(false); + }); + }); }); diff --git a/packages/babel-core/test/fixtures/parse/.babelrc b/packages/babel-core/test/fixtures/parse/.babelrc index 9471261ff66e..a4834e838136 100644 --- a/packages/babel-core/test/fixtures/parse/.babelrc +++ b/packages/babel-core/test/fixtures/parse/.babelrc @@ -1,5 +1,5 @@ { - "plugins": [ - ["@babel/syntax-decorators", { "legacy": true }] - ] + "parserOpts": { + "plugins": ["decorators-legacy"] + } } diff --git a/packages/babel-core/test/fixtures/resolution/foo-org-paths/node_modules/@foo/thing-babel-plugin/index.js b/packages/babel-core/test/fixtures/resolution/foo-org-paths/node_modules/@foo/thing-babel-plugin/index.js new file mode 100644 index 000000000000..2987ecf017a2 --- /dev/null +++ b/packages/babel-core/test/fixtures/resolution/foo-org-paths/node_modules/@foo/thing-babel-plugin/index.js @@ -0,0 +1,3 @@ +module.exports = function() { + return {}; +}; diff --git a/packages/babel-core/test/fixtures/resolution/foo-org-paths/node_modules/@foo/thing-babel-preset/index.js b/packages/babel-core/test/fixtures/resolution/foo-org-paths/node_modules/@foo/thing-babel-preset/index.js new file mode 100644 index 000000000000..2987ecf017a2 --- /dev/null +++ b/packages/babel-core/test/fixtures/resolution/foo-org-paths/node_modules/@foo/thing-babel-preset/index.js @@ -0,0 +1,3 @@ +module.exports = function() { + return {}; +}; diff --git a/packages/babel-core/test/fixtures/resolution/foo-org-paths/node_modules/@foo/thing.babel-plugin-convert/index.js b/packages/babel-core/test/fixtures/resolution/foo-org-paths/node_modules/@foo/thing.babel-plugin-convert/index.js new file mode 100644 index 000000000000..2987ecf017a2 --- /dev/null +++ b/packages/babel-core/test/fixtures/resolution/foo-org-paths/node_modules/@foo/thing.babel-plugin-convert/index.js @@ -0,0 +1,3 @@ +module.exports = function() { + return {}; +}; diff --git a/packages/babel-core/test/fixtures/resolution/foo-org-paths/node_modules/@foo/thing.babel-preset-convert/index.js b/packages/babel-core/test/fixtures/resolution/foo-org-paths/node_modules/@foo/thing.babel-preset-convert/index.js new file mode 100644 index 000000000000..2987ecf017a2 --- /dev/null +++ b/packages/babel-core/test/fixtures/resolution/foo-org-paths/node_modules/@foo/thing.babel-preset-convert/index.js @@ -0,0 +1,3 @@ +module.exports = function() { + return {}; +}; diff --git a/packages/babel-core/test/fixtures/transformation/misc/regression-1155/options.json b/packages/babel-core/test/fixtures/transformation/misc/regression-1155/options.json index 41054be1f7ec..cf0501f1cfba 100644 --- a/packages/babel-core/test/fixtures/transformation/misc/regression-1155/options.json +++ b/packages/babel-core/test/fixtures/transformation/misc/regression-1155/options.json @@ -1,3 +1,7 @@ { - "plugins": ["transform-classes", "external-helpers", "transform-block-scoping"] + "plugins": [ + "transform-classes", + "external-helpers", + "transform-block-scoping" + ] } diff --git a/packages/babel-core/test/fixtures/transformation/misc/regression-1168/options.json b/packages/babel-core/test/fixtures/transformation/misc/regression-1168/options.json index 78e11a80772a..7aebb2b3d143 100644 --- a/packages/babel-core/test/fixtures/transformation/misc/regression-1168/options.json +++ b/packages/babel-core/test/fixtures/transformation/misc/regression-1168/options.json @@ -1,3 +1,8 @@ { - "plugins": ["syntax-flow", "transform-flow-strip-types", "transform-parameters", "transform-block-scoping"] + "plugins": [ + "syntax-flow", + "transform-flow-strip-types", + "transform-parameters", + "transform-block-scoping" + ] } diff --git a/packages/babel-core/test/fixtures/transformation/misc/regression-2364/options.json b/packages/babel-core/test/fixtures/transformation/misc/regression-2364/options.json index c2578848d763..688521d95441 100644 --- a/packages/babel-core/test/fixtures/transformation/misc/regression-2364/options.json +++ b/packages/babel-core/test/fixtures/transformation/misc/regression-2364/options.json @@ -1,3 +1,7 @@ { - "plugins": ["transform-parameters", "transform-arrow-functions", "transform-block-scoping"] + "plugins": [ + "transform-parameters", + "transform-arrow-functions", + "transform-block-scoping" + ] } diff --git a/packages/babel-core/test/fixtures/transformation/misc/regression-4855/options.json b/packages/babel-core/test/fixtures/transformation/misc/regression-4855/options.json index b9463ff720eb..489d3a868c4b 100644 --- a/packages/babel-core/test/fixtures/transformation/misc/regression-4855/options.json +++ b/packages/babel-core/test/fixtures/transformation/misc/regression-4855/options.json @@ -1,7 +1,8 @@ { "compact": false, - "presets": [ - "env", - ["stage-2", { "decoratorsLegacy": true }] + "presets": ["env"], + "plugins": [ + ["external-helpers", { "helperVersion": "7.1.5" }], + "proposal-object-rest-spread" ] } diff --git a/packages/babel-core/test/fixtures/transformation/regenerator/options.json b/packages/babel-core/test/fixtures/transformation/regenerator/options.json index 55d95865480e..1de08e2c78d5 100644 --- a/packages/babel-core/test/fixtures/transformation/regenerator/options.json +++ b/packages/babel-core/test/fixtures/transformation/regenerator/options.json @@ -1,3 +1,8 @@ { - "plugins": ["transform-destructuring", "transform-parameters", "transform-block-scoping", "transform-regenerator"] + "plugins": [ + "transform-destructuring", + "transform-parameters", + "transform-block-scoping", + "transform-regenerator" + ] } diff --git a/packages/babel-core/test/fixtures/transformation/source-maps/arrow-function/source-mappings.json b/packages/babel-core/test/fixtures/transformation/source-maps/arrow-function/source-mappings.json index 47d5aab7a2e1..a1d1d31e4a0c 100644 --- a/packages/babel-core/test/fixtures/transformation/source-maps/arrow-function/source-mappings.json +++ b/packages/babel-core/test/fixtures/transformation/source-maps/arrow-function/source-mappings.json @@ -1,7 +1,7 @@ [{ "original": { "line": 1, - "column": 13 + "column": 14 }, "generated": { "line": 2, diff --git a/packages/babel-core/test/fixtures/transformation/source-maps/class/options.json b/packages/babel-core/test/fixtures/transformation/source-maps/class/options.json index 111b0a609162..93725c3c0e72 100644 --- a/packages/babel-core/test/fixtures/transformation/source-maps/class/options.json +++ b/packages/babel-core/test/fixtures/transformation/source-maps/class/options.json @@ -1,3 +1,7 @@ { - "plugins": ["external-helpers", "transform-classes", "transform-block-scoping"] + "plugins": [ + "external-helpers", + "transform-classes", + "transform-block-scoping" + ] } diff --git a/packages/babel-core/test/fixtures/transformation/source-maps/full/source-map.json b/packages/babel-core/test/fixtures/transformation/source-maps/full/source-map.json index 77952227eacf..f0138605edc1 100644 --- a/packages/babel-core/test/fixtures/transformation/source-maps/full/source-map.json +++ b/packages/babel-core/test/fixtures/transformation/source-maps/full/source-map.json @@ -6,6 +6,6 @@ "map", "x" ], - "mappings": "AAAAA,IAAIC,GAAJ,CAAQ;AAAA,SAAKC,IAAIA,CAAT;AAAA,CAAR", + "mappings": "AAAAA,GAAG,CAACC,GAAJ,CAAQ,UAAAC,CAAC;AAAA,SAAIA,CAAC,GAAGA,CAAR;AAAA,CAAT", "sourcesContent": ["arr.map(x => x * x);"] } diff --git a/packages/babel-core/test/fixtures/transformation/source-maps/inline/output.js b/packages/babel-core/test/fixtures/transformation/source-maps/inline/output.js index 4d7c7ba70f2b..240543408055 100644 --- a/packages/babel-core/test/fixtures/transformation/source-maps/inline/output.js +++ b/packages/babel-core/test/fixtures/transformation/source-maps/inline/output.js @@ -1,4 +1,4 @@ arr.map(function (x) { return x * x; }); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXBzL2lubGluZS9pbnB1dC5qcyJdLCJuYW1lcyI6WyJhcnIiLCJtYXAiLCJ4Il0sIm1hcHBpbmdzIjoiQUFBQUEsSUFBSUMsR0FBSixDQUFRO0FBQUEsU0FBS0MsSUFBSUEsQ0FBVDtBQUFBLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJhcnIubWFwKHggPT4geCAqIHgpOyJdfQ== +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXBzL2lubGluZS9pbnB1dC5qcyJdLCJuYW1lcyI6WyJhcnIiLCJtYXAiLCJ4Il0sIm1hcHBpbmdzIjoiQUFBQUEsR0FBRyxDQUFDQyxHQUFKLENBQVEsVUFBQUMsQ0FBQztBQUFBLFNBQUlBLENBQUMsR0FBR0EsQ0FBUjtBQUFBLENBQVQiLCJzb3VyY2VzQ29udGVudCI6WyJhcnIubWFwKHggPT4geCAqIHgpOyJdfQ== diff --git a/packages/babel-core/test/fixtures/transformation/source-maps/input-source-map-complex/options.json b/packages/babel-core/test/fixtures/transformation/source-maps/input-source-map-complex/options.json index 8b5e8767af51..81e5ce12436d 100644 --- a/packages/babel-core/test/fixtures/transformation/source-maps/input-source-map-complex/options.json +++ b/packages/babel-core/test/fixtures/transformation/source-maps/input-source-map-complex/options.json @@ -1,5 +1,3 @@ { - "plugins": [ - "transform-modules-commonjs" - ] + "plugins": ["transform-modules-commonjs"] } diff --git a/packages/babel-core/test/fixtures/transformation/source-maps/input-source-map-complex/source-map.json b/packages/babel-core/test/fixtures/transformation/source-maps/input-source-map-complex/source-map.json index 9b92c0802bfc..113580ce04f8 100644 --- a/packages/babel-core/test/fixtures/transformation/source-maps/input-source-map-complex/source-map.json +++ b/packages/babel-core/test/fixtures/transformation/source-maps/input-source-map-complex/source-map.json @@ -4,7 +4,7 @@ "HelloWorld.vue" ], "names": [], - "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAsFA;AACA,QAAA,YADA;;AAEA,SAAA;AACA,WAAA;AACA,WAAA;AADA,KAAA;AAGA;;AANA,C", + "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAsFA;AACA,EAAA,IAAA,EAAA,YADA;;AAEA,EAAA,IAAA,GAAA;AACA,WAAA;AACA,MAAA,GAAA,EAAA;AADA,KAAA;AAGA;;AANA,C", "sourceRoot": "src/components", "sourcesContent": [ "\n\n\n\n\n\n" diff --git a/packages/babel-core/test/fixtures/transformation/source-maps/input-source-map/source-map.json b/packages/babel-core/test/fixtures/transformation/source-maps/input-source-map/source-map.json index 9ef1b0e88dde..63c01db5fede 100644 --- a/packages/babel-core/test/fixtures/transformation/source-maps/input-source-map/source-map.json +++ b/packages/babel-core/test/fixtures/transformation/source-maps/input-source-map/source-map.json @@ -1,5 +1,5 @@ { - "mappings": "AAAA,IAAA,MAAU,Y;SAAM,C;AAAC,CAAjB", + "mappings": "AAAA,IAAA,GAAA,GAAU,Y;SAAM,C;AAAC,CAAjB", "names": [], "sources": ["original.js"], "sourcesContent": ["var foo = () => 4;"], diff --git a/packages/babel-core/test/fixtures/transformation/source-maps/interpreter-directive-prefix/source-map.json b/packages/babel-core/test/fixtures/transformation/source-maps/interpreter-directive-prefix/source-map.json index 0a465c324b24..cb9c3ee27571 100644 --- a/packages/babel-core/test/fixtures/transformation/source-maps/interpreter-directive-prefix/source-map.json +++ b/packages/babel-core/test/fixtures/transformation/source-maps/interpreter-directive-prefix/source-map.json @@ -1,5 +1,5 @@ { - "mappings": "AAAA;AAEAA,QAAQC,GAAR,CAAY,eAAZ", + "mappings": "AAAA;AAEAA,OAAO,CAACC,GAAR,CAAY,eAAZ", "names": [ "console", "log" diff --git a/packages/babel-core/test/parse.js b/packages/babel-core/test/parse.js index ed5c95b4f30c..ec36951cb02d 100644 --- a/packages/babel-core/test/parse.js +++ b/packages/babel-core/test/parse.js @@ -23,7 +23,9 @@ describe("parse", function() { const output = require(fixture("output.json")); const result = parse(input, { - parserOpts: { plugins: ["decorators"] }, + parserOpts: { + plugins: [["decorators", { decoratorsBeforeExport: false }]], + }, cwd: fixture(), }); expect(JSON.parse(JSON.stringify(result))).toEqual(output); diff --git a/packages/babel-core/test/resolution.js b/packages/babel-core/test/resolution.js index 0535cc11a489..203d76ec5769 100644 --- a/packages/babel-core/test/resolution.js +++ b/packages/babel-core/test/resolution.js @@ -134,6 +134,46 @@ describe("addon resolution", function() { }); }); + it("should find @foo scoped presets with an inner babel-preset", function() { + process.chdir("foo-org-paths"); + + babel.transform("", { + filename: "filename.js", + babelrc: false, + presets: ["@foo/thing.babel-preset-convert"], + }); + }); + + it("should find @foo scoped plugins with an inner babel-plugin", function() { + process.chdir("foo-org-paths"); + + babel.transform("", { + filename: "filename.js", + babelrc: false, + plugins: ["@foo/thing.babel-plugin-convert"], + }); + }); + + it("should find @foo scoped presets with an babel-preset suffix", function() { + process.chdir("foo-org-paths"); + + babel.transform("", { + filename: "filename.js", + babelrc: false, + presets: ["@foo/thing-babel-preset"], + }); + }); + + it("should find @foo scoped plugins with an babel-plugin suffix", function() { + process.chdir("foo-org-paths"); + + babel.transform("", { + filename: "filename.js", + babelrc: false, + plugins: ["@foo/thing-babel-plugin"], + }); + }); + it("should find @foo scoped presets with an existing prefix", function() { process.chdir("foo-org-paths"); @@ -360,7 +400,7 @@ describe("addon resolution", function() { presets: ["testplugin"], }); }).toThrow( - /Cannot find module 'babel-preset-testplugin'.*\n- Did you accidentally pass a preset as a plugin\?/, + /Cannot find module 'babel-preset-testplugin'.*\n- Did you accidentally pass a plugin as a preset\?/, ); }); @@ -374,7 +414,7 @@ describe("addon resolution", function() { plugins: ["testpreset"], }); }).toThrow( - /Cannot find module 'babel-plugin-testpreset'.*\n- Did you accidentally pass a plugin as a preset\?/, + /Cannot find module 'babel-plugin-testpreset'.*\n- Did you accidentally pass a preset as a plugin\?/, ); }); diff --git a/packages/babel-generator/package.json b/packages/babel-generator/package.json index a589c139e610..d6aa63c96c0f 100644 --- a/packages/babel-generator/package.json +++ b/packages/babel-generator/package.json @@ -1,24 +1,27 @@ { "name": "@babel/generator", - "version": "7.0.0-beta.52", + "version": "7.1.3", "description": "Turns an AST into code.", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", "license": "MIT", + "publishConfig": { + "access": "public" + }, "repository": "https://github.com/babel/babel/tree/master/packages/babel-generator", "main": "lib/index.js", "files": [ "lib" ], "dependencies": { - "@babel/types": "7.0.0-beta.52", + "@babel/types": "^7.1.3", "jsesc": "^2.5.1", - "lodash": "^4.17.5", + "lodash": "^4.17.10", "source-map": "^0.5.0", "trim-right": "^1.0.1" }, "devDependencies": { - "@babel/helper-fixtures": "7.0.0-beta.52", - "@babel/parser": "7.0.0-beta.52" + "@babel/helper-fixtures": "^7.0.0", + "@babel/parser": "^7.0.0" } } diff --git a/packages/babel-generator/src/buffer.js b/packages/babel-generator/src/buffer.js index ddd57c2051d9..f49bfad8c545 100644 --- a/packages/babel-generator/src/buffer.js +++ b/packages/babel-generator/src/buffer.js @@ -30,6 +30,7 @@ export default class Buffer { column: null, filename: null, }; + _disallowedPop: Object | null = null; /** * Get the final string output from the buffer, along with the sourcemap if one exists. @@ -71,8 +72,14 @@ export default class Buffer { append(str: string): void { this._flush(); - const { line, column, filename, identifierName } = this._sourcePosition; - this._append(str, line, column, identifierName, filename); + const { + line, + column, + filename, + identifierName, + force, + } = this._sourcePosition; + this._append(str, line, column, identifierName, filename, force); } /** @@ -87,8 +94,14 @@ export default class Buffer { } } - const { line, column, filename, identifierName } = this._sourcePosition; - this._queue.unshift([str, line, column, identifierName, filename]); + const { + line, + column, + filename, + identifierName, + force, + } = this._sourcePosition; + this._queue.unshift([str, line, column, identifierName, filename, force]); } _flush(): void { @@ -102,6 +115,7 @@ export default class Buffer { column: number, identifierName: ?string, filename: ?string, + force?: boolean, ): void { // If there the line is ending, adding a new mapping marker is redundant if (this._map && str[0] !== "\n") { @@ -112,6 +126,7 @@ export default class Buffer { column, identifierName, filename, + force, ); } @@ -169,20 +184,60 @@ export default class Buffer { return this._queue.length > 0 || !!this._last; } + /** + * Certain sourcemap usecases expect mappings to be more accurate than + * Babel's generic sourcemap handling allows. For now, we special-case + * identifiers to allow for the primary cases to work. + * The goal of this line is to ensure that the map output from Babel will + * have an exact range on identifiers in the output code. Without this + * line, Babel would potentially include some number of trailing tokens + * that are printed after the identifier, but before another location has + * been assigned. + * This allows tooling like Rollup and Webpack to more accurately perform + * their own transformations. Most importantly, this allows the import/export + * transformations performed by those tools to loose less information when + * applying their own transformations on top of the code and map results + * generated by Babel itself. + * + * The primary example of this is the snippet: + * + * import mod from "mod"; + * mod(); + * + * With this line, there will be one mapping range over "mod" and another + * over "();", where previously it would have been a single mapping. + */ + exactSource(loc: Object, cb: () => void) { + // In cases where parent expressions start at the same locations as the + // identifier itself, the current active location could already be the + // start of this range. We use 'force' here to explicitly start a new + // mapping range for this new token. + this.source("start", loc, true /* force */); + + cb(); + + // In cases where tokens are printed after this item, we want to + // ensure that they get the location of the _end_ of the identifier. + // To accomplish this, we assign the location and explicitly disable + // the standard Buffer withSource previous-position "reactivation" + // logic. This means that if another item calls '.source()' to set + // the location after the identifier, it is fine, but the position won't + // be automatically replaced with the previous value. + this.source("end", loc); + this._disallowPop("start", loc); + } + /** * Sets a given position as the current source location so generated code after this call * will be given this position in the sourcemap. */ - source(prop: string, loc: Location): void { + source(prop: string, loc: Location, force?: boolean): void { if (prop && !loc) return; - const pos = loc ? loc[prop] : null; - - this._sourcePosition.identifierName = (loc && loc.identifierName) || null; - this._sourcePosition.line = pos ? pos.line : null; - this._sourcePosition.column = pos ? pos.column : null; - this._sourcePosition.filename = (loc && loc.filename) || null; + // Since this is called extremly often, we re-use the same _sourcePosition + // object for the whole lifetime of the buffer. + this._normalizePosition(prop, loc, this._sourcePosition, force); } /** @@ -192,7 +247,9 @@ export default class Buffer { withSource(prop: string, loc: Location, cb: () => void): void { if (!this._map) return cb(); - // Use the call stack to manage a stack of "source location" data. + // Use the call stack to manage a stack of "source location" data because + // the _sourcePosition object is mutated over the course of code generation, + // and constantly copying it would be slower. const originalLine = this._sourcePosition.line; const originalColumn = this._sourcePosition.column; const originalFilename = this._sourcePosition.filename; @@ -202,10 +259,79 @@ export default class Buffer { cb(); - this._sourcePosition.line = originalLine; - this._sourcePosition.column = originalColumn; - this._sourcePosition.filename = originalFilename; - this._sourcePosition.identifierName = originalIdentifierName; + if ( + // If the current active position is forced, we only want to reactivate + // the old position if it is different from the newest position. + (!this._sourcePosition.force || + this._sourcePosition.line !== originalLine || + this._sourcePosition.column !== originalColumn || + this._sourcePosition.filename !== originalFilename) && + // Verify if reactivating this specific position has been disallowed. + (!this._disallowedPop || + this._disallowedPop.line !== originalLine || + this._disallowedPop.column !== originalColumn || + this._disallowedPop.filename !== originalFilename) + ) { + this._sourcePosition.line = originalLine; + this._sourcePosition.column = originalColumn; + this._sourcePosition.filename = originalFilename; + this._sourcePosition.identifierName = originalIdentifierName; + this._sourcePosition.force = false; + this._disallowedPop = null; + } + } + + /** + * Allow printers to disable the default location-reset behavior of the + * sourcemap output, so that certain printers can be sure that the + * "end" location that they set is actually treated as the end position. + */ + _disallowPop(prop: string, loc: Location) { + if (prop && !loc) return; + + this._disallowedPop = this._normalizePosition(prop, loc); + } + + _normalizePosition( + prop: string, + loc: Object, + targetObj: Object, + force?: boolean, + ) { + const pos = loc ? loc[prop] : null; + + if (targetObj === undefined) { + // Initialize with fields so that the object doesn't change shape. + targetObj = { + identifierName: null, + line: null, + column: null, + filename: null, + force: false, + }; + } + + const origLine = targetObj.line; + const origColumn = targetObj.column; + const origFilename = targetObj.filename; + + targetObj.identifierName = + (prop === "start" && loc && loc.identifierName) || null; + targetObj.line = pos ? pos.line : null; + targetObj.column = pos ? pos.column : null; + targetObj.filename = (loc && loc.filename) || null; + + // We want to skip reassigning `force` if we're re-setting the same position. + if ( + force || + targetObj.line !== origLine || + targetObj.column !== origColumn || + targetObj.filename !== origFilename + ) { + targetObj.force = force; + } + + return targetObj; } getCurrentColumn(): number { diff --git a/packages/babel-generator/src/generators/classes.js b/packages/babel-generator/src/generators/classes.js index 4e27f2fe12c6..22780dc3f03b 100644 --- a/packages/babel-generator/src/generators/classes.js +++ b/packages/babel-generator/src/generators/classes.js @@ -124,6 +124,7 @@ export function ClassPrivateProperty(node: Object) { this.space(); } this.print(node.key, node); + this.print(node.typeAnnotation, node); if (node.value) { this.space(); this.token("="); diff --git a/packages/babel-generator/src/generators/expressions.js b/packages/babel-generator/src/generators/expressions.js index 9bb84170336a..4f9a525bd05e 100644 --- a/packages/babel-generator/src/generators/expressions.js +++ b/packages/babel-generator/src/generators/expressions.js @@ -5,7 +5,9 @@ export function UnaryExpression(node: Object) { if ( node.operator === "void" || node.operator === "delete" || - node.operator === "typeof" + node.operator === "typeof" || + // throwExpressions + node.operator === "throw" ) { this.word(node.operator); this.space(); diff --git a/packages/babel-generator/src/generators/jsx.js b/packages/babel-generator/src/generators/jsx.js index 24865630c0b4..89312add92f1 100644 --- a/packages/babel-generator/src/generators/jsx.js +++ b/packages/babel-generator/src/generators/jsx.js @@ -73,6 +73,7 @@ function spaceSeparator() { export function JSXOpeningElement(node: Object) { this.token("<"); this.print(node.name, node); + this.print(node.typeParameters, node); // TS if (node.attributes.length > 0) { this.space(); this.printJoin(node.attributes, node, { separator: spaceSeparator }); diff --git a/packages/babel-generator/src/generators/methods.js b/packages/babel-generator/src/generators/methods.js index 5dc17e065a20..9d9f68733380 100644 --- a/packages/babel-generator/src/generators/methods.js +++ b/packages/babel-generator/src/generators/methods.js @@ -111,7 +111,23 @@ export function ArrowFunctionExpression(node: Object) { t.isIdentifier(firstParam) && !hasTypes(node, firstParam) ) { - this.print(firstParam, node); + if ( + this.format.retainLines && + node.loc.start.line < node.body.loc.start.line + ) { + this.token("("); + if (firstParam.loc.start.line > node.loc.start.line) { + this.indent(); + this.print(firstParam, node); + this.dedent(); + this._catchUp("start", node.body.loc); + } else { + this.print(firstParam, node); + } + this.token(")"); + } else { + this.print(firstParam, node); + } } else { this._params(node); } diff --git a/packages/babel-generator/src/generators/template-literals.js b/packages/babel-generator/src/generators/template-literals.js index a49b8615edb9..c9a9f9c8201e 100644 --- a/packages/babel-generator/src/generators/template-literals.js +++ b/packages/babel-generator/src/generators/template-literals.js @@ -1,5 +1,6 @@ export function TaggedTemplateExpression(node: Object) { this.print(node.tag, node); + this.print(node.typeParameters, node); // TS this.print(node.quasi, node); } diff --git a/packages/babel-generator/src/generators/types.js b/packages/babel-generator/src/generators/types.js index 4225ae7eb4ff..4a5ed312a661 100644 --- a/packages/babel-generator/src/generators/types.js +++ b/packages/babel-generator/src/generators/types.js @@ -2,7 +2,9 @@ import * as t from "@babel/types"; import jsesc from "jsesc"; export function Identifier(node: Object) { - this.word(node.name); + this.exactSource(node.loc, () => { + this.word(node.name); + }); } export function RestElement(node: Object) { diff --git a/packages/babel-generator/src/generators/typescript.js b/packages/babel-generator/src/generators/typescript.js index c2e5f9d42cd3..33489ebbb278 100644 --- a/packages/babel-generator/src/generators/typescript.js +++ b/packages/babel-generator/src/generators/typescript.js @@ -127,6 +127,9 @@ export function TSIndexSignature(node) { export function TSAnyKeyword() { this.word("any"); } +export function TSUnknownKeyword() { + this.word("unknown"); +} export function TSNumberKeyword() { this.word("number"); } @@ -238,6 +241,16 @@ export function TSTupleType(node) { this.token("]"); } +export function TSOptionalType(node) { + this.print(node.typeAnnotation, node); + this.token("?"); +} + +export function TSRestType(node) { + this.token("..."); + this.print(node.typeAnnotation, node); +} + export function TSUnionType(node) { this.tsPrintUnionOrIntersectionType(node, "|"); } diff --git a/packages/babel-generator/src/node/parentheses.js b/packages/babel-generator/src/node/parentheses.js index e78391c2bd58..8213fdd92e36 100644 --- a/packages/babel-generator/src/node/parentheses.js +++ b/packages/babel-generator/src/node/parentheses.js @@ -209,6 +209,7 @@ export function ConditionalExpression(node: Object, parent: Object): boolean { t.isBinary(parent) || t.isConditionalExpression(parent, { test: node }) || t.isAwaitExpression(parent) || + t.isOptionalMemberExpression(parent) || t.isTaggedTemplateExpression(parent) || t.isTSTypeAssertion(parent) || t.isTSAsExpression(parent) @@ -219,6 +220,13 @@ export function ConditionalExpression(node: Object, parent: Object): boolean { return UnaryLike(node, parent); } +export function OptionalMemberExpression( + node: Object, + parent: Object, +): boolean { + return t.isCallExpression(parent) || t.isMemberExpression(parent); +} + export function AssignmentExpression(node: Object): boolean { if (t.isObjectPattern(node.left)) { return true; diff --git a/packages/babel-generator/src/printer.js b/packages/babel-generator/src/printer.js index 93dd3189911c..1b740ce0c48b 100644 --- a/packages/babel-generator/src/printer.js +++ b/packages/babel-generator/src/printer.js @@ -200,6 +200,12 @@ export default class Printer { this._buf.removeTrailingNewline(); } + exactSource(loc: Object, cb: () => void) { + this._catchUp("start", loc); + + this._buf.exactSource(loc, cb); + } + source(prop: string, loc: Object): void { this._catchUp(prop, loc); diff --git a/packages/babel-generator/src/source-map.js b/packages/babel-generator/src/source-map.js index cbdbe8af8927..d03628a5eb53 100644 --- a/packages/babel-generator/src/source-map.js +++ b/packages/babel-generator/src/source-map.js @@ -53,6 +53,7 @@ export default class SourceMap { column: number, identifierName: ?string, filename: ?string, + force?: boolean, ) { // Adding an empty mapping at the start of a generated line just clutters the map. if (this._lastGenLine !== generatedLine && line === null) return; @@ -60,6 +61,7 @@ export default class SourceMap { // If this mapping points to the same source location as the last one, we can ignore it since // the previous one covers it. if ( + !force && this._lastGenLine === generatedLine && this._lastSourceLine === line && this._lastSourceColumn === column diff --git a/packages/babel-generator/test/fixtures/auto-string/jsx/options.json b/packages/babel-generator/test/fixtures/auto-string/jsx/options.json index ddd39ca03a1a..4576a3f234f2 100644 --- a/packages/babel-generator/test/fixtures/auto-string/jsx/options.json +++ b/packages/babel-generator/test/fixtures/auto-string/jsx/options.json @@ -1 +1 @@ -{ "plugins": ["jsx"] } \ No newline at end of file +{ "plugins": ["jsx"] } diff --git a/packages/babel-generator/test/fixtures/compact/expression-statement/options.json b/packages/babel-generator/test/fixtures/compact/expression-statement/options.json index bdb597ceca5e..8a2a1d3bfa91 100644 --- a/packages/babel-generator/test/fixtures/compact/expression-statement/options.json +++ b/packages/babel-generator/test/fixtures/compact/expression-statement/options.json @@ -1 +1 @@ -{ "plugins": ["objectRestSpread"] } \ No newline at end of file +{ "plugins": ["objectRestSpread"] } diff --git a/packages/babel-generator/test/fixtures/decoratorsBeforeExport/false-to-false/options.json b/packages/babel-generator/test/fixtures/decoratorsBeforeExport/false-to-false/options.json index f4f6d04ce87f..7ebfdd91777b 100644 --- a/packages/babel-generator/test/fixtures/decoratorsBeforeExport/false-to-false/options.json +++ b/packages/babel-generator/test/fixtures/decoratorsBeforeExport/false-to-false/options.json @@ -1,6 +1,4 @@ { - "plugins": [ - ["decorators", { "decoratorsBeforeExport": false }] - ], + "plugins": [["decorators", { "decoratorsBeforeExport": false }]], "decoratorsBeforeExport": false } diff --git a/packages/babel-generator/test/fixtures/decoratorsBeforeExport/false-to-true/options.json b/packages/babel-generator/test/fixtures/decoratorsBeforeExport/false-to-true/options.json index c05b74601a58..234fb2bac889 100644 --- a/packages/babel-generator/test/fixtures/decoratorsBeforeExport/false-to-true/options.json +++ b/packages/babel-generator/test/fixtures/decoratorsBeforeExport/false-to-true/options.json @@ -1,6 +1,4 @@ { - "plugins": [ - ["decorators", { "decoratorsBeforeExport": false }] - ], + "plugins": [["decorators", { "decoratorsBeforeExport": false }]], "decoratorsBeforeExport": true } diff --git a/packages/babel-generator/test/fixtures/decoratorsBeforeExport/true-to-false/options.json b/packages/babel-generator/test/fixtures/decoratorsBeforeExport/true-to-false/options.json index c8764bcb18e0..2540d61c86c0 100644 --- a/packages/babel-generator/test/fixtures/decoratorsBeforeExport/true-to-false/options.json +++ b/packages/babel-generator/test/fixtures/decoratorsBeforeExport/true-to-false/options.json @@ -1,6 +1,4 @@ { - "plugins": [ - ["decorators", { "decoratorsBeforeExport": true }] - ], + "plugins": [["decorators", { "decoratorsBeforeExport": true }]], "decoratorsBeforeExport": false } diff --git a/packages/babel-generator/test/fixtures/decoratorsBeforeExport/true-to-true/options.json b/packages/babel-generator/test/fixtures/decoratorsBeforeExport/true-to-true/options.json index cae43e34e2c3..788cc225058a 100644 --- a/packages/babel-generator/test/fixtures/decoratorsBeforeExport/true-to-true/options.json +++ b/packages/babel-generator/test/fixtures/decoratorsBeforeExport/true-to-true/options.json @@ -1,6 +1,4 @@ { - "plugins": [ - ["decorators", { "decoratorsBeforeExport": true }] - ], + "plugins": [["decorators", { "decoratorsBeforeExport": true }]], "decoratorsBeforeExport": true } diff --git a/packages/babel-generator/test/fixtures/edgecase/single-arg-async-arrow-with-retainlines/input.js b/packages/babel-generator/test/fixtures/edgecase/single-arg-async-arrow-with-retainlines/input.js new file mode 100644 index 000000000000..e409b79f575f --- /dev/null +++ b/packages/babel-generator/test/fixtures/edgecase/single-arg-async-arrow-with-retainlines/input.js @@ -0,0 +1,11 @@ +var fn = async ( + arg +) => {} + +async (x) +=> {} + +async x => {} + +async (x +) => {}; \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/edgecase/single-arg-async-arrow-with-retainlines/options.json b/packages/babel-generator/test/fixtures/edgecase/single-arg-async-arrow-with-retainlines/options.json new file mode 100644 index 000000000000..97925bbcb61b --- /dev/null +++ b/packages/babel-generator/test/fixtures/edgecase/single-arg-async-arrow-with-retainlines/options.json @@ -0,0 +1,3 @@ +{ + "retainLines": true +} diff --git a/packages/babel-generator/test/fixtures/edgecase/single-arg-async-arrow-with-retainlines/output.js b/packages/babel-generator/test/fixtures/edgecase/single-arg-async-arrow-with-retainlines/output.js new file mode 100644 index 000000000000..6bb2ce5093e8 --- /dev/null +++ b/packages/babel-generator/test/fixtures/edgecase/single-arg-async-arrow-with-retainlines/output.js @@ -0,0 +1,11 @@ +var fn = async ( + arg +) => {}; + +async (x) => +{}; + +async x => {}; + +async (x) => +{}; \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/flow/def-site-variance/options.json b/packages/babel-generator/test/fixtures/flow/def-site-variance/options.json index 89c39512b5a7..8f1d8a332c33 100644 --- a/packages/babel-generator/test/fixtures/flow/def-site-variance/options.json +++ b/packages/babel-generator/test/fixtures/flow/def-site-variance/options.json @@ -1 +1 @@ -{ "plugins": ["classProperties", "flow"] } \ No newline at end of file +{ "plugins": ["classProperties", "flow"] } diff --git a/packages/babel-generator/test/fixtures/flow/options.json b/packages/babel-generator/test/fixtures/flow/options.json index 48299acf994b..69cc60743d08 100644 --- a/packages/babel-generator/test/fixtures/flow/options.json +++ b/packages/babel-generator/test/fixtures/flow/options.json @@ -1 +1 @@ -{ "plugins": ["flow"] } \ No newline at end of file +{ "plugins": ["flow"] } diff --git a/packages/babel-generator/test/fixtures/flow/type-annotations/input.js b/packages/babel-generator/test/fixtures/flow/type-annotations/input.js index 03e37dd3fbbe..d94dd1ce665c 100644 --- a/packages/babel-generator/test/fixtures/flow/type-annotations/input.js +++ b/packages/babel-generator/test/fixtures/flow/type-annotations/input.js @@ -72,6 +72,10 @@ class Foo { static prop1: string; prop2: number; } +class Foo { + #prop1: string; + prop2: number; +} var x: number | string = 4; class Array { concat(items:number | string) {}; } var x: () => number | () => string = fn; diff --git a/packages/babel-generator/test/fixtures/flow/type-annotations/options.json b/packages/babel-generator/test/fixtures/flow/type-annotations/options.json new file mode 100644 index 000000000000..a385fcbcc0a4 --- /dev/null +++ b/packages/babel-generator/test/fixtures/flow/type-annotations/options.json @@ -0,0 +1 @@ +{ "plugins": ["classPrivateProperties", "flow"] } diff --git a/packages/babel-generator/test/fixtures/flow/type-annotations/output.js b/packages/babel-generator/test/fixtures/flow/type-annotations/output.js index 84200366ba79..433354505279 100644 --- a/packages/babel-generator/test/fixtures/flow/type-annotations/output.js +++ b/packages/babel-generator/test/fixtures/flow/type-annotations/output.js @@ -168,6 +168,11 @@ class Foo { prop2: number; } +class Foo { + #prop1: string; + prop2: number; +} + var x: number | string = 4; class Array { diff --git a/packages/babel-generator/test/fixtures/flowUsesCommas/ObjectExpression/options.json b/packages/babel-generator/test/fixtures/flowUsesCommas/ObjectExpression/options.json index 48299acf994b..69cc60743d08 100644 --- a/packages/babel-generator/test/fixtures/flowUsesCommas/ObjectExpression/options.json +++ b/packages/babel-generator/test/fixtures/flowUsesCommas/ObjectExpression/options.json @@ -1 +1 @@ -{ "plugins": ["flow"] } \ No newline at end of file +{ "plugins": ["flow"] } diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/import-with-break/input.js b/packages/babel-generator/test/fixtures/harmony-edgecase/import-with-break/input.js new file mode 100644 index 000000000000..69b3df1e5492 --- /dev/null +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/import-with-break/input.js @@ -0,0 +1,5 @@ +import foo from "foo"; + +foo: { + break foo; +} diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/import-with-break/output.js b/packages/babel-generator/test/fixtures/harmony-edgecase/import-with-break/output.js new file mode 100644 index 000000000000..69b3df1e5492 --- /dev/null +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/import-with-break/output.js @@ -0,0 +1,5 @@ +import foo from "foo"; + +foo: { + break foo; +} diff --git a/packages/babel-generator/test/fixtures/parentheses/do-expression/options.json b/packages/babel-generator/test/fixtures/parentheses/do-expression/options.json index b0e44d7af037..81488c2381a4 100644 --- a/packages/babel-generator/test/fixtures/parentheses/do-expression/options.json +++ b/packages/babel-generator/test/fixtures/parentheses/do-expression/options.json @@ -1 +1 @@ -{ "plugins": ["doExpressions"] } \ No newline at end of file +{ "plugins": ["doExpressions"] } diff --git a/packages/babel-generator/test/fixtures/regression/throw-expression/input.js b/packages/babel-generator/test/fixtures/regression/throw-expression/input.js new file mode 100644 index 000000000000..0db86b226fb9 --- /dev/null +++ b/packages/babel-generator/test/fixtures/regression/throw-expression/input.js @@ -0,0 +1 @@ +() => throw new X(); diff --git a/packages/babel-generator/test/fixtures/regression/throw-expression/options.json b/packages/babel-generator/test/fixtures/regression/throw-expression/options.json new file mode 100644 index 000000000000..abc05508f80e --- /dev/null +++ b/packages/babel-generator/test/fixtures/regression/throw-expression/options.json @@ -0,0 +1 @@ +{ "plugins": ["throwExpressions"] } diff --git a/packages/babel-generator/test/fixtures/regression/throw-expression/output.js b/packages/babel-generator/test/fixtures/regression/throw-expression/output.js new file mode 100644 index 000000000000..f85a421ca907 --- /dev/null +++ b/packages/babel-generator/test/fixtures/regression/throw-expression/output.js @@ -0,0 +1 @@ +() => throw new X(); \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/sourcemaps/call-identifiers/input.js b/packages/babel-generator/test/fixtures/sourcemaps/call-identifiers/input.js new file mode 100644 index 000000000000..2aa2d3b2b022 --- /dev/null +++ b/packages/babel-generator/test/fixtures/sourcemaps/call-identifiers/input.js @@ -0,0 +1,16 @@ +foo; +foo(); +foo().bar; +obj.foo; +obj.foo(); +obj.foo.bar; +obj.foo().bar; +{ + foo; + foo(); + foo().bar; + obj.foo; + obj.foo(); + obj.foo.bar; + obj.foo().bar; +} diff --git a/packages/babel-generator/test/fixtures/sourcemaps/call-identifiers/output.js b/packages/babel-generator/test/fixtures/sourcemaps/call-identifiers/output.js new file mode 100644 index 000000000000..2aa2d3b2b022 --- /dev/null +++ b/packages/babel-generator/test/fixtures/sourcemaps/call-identifiers/output.js @@ -0,0 +1,16 @@ +foo; +foo(); +foo().bar; +obj.foo; +obj.foo(); +obj.foo.bar; +obj.foo().bar; +{ + foo; + foo(); + foo().bar; + obj.foo; + obj.foo(); + obj.foo.bar; + obj.foo().bar; +} diff --git a/packages/babel-generator/test/fixtures/sourcemaps/call-identifiers/source-map.json b/packages/babel-generator/test/fixtures/sourcemaps/call-identifiers/source-map.json new file mode 100644 index 000000000000..27cb26d0eec3 --- /dev/null +++ b/packages/babel-generator/test/fixtures/sourcemaps/call-identifiers/source-map.json @@ -0,0 +1,9 @@ +{ + "mappings": "AAAAA,GAAG;AACHA,GAAG;AACHA,GAAG,GAAGC,GAAN;AACAC,GAAG,CAACF,GAAJ;AACAE,GAAG,CAACF,GAAJ;AACAE,GAAG,CAACF,GAAJ,CAAQC,GAAR;AACAC,GAAG,CAACF,GAAJ,GAAUC,GAAV;AACA;AACED,EAAAA,GAAG;AACHA,EAAAA,GAAG;AACHA,EAAAA,GAAG,GAAGC,GAAN;AACAC,EAAAA,GAAG,CAACF,GAAJ;AACAE,EAAAA,GAAG,CAACF,GAAJ;AACAE,EAAAA,GAAG,CAACF,GAAJ,CAAQC,GAAR;AACAC,EAAAA,GAAG,CAACF,GAAJ,GAAUC,GAAV;AACD", + "names": ["foo", "bar", "obj"], + "sources": ["fixtures/sourcemaps/call-identifiers/input.js"], + "sourcesContent": [ + "foo;\nfoo();\nfoo().bar;\nobj.foo;\nobj.foo();\nobj.foo.bar;\nobj.foo().bar;\n{\n foo;\n foo();\n foo().bar;\n obj.foo;\n obj.foo();\n obj.foo.bar;\n obj.foo().bar;\n}" + ], + "version": 3 +} diff --git a/packages/babel-generator/test/fixtures/types/BigIntLiteral/options.json b/packages/babel-generator/test/fixtures/types/BigIntLiteral/options.json index 2023dd95bd89..c7885a10736b 100644 --- a/packages/babel-generator/test/fixtures/types/BigIntLiteral/options.json +++ b/packages/babel-generator/test/fixtures/types/BigIntLiteral/options.json @@ -1 +1 @@ -{ "plugins": ["bigInt"] } \ No newline at end of file +{ "plugins": ["bigInt"] } diff --git a/packages/babel-generator/test/fixtures/types/BindExpression/options.json b/packages/babel-generator/test/fixtures/types/BindExpression/options.json index ff1db68a7d89..d04a0f5ec9de 100644 --- a/packages/babel-generator/test/fixtures/types/BindExpression/options.json +++ b/packages/babel-generator/test/fixtures/types/BindExpression/options.json @@ -1 +1 @@ -{ "plugins": ["functionBind"] } \ No newline at end of file +{ "plugins": ["functionBind"] } diff --git a/packages/babel-generator/test/fixtures/types/DoExpression/options.json b/packages/babel-generator/test/fixtures/types/DoExpression/options.json index b0e44d7af037..81488c2381a4 100644 --- a/packages/babel-generator/test/fixtures/types/DoExpression/options.json +++ b/packages/babel-generator/test/fixtures/types/DoExpression/options.json @@ -1 +1 @@ -{ "plugins": ["doExpressions"] } \ No newline at end of file +{ "plugins": ["doExpressions"] } diff --git a/packages/babel-generator/test/fixtures/types/Import/options.json b/packages/babel-generator/test/fixtures/types/Import/options.json index 425542eceee7..5390d4676593 100644 --- a/packages/babel-generator/test/fixtures/types/Import/options.json +++ b/packages/babel-generator/test/fixtures/types/Import/options.json @@ -1 +1 @@ -{ "plugins": ["dynamicImport"] } \ No newline at end of file +{ "plugins": ["dynamicImport"] } diff --git a/packages/babel-generator/test/fixtures/types/JSXAttribute/options.json b/packages/babel-generator/test/fixtures/types/JSXAttribute/options.json index da9cfe134030..4576a3f234f2 100644 --- a/packages/babel-generator/test/fixtures/types/JSXAttribute/options.json +++ b/packages/babel-generator/test/fixtures/types/JSXAttribute/options.json @@ -1 +1 @@ -{ "plugins": ["jsx" ] } \ No newline at end of file +{ "plugins": ["jsx"] } diff --git a/packages/babel-generator/test/fixtures/types/JSXElement-JSXOpeningElement-JSXClosingElement-JSXIdentifier/options.json b/packages/babel-generator/test/fixtures/types/JSXElement-JSXOpeningElement-JSXClosingElement-JSXIdentifier/options.json index da9cfe134030..4576a3f234f2 100644 --- a/packages/babel-generator/test/fixtures/types/JSXElement-JSXOpeningElement-JSXClosingElement-JSXIdentifier/options.json +++ b/packages/babel-generator/test/fixtures/types/JSXElement-JSXOpeningElement-JSXClosingElement-JSXIdentifier/options.json @@ -1 +1 @@ -{ "plugins": ["jsx" ] } \ No newline at end of file +{ "plugins": ["jsx"] } diff --git a/packages/babel-generator/test/fixtures/types/JSXEmptyExpression/options.json b/packages/babel-generator/test/fixtures/types/JSXEmptyExpression/options.json index da9cfe134030..4576a3f234f2 100644 --- a/packages/babel-generator/test/fixtures/types/JSXEmptyExpression/options.json +++ b/packages/babel-generator/test/fixtures/types/JSXEmptyExpression/options.json @@ -1 +1 @@ -{ "plugins": ["jsx" ] } \ No newline at end of file +{ "plugins": ["jsx"] } diff --git a/packages/babel-generator/test/fixtures/types/JSXExpressionContainer/options.json b/packages/babel-generator/test/fixtures/types/JSXExpressionContainer/options.json index da9cfe134030..4576a3f234f2 100644 --- a/packages/babel-generator/test/fixtures/types/JSXExpressionContainer/options.json +++ b/packages/babel-generator/test/fixtures/types/JSXExpressionContainer/options.json @@ -1 +1 @@ -{ "plugins": ["jsx" ] } \ No newline at end of file +{ "plugins": ["jsx"] } diff --git a/packages/babel-generator/test/fixtures/types/JSXFragment-JSXOpeningFragment-JSXClosingFragment/options.json b/packages/babel-generator/test/fixtures/types/JSXFragment-JSXOpeningFragment-JSXClosingFragment/options.json index da9cfe134030..4576a3f234f2 100644 --- a/packages/babel-generator/test/fixtures/types/JSXFragment-JSXOpeningFragment-JSXClosingFragment/options.json +++ b/packages/babel-generator/test/fixtures/types/JSXFragment-JSXOpeningFragment-JSXClosingFragment/options.json @@ -1 +1 @@ -{ "plugins": ["jsx" ] } \ No newline at end of file +{ "plugins": ["jsx"] } diff --git a/packages/babel-generator/test/fixtures/types/JSXMemberExpression/options.json b/packages/babel-generator/test/fixtures/types/JSXMemberExpression/options.json index da9cfe134030..4576a3f234f2 100644 --- a/packages/babel-generator/test/fixtures/types/JSXMemberExpression/options.json +++ b/packages/babel-generator/test/fixtures/types/JSXMemberExpression/options.json @@ -1 +1 @@ -{ "plugins": ["jsx" ] } \ No newline at end of file +{ "plugins": ["jsx"] } diff --git a/packages/babel-generator/test/fixtures/types/JSXNamespacedName/options.json b/packages/babel-generator/test/fixtures/types/JSXNamespacedName/options.json index da9cfe134030..4576a3f234f2 100644 --- a/packages/babel-generator/test/fixtures/types/JSXNamespacedName/options.json +++ b/packages/babel-generator/test/fixtures/types/JSXNamespacedName/options.json @@ -1 +1 @@ -{ "plugins": ["jsx" ] } \ No newline at end of file +{ "plugins": ["jsx"] } diff --git a/packages/babel-generator/test/fixtures/types/JSXSpreadAttribute/options.json b/packages/babel-generator/test/fixtures/types/JSXSpreadAttribute/options.json index da9cfe134030..4576a3f234f2 100644 --- a/packages/babel-generator/test/fixtures/types/JSXSpreadAttribute/options.json +++ b/packages/babel-generator/test/fixtures/types/JSXSpreadAttribute/options.json @@ -1 +1 @@ -{ "plugins": ["jsx" ] } \ No newline at end of file +{ "plugins": ["jsx"] } diff --git a/packages/babel-generator/test/fixtures/types/JSXSpreadChildren/options.json b/packages/babel-generator/test/fixtures/types/JSXSpreadChildren/options.json index da9cfe134030..4576a3f234f2 100644 --- a/packages/babel-generator/test/fixtures/types/JSXSpreadChildren/options.json +++ b/packages/babel-generator/test/fixtures/types/JSXSpreadChildren/options.json @@ -1 +1 @@ -{ "plugins": ["jsx" ] } \ No newline at end of file +{ "plugins": ["jsx"] } diff --git a/packages/babel-generator/test/fixtures/types/JSXText/options.json b/packages/babel-generator/test/fixtures/types/JSXText/options.json index da9cfe134030..4576a3f234f2 100644 --- a/packages/babel-generator/test/fixtures/types/JSXText/options.json +++ b/packages/babel-generator/test/fixtures/types/JSXText/options.json @@ -1 +1 @@ -{ "plugins": ["jsx" ] } \ No newline at end of file +{ "plugins": ["jsx"] } diff --git a/packages/babel-generator/test/fixtures/types/Optional-CallExpression/options.json b/packages/babel-generator/test/fixtures/types/Optional-CallExpression/options.json index b4da7fc0667c..4e36ce44f691 100644 --- a/packages/babel-generator/test/fixtures/types/Optional-CallExpression/options.json +++ b/packages/babel-generator/test/fixtures/types/Optional-CallExpression/options.json @@ -1 +1 @@ -{ "plugins": ["optionalChaining"] } \ No newline at end of file +{ "plugins": ["optionalChaining"] } diff --git a/packages/babel-generator/test/fixtures/types/Optional-MemberExpression/input.js b/packages/babel-generator/test/fixtures/types/Optional-MemberExpression/input.js index 1c60f768707d..6e71f9167264 100644 --- a/packages/babel-generator/test/fixtures/types/Optional-MemberExpression/input.js +++ b/packages/babel-generator/test/fixtures/types/Optional-MemberExpression/input.js @@ -14,3 +14,7 @@ foo?.["bar"]?.foo; 0.?.toString(); 0.5?.toString(); 1.000?.toString(); + +(a?.b).c; +(a ? b : c)?.d; +(a?.b)() diff --git a/packages/babel-generator/test/fixtures/types/Optional-MemberExpression/options.json b/packages/babel-generator/test/fixtures/types/Optional-MemberExpression/options.json index b4da7fc0667c..4e36ce44f691 100644 --- a/packages/babel-generator/test/fixtures/types/Optional-MemberExpression/options.json +++ b/packages/babel-generator/test/fixtures/types/Optional-MemberExpression/options.json @@ -1 +1 @@ -{ "plugins": ["optionalChaining"] } \ No newline at end of file +{ "plugins": ["optionalChaining"] } diff --git a/packages/babel-generator/test/fixtures/types/Optional-MemberExpression/output.js b/packages/babel-generator/test/fixtures/types/Optional-MemberExpression/output.js index be34e83a5833..a99aa9039c18 100644 --- a/packages/babel-generator/test/fixtures/types/Optional-MemberExpression/output.js +++ b/packages/babel-generator/test/fixtures/types/Optional-MemberExpression/output.js @@ -11,4 +11,7 @@ foo?.["bar"].foo; foo?.["bar"]?.foo; 0.?.toString(); 0.5?.toString(); -1.000?.toString(); \ No newline at end of file +1.000?.toString(); +(a?.b).c; +(a ? b : c)?.d; +(a?.b)(); \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/types/Optional-TryStatement-CatchClause/options.json b/packages/babel-generator/test/fixtures/types/Optional-TryStatement-CatchClause/options.json index 39f0227e60d0..f7793b0dd816 100644 --- a/packages/babel-generator/test/fixtures/types/Optional-TryStatement-CatchClause/options.json +++ b/packages/babel-generator/test/fixtures/types/Optional-TryStatement-CatchClause/options.json @@ -1 +1 @@ -{ "plugins": ["optionalCatchBinding"] } \ No newline at end of file +{ "plugins": ["optionalCatchBinding"] } diff --git a/packages/babel-generator/test/fixtures/types/RestProperty/options.json b/packages/babel-generator/test/fixtures/types/RestProperty/options.json index bdb597ceca5e..8a2a1d3bfa91 100644 --- a/packages/babel-generator/test/fixtures/types/RestProperty/options.json +++ b/packages/babel-generator/test/fixtures/types/RestProperty/options.json @@ -1 +1 @@ -{ "plugins": ["objectRestSpread"] } \ No newline at end of file +{ "plugins": ["objectRestSpread"] } diff --git a/packages/babel-generator/test/fixtures/typescript/arrow-function-generic-tsx/options.json b/packages/babel-generator/test/fixtures/typescript/arrow-function-generic-tsx/options.json index 6e5bbd52f85a..aa8780ac5180 100644 --- a/packages/babel-generator/test/fixtures/typescript/arrow-function-generic-tsx/options.json +++ b/packages/babel-generator/test/fixtures/typescript/arrow-function-generic-tsx/options.json @@ -1,3 +1,3 @@ { - "plugins": ["jsx", "typescript"] -} \ No newline at end of file + "plugins": ["jsx", "typescript"] +} diff --git a/packages/babel-generator/test/fixtures/typescript/regression-is-default-export/options.json b/packages/babel-generator/test/fixtures/typescript/regression-is-default-export/options.json index 21e26c84a8f9..009c01f8ac9c 100644 --- a/packages/babel-generator/test/fixtures/typescript/regression-is-default-export/options.json +++ b/packages/babel-generator/test/fixtures/typescript/regression-is-default-export/options.json @@ -1,3 +1,3 @@ { - "plugins": ["exportDefaultFrom", "typescript"] + "plugins": ["exportDefaultFrom", "typescript"] } diff --git a/packages/babel-generator/test/fixtures/typescript/tuple-empty/input.js b/packages/babel-generator/test/fixtures/typescript/tuple-empty/input.js new file mode 100644 index 000000000000..f7cd7b5a0e25 --- /dev/null +++ b/packages/babel-generator/test/fixtures/typescript/tuple-empty/input.js @@ -0,0 +1 @@ +let x: []; diff --git a/packages/babel-generator/test/fixtures/typescript/tuple-empty/output.js b/packages/babel-generator/test/fixtures/typescript/tuple-empty/output.js new file mode 100644 index 000000000000..a602e2203789 --- /dev/null +++ b/packages/babel-generator/test/fixtures/typescript/tuple-empty/output.js @@ -0,0 +1 @@ +let x: []; \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/typescript/tuple-optional/input.js b/packages/babel-generator/test/fixtures/typescript/tuple-optional/input.js new file mode 100644 index 000000000000..3b8d21ba958c --- /dev/null +++ b/packages/babel-generator/test/fixtures/typescript/tuple-optional/input.js @@ -0,0 +1 @@ +let x: [string, number?, (string | number)?] diff --git a/packages/babel-generator/test/fixtures/typescript/tuple-optional/output.js b/packages/babel-generator/test/fixtures/typescript/tuple-optional/output.js new file mode 100644 index 000000000000..c32cf4f129a6 --- /dev/null +++ b/packages/babel-generator/test/fixtures/typescript/tuple-optional/output.js @@ -0,0 +1 @@ +let x: [string, number?, (string | number)?]; diff --git a/packages/babel-generator/test/fixtures/typescript/tuple-rest/input.js b/packages/babel-generator/test/fixtures/typescript/tuple-rest/input.js new file mode 100644 index 000000000000..d7719b2cb4e6 --- /dev/null +++ b/packages/babel-generator/test/fixtures/typescript/tuple-rest/input.js @@ -0,0 +1 @@ +let x: [string, ...number[]] diff --git a/packages/babel-generator/test/fixtures/typescript/tuple-rest/output.js b/packages/babel-generator/test/fixtures/typescript/tuple-rest/output.js new file mode 100644 index 000000000000..52be881f835c --- /dev/null +++ b/packages/babel-generator/test/fixtures/typescript/tuple-rest/output.js @@ -0,0 +1 @@ +let x: [string, ...number[]]; \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/typescript/tuple/input.js b/packages/babel-generator/test/fixtures/typescript/tuple/input.js new file mode 100644 index 000000000000..53c8e72ec952 --- /dev/null +++ b/packages/babel-generator/test/fixtures/typescript/tuple/input.js @@ -0,0 +1 @@ +let x: [number, number, number]; diff --git a/packages/babel-generator/test/fixtures/typescript/tuple/output.js b/packages/babel-generator/test/fixtures/typescript/tuple/output.js new file mode 100644 index 000000000000..07edd6a75272 --- /dev/null +++ b/packages/babel-generator/test/fixtures/typescript/tuple/output.js @@ -0,0 +1 @@ +let x: [number, number, number]; \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/typescript/type-arguments-tagged-template/input.js b/packages/babel-generator/test/fixtures/typescript/type-arguments-tagged-template/input.js new file mode 100644 index 000000000000..53bbc3e3edbe --- /dev/null +++ b/packages/babel-generator/test/fixtures/typescript/type-arguments-tagged-template/input.js @@ -0,0 +1 @@ +f``; diff --git a/packages/babel-generator/test/fixtures/typescript/type-arguments-tagged-template/output.js b/packages/babel-generator/test/fixtures/typescript/type-arguments-tagged-template/output.js new file mode 100644 index 000000000000..44ffed74fd43 --- /dev/null +++ b/packages/babel-generator/test/fixtures/typescript/type-arguments-tagged-template/output.js @@ -0,0 +1 @@ +f``; \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/typescript/type-arguments-tsx/input.js b/packages/babel-generator/test/fixtures/typescript/type-arguments-tsx/input.js new file mode 100644 index 000000000000..520e35ee9097 --- /dev/null +++ b/packages/babel-generator/test/fixtures/typescript/type-arguments-tsx/input.js @@ -0,0 +1,2 @@ +>; +/>; diff --git a/packages/babel-generator/test/fixtures/typescript/type-arguments-tsx/options.json b/packages/babel-generator/test/fixtures/typescript/type-arguments-tsx/options.json new file mode 100644 index 000000000000..3a319216ff5e --- /dev/null +++ b/packages/babel-generator/test/fixtures/typescript/type-arguments-tsx/options.json @@ -0,0 +1,4 @@ +{ + "plugins": ["jsx", "typescript"], + "sourceType": "module" +} diff --git a/packages/babel-generator/test/fixtures/typescript/type-arguments-tsx/output.js b/packages/babel-generator/test/fixtures/typescript/type-arguments-tsx/output.js new file mode 100644 index 000000000000..535f6a651dbf --- /dev/null +++ b/packages/babel-generator/test/fixtures/typescript/type-arguments-tsx/output.js @@ -0,0 +1,2 @@ +>; + />; \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/typescript/types-keywords/input.js b/packages/babel-generator/test/fixtures/typescript/types-keywords/input.js index d2ddfb94bbc6..0fec8f608a1c 100644 --- a/packages/babel-generator/test/fixtures/typescript/types-keywords/input.js +++ b/packages/babel-generator/test/fixtures/typescript/types-keywords/input.js @@ -1,4 +1,5 @@ let a: any; +let un: unknown; let b: boolean; let ne: never; let nul: null; diff --git a/packages/babel-generator/test/fixtures/typescript/types-keywords/output.js b/packages/babel-generator/test/fixtures/typescript/types-keywords/output.js index 0c6820fbaf27..0fec8f608a1c 100644 --- a/packages/babel-generator/test/fixtures/typescript/types-keywords/output.js +++ b/packages/babel-generator/test/fixtures/typescript/types-keywords/output.js @@ -1,4 +1,5 @@ let a: any; +let un: unknown; let b: boolean; let ne: never; let nul: null; @@ -7,4 +8,4 @@ let o: object; let st: string; let sy: symbol; let u: undefined; -let v: void; \ No newline at end of file +let v: void; diff --git a/packages/babel-generator/test/index.js b/packages/babel-generator/test/index.js index e2ae1f22c803..f79b964d0a83 100644 --- a/packages/babel-generator/test/index.js +++ b/packages/babel-generator/test/index.js @@ -49,7 +49,8 @@ describe("generation", function() { version: 3, sources: ["a.js", "b.js"], mappings: - "AAAA,SAASA,EAAT,CAAaC,GAAb,EAAkB;AAAEC,UAAQC,GAAR,CAAYF,GAAZ;AAAmB;;ACAvCD,GAAG,OAAH", + // eslint-disable-next-line max-len + "AAAA,SAASA,EAAT,CAAaC,GAAb,EAAkB;AAAEC,EAAAA,OAAO,CAACC,GAAR,CAAYF,GAAZ;AAAmB;;ACAvCD,EAAE,CAAC,OAAD,CAAF", names: ["hi", "msg", "console", "log"], sourcesContent: [ "function hi (msg) { console.log(msg); }\n", @@ -103,6 +104,18 @@ describe("generation", function() { source: "a.js", original: { line: 1, column: 20 }, }, + { + name: "console", + generated: { line: 2, column: 2 }, + source: "a.js", + original: { line: 1, column: 20 }, + }, + { + name: undefined, + generated: { line: 2, column: 9 }, + source: "a.js", + original: { line: 1, column: 27 }, + }, { name: "log", generated: { line: 2, column: 10 }, @@ -139,6 +152,12 @@ describe("generation", function() { source: "b.js", original: { line: 1, column: 0 }, }, + { + name: undefined, + generated: { line: 5, column: 2 }, + source: "b.js", + original: { line: 1, column: 2 }, + }, { name: undefined, generated: { line: 5, column: 3 }, @@ -149,6 +168,12 @@ describe("generation", function() { name: undefined, generated: { line: 5, column: 10 }, source: "b.js", + original: { line: 1, column: 2 }, + }, + { + name: undefined, + generated: { line: 5, column: 11 }, + source: "b.js", original: { line: 1, column: 0 }, }, ], @@ -189,7 +214,7 @@ describe("generation", function() { version: 3, sources: ["inline"], names: ["foo", "bar"], - mappings: "AAAA,SAASA,IAAT,GAAe;AAAEC;AAAM", + mappings: "AAAA,SAASA,IAAT,GAAe;AAAEC,EAAAA,IAAG;AAAG", sourcesContent: ["function foo() { bar; }\n"], }, "sourcemap was incorrectly generated", @@ -227,6 +252,18 @@ describe("generation", function() { source: "inline", original: { line: 1, column: 17 }, }, + { + name: "bar", + generated: { line: 2, column: 2 }, + source: "inline", + original: { line: 1, column: 17 }, + }, + { + name: undefined, + generated: { line: 2, column: 6 }, + source: "inline", + original: { line: 1, column: 20 }, + }, { name: undefined, generated: { line: 3, column: 0 }, @@ -362,36 +399,49 @@ const suites = fixtures(`${__dirname}/fixtures`); suites.forEach(function(testSuite) { describe("generation/" + testSuite.title, function() { testSuite.tests.forEach(function(task) { - it( + const testFn = task.disabled ? it.skip : it; + + testFn( task.title, - !task.disabled && - function() { - const expected = task.expect; - const actual = task.actual; - const actualCode = actual.code; - - if (actualCode) { - const actualAst = parse(actualCode, { - filename: actual.loc, - plugins: task.options.plugins || [], - strictMode: false, - sourceType: "module", - }); - const result = generate(actualAst, task.options, actualCode); - - if ( - !expected.code && - result.code && - fs.statSync(path.dirname(expected.loc)).isDirectory() && - !process.env.CI - ) { - console.log(`New test file created: ${expected.loc}`); - fs.writeFileSync(expected.loc, result.code); - } else { - expect(result.code).toBe(expected.code); - } + + function() { + const expected = task.expect; + const actual = task.actual; + const actualCode = actual.code; + + if (actualCode) { + const actualAst = parse(actualCode, { + filename: actual.loc, + plugins: task.options.plugins || [], + strictMode: false, + sourceType: "module", + sourceMaps: !!task.sourceMap, + }); + const options = { + sourceFileName: path.relative(__dirname, actual.loc), + ...task.options, + sourceMaps: task.sourceMap ? true : task.options.sourceMaps, + }; + + const result = generate(actualAst, options, actualCode); + + if (options.sourceMaps) { + expect(result.map).toEqual(task.sourceMap); + } + + if ( + !expected.code && + result.code && + fs.statSync(path.dirname(expected.loc)).isDirectory() && + !process.env.CI + ) { + console.log(`New test file created: ${expected.loc}`); + fs.writeFileSync(expected.loc, result.code); + } else { + expect(result.code).toBe(expected.code); } - }, + } + }, ); }); }); diff --git a/packages/babel-helper-annotate-as-pure/package.json b/packages/babel-helper-annotate-as-pure/package.json index d5ee863c452d..543b4fbf16ab 100644 --- a/packages/babel-helper-annotate-as-pure/package.json +++ b/packages/babel-helper-annotate-as-pure/package.json @@ -1,11 +1,14 @@ { "name": "@babel/helper-annotate-as-pure", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Helper function to annotate paths and nodes with #__PURE__ comment", "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-annotate-as-pure", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "dependencies": { - "@babel/types": "7.0.0-beta.52" + "@babel/types": "^7.0.0" } } diff --git a/packages/babel-helper-bindify-decorators/package.json b/packages/babel-helper-bindify-decorators/package.json index bd6fbc2987af..c7904cd201ea 100644 --- a/packages/babel-helper-bindify-decorators/package.json +++ b/packages/babel-helper-bindify-decorators/package.json @@ -1,12 +1,15 @@ { "name": "@babel/helper-bindify-decorators", - "version": "7.0.0-beta.52", + "version": "7.1.0", "description": "Helper function to bindify decorators", "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-bindify-decorators", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "dependencies": { - "@babel/traverse": "7.0.0-beta.52", - "@babel/types": "7.0.0-beta.52" + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" } } diff --git a/packages/babel-helper-builder-binary-assignment-operator-visitor/package.json b/packages/babel-helper-builder-binary-assignment-operator-visitor/package.json index 5ea220b85c7d..3e292cc12d6f 100644 --- a/packages/babel-helper-builder-binary-assignment-operator-visitor/package.json +++ b/packages/babel-helper-builder-binary-assignment-operator-visitor/package.json @@ -1,12 +1,15 @@ { "name": "@babel/helper-builder-binary-assignment-operator-visitor", - "version": "7.0.0-beta.52", + "version": "7.1.0", "description": "Helper function to build binary assignment operator visitors", "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-builder-binary-assignment-operator-visitor", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "dependencies": { - "@babel/helper-explode-assignable-expression": "7.0.0-beta.52", - "@babel/types": "7.0.0-beta.52" + "@babel/helper-explode-assignable-expression": "^7.1.0", + "@babel/types": "^7.0.0" } } diff --git a/packages/babel-helper-builder-react-jsx/package.json b/packages/babel-helper-builder-react-jsx/package.json index c94759406f3e..8ef4b652d317 100644 --- a/packages/babel-helper-builder-react-jsx/package.json +++ b/packages/babel-helper-builder-react-jsx/package.json @@ -1,12 +1,15 @@ { "name": "@babel/helper-builder-react-jsx", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Helper function to build react jsx", "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-builder-react-jsx", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "dependencies": { - "@babel/types": "7.0.0-beta.52", + "@babel/types": "^7.0.0", "esutils": "^2.0.0" } } diff --git a/packages/babel-helper-call-delegate/package.json b/packages/babel-helper-call-delegate/package.json index 10e582702009..37ebc6134f08 100644 --- a/packages/babel-helper-call-delegate/package.json +++ b/packages/babel-helper-call-delegate/package.json @@ -1,13 +1,16 @@ { "name": "@babel/helper-call-delegate", - "version": "7.0.0-beta.52", + "version": "7.1.0", "description": "Helper function to call delegate", "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-call-delegate", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "dependencies": { - "@babel/helper-hoist-variables": "7.0.0-beta.52", - "@babel/traverse": "7.0.0-beta.52", - "@babel/types": "7.0.0-beta.52" + "@babel/helper-hoist-variables": "^7.0.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" } } diff --git a/packages/babel-helper-define-map/package.json b/packages/babel-helper-define-map/package.json index e386a7ecdd92..366e4a0610b1 100644 --- a/packages/babel-helper-define-map/package.json +++ b/packages/babel-helper-define-map/package.json @@ -1,13 +1,16 @@ { "name": "@babel/helper-define-map", - "version": "7.0.0-beta.52", + "version": "7.1.0", "description": "Helper function to define a map", "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-define-map", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "dependencies": { - "@babel/helper-function-name": "7.0.0-beta.52", - "@babel/types": "7.0.0-beta.52", - "lodash": "^4.17.5" + "@babel/helper-function-name": "^7.1.0", + "@babel/types": "^7.0.0", + "lodash": "^4.17.10" } } diff --git a/packages/babel-helper-explode-assignable-expression/package.json b/packages/babel-helper-explode-assignable-expression/package.json index ee2e64f2ed1f..cf91ef586e0a 100644 --- a/packages/babel-helper-explode-assignable-expression/package.json +++ b/packages/babel-helper-explode-assignable-expression/package.json @@ -1,12 +1,15 @@ { "name": "@babel/helper-explode-assignable-expression", - "version": "7.0.0-beta.52", + "version": "7.1.0", "description": "Helper function to explode an assignable expression", "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-explode-assignable-expression", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "dependencies": { - "@babel/traverse": "7.0.0-beta.52", - "@babel/types": "7.0.0-beta.52" + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" } } diff --git a/packages/babel-helper-explode-class/package.json b/packages/babel-helper-explode-class/package.json index a81f8e990799..ce7b0df4a3fe 100644 --- a/packages/babel-helper-explode-class/package.json +++ b/packages/babel-helper-explode-class/package.json @@ -1,13 +1,16 @@ { "name": "@babel/helper-explode-class", - "version": "7.0.0-beta.52", + "version": "7.1.0", "description": "Helper function to explode class", "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-explode-class", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "dependencies": { - "@babel/helper-bindify-decorators": "7.0.0-beta.52", - "@babel/traverse": "7.0.0-beta.52", - "@babel/types": "7.0.0-beta.52" + "@babel/helper-bindify-decorators": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" } } diff --git a/packages/babel-helper-fixtures/package.json b/packages/babel-helper-fixtures/package.json index 21903185c612..2704f7328c66 100644 --- a/packages/babel-helper-fixtures/package.json +++ b/packages/babel-helper-fixtures/package.json @@ -1,13 +1,16 @@ { "name": "@babel/helper-fixtures", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Helper function to support fixtures", "author": "Sebastian McKenzie ", "license": "MIT", + "publishConfig": { + "access": "public" + }, "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-fixtures", "main": "lib/index.js", "dependencies": { - "lodash": "^4.17.5", + "lodash": "^4.17.10", "semver": "^5.3.0", "try-resolve": "^1.0.0" } diff --git a/packages/babel-helper-function-name/package.json b/packages/babel-helper-function-name/package.json index 6d170650266e..77670f935a38 100644 --- a/packages/babel-helper-function-name/package.json +++ b/packages/babel-helper-function-name/package.json @@ -1,13 +1,16 @@ { "name": "@babel/helper-function-name", - "version": "7.0.0-beta.52", + "version": "7.1.0", "description": "Helper function to change the property 'name' of every function", "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-function-name", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "dependencies": { - "@babel/helper-get-function-arity": "7.0.0-beta.52", - "@babel/template": "7.0.0-beta.52", - "@babel/types": "7.0.0-beta.52" + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" } } diff --git a/packages/babel-helper-get-function-arity/package.json b/packages/babel-helper-get-function-arity/package.json index fbc1373dbdf0..1ed46aabd225 100644 --- a/packages/babel-helper-get-function-arity/package.json +++ b/packages/babel-helper-get-function-arity/package.json @@ -1,11 +1,14 @@ { "name": "@babel/helper-get-function-arity", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Helper function to get function arity", "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-get-function-arity", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "dependencies": { - "@babel/types": "7.0.0-beta.52" + "@babel/types": "^7.0.0" } } diff --git a/packages/babel-helper-hoist-variables/package.json b/packages/babel-helper-hoist-variables/package.json index 08f38fb22f5f..74c6e29d6b7d 100644 --- a/packages/babel-helper-hoist-variables/package.json +++ b/packages/babel-helper-hoist-variables/package.json @@ -1,11 +1,14 @@ { "name": "@babel/helper-hoist-variables", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Helper function to hoist variables", "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-hoist-variables", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "dependencies": { - "@babel/types": "7.0.0-beta.52" + "@babel/types": "^7.0.0" } } diff --git a/packages/babel-helper-member-expression-to-functions/package.json b/packages/babel-helper-member-expression-to-functions/package.json index 862bbed1bebc..6783f48cc9d2 100644 --- a/packages/babel-helper-member-expression-to-functions/package.json +++ b/packages/babel-helper-member-expression-to-functions/package.json @@ -1,12 +1,15 @@ { "name": "@babel/helper-member-expression-to-functions", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Helper function to replace certain member expressions with function calls", "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-member-expression-to-functions", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "author": "Justin Ridgewell ", "dependencies": { - "@babel/types": "7.0.0-beta.52" + "@babel/types": "^7.0.0" } } diff --git a/packages/babel-helper-module-imports/package.json b/packages/babel-helper-module-imports/package.json index c6ce4c27c241..e740d2f546bb 100644 --- a/packages/babel-helper-module-imports/package.json +++ b/packages/babel-helper-module-imports/package.json @@ -1,17 +1,19 @@ { "name": "@babel/helper-module-imports", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Babel helper functions for inserting module loads", "author": "Logan Smyth ", "homepage": "https://babeljs.io/", "license": "MIT", + "publishConfig": { + "access": "public" + }, "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-module-imports", "main": "lib/index.js", "dependencies": { - "@babel/types": "7.0.0-beta.52", - "lodash": "^4.17.5" + "@babel/types": "^7.0.0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52" + "@babel/core": "^7.0.0" } } diff --git a/packages/babel-helper-module-imports/src/import-builder.js b/packages/babel-helper-module-imports/src/import-builder.js index 95b2c9a3833a..7513c8549324 100644 --- a/packages/babel-helper-module-imports/src/import-builder.js +++ b/packages/babel-helper-module-imports/src/import-builder.js @@ -10,11 +10,11 @@ export default class ImportBuilder { _resultName = null; _scope = null; - _file = null; + _hub = null; - constructor(importedSource, scope, file) { + constructor(importedSource, scope, hub) { this._scope = scope; - this._file = file; + this._hub = hub; this._importedSource = importedSource; } @@ -91,10 +91,10 @@ export default class ImportBuilder { } defaultInterop() { - return this._interop(this._file.addHelper("interopRequireDefault")); + return this._interop(this._hub.addHelper("interopRequireDefault")); } wildcardInterop() { - return this._interop(this._file.addHelper("interopRequireWildcard")); + return this._interop(this._hub.addHelper("interopRequireWildcard")); } _interop(callee) { diff --git a/packages/babel-helper-module-imports/src/import-injector.js b/packages/babel-helper-module-imports/src/import-injector.js index 5574ba2a3236..0e38f9188ab9 100644 --- a/packages/babel-helper-module-imports/src/import-injector.js +++ b/packages/babel-helper-module-imports/src/import-injector.js @@ -108,7 +108,7 @@ export default class ImportInjector { /** * The file used to inject helpers and resolve paths. */ - _file; + _hub; /** * The default options to use with this instance when imports are added. @@ -127,7 +127,7 @@ export default class ImportInjector { this._programPath = programPath; this._programScope = programPath.scope; - this._file = programPath.hub.file; + this._hub = programPath.hub; this._defaultOpts = this._applyDefaults(importedSource, opts, true); } @@ -218,7 +218,7 @@ export default class ImportInjector { const builder = new ImportBuilder( importedSource, this._programScope, - this._file, + this._hub, ); if (importedType === "es6") { diff --git a/packages/babel-helper-module-imports/test/index.js b/packages/babel-helper-module-imports/test/index.js index 5d7ba0fb3eaa..9320fe5c6f16 100644 --- a/packages/babel-helper-module-imports/test/index.js +++ b/packages/babel-helper-module-imports/test/index.js @@ -18,7 +18,12 @@ function test(sourceType, opts, initializer, expectedCode) { function({ types: t }) { return { pre(file) { - file.set("helpersNamespace", t.identifier("babelHelpers")); + file.set("helperGenerator", name => + t.memberExpression( + t.identifier("babelHelpers"), + t.identifier(name), + ), + ); }, visitor: { Program(path) { diff --git a/packages/babel-helper-module-transforms/package.json b/packages/babel-helper-module-transforms/package.json index a790839118b1..4df315528955 100644 --- a/packages/babel-helper-module-transforms/package.json +++ b/packages/babel-helper-module-transforms/package.json @@ -1,18 +1,21 @@ { "name": "@babel/helper-module-transforms", - "version": "7.0.0-beta.52", + "version": "7.1.0", "description": "Babel helper functions for implementing ES6 module transformations", "author": "Logan Smyth ", "homepage": "https://babeljs.io/", "license": "MIT", + "publishConfig": { + "access": "public" + }, "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-module-transforms", "main": "lib/index.js", "dependencies": { - "@babel/helper-module-imports": "7.0.0-beta.52", - "@babel/helper-simple-access": "7.0.0-beta.52", - "@babel/helper-split-export-declaration": "7.0.0-beta.52", - "@babel/template": "7.0.0-beta.52", - "@babel/types": "7.0.0-beta.52", - "lodash": "^4.17.5" + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-simple-access": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0", + "lodash": "^4.17.10" } } diff --git a/packages/babel-helper-module-transforms/src/index.js b/packages/babel-helper-module-transforms/src/index.js index 859b63989fe3..5735ad951e8d 100644 --- a/packages/babel-helper-module-transforms/src/index.js +++ b/packages/babel-helper-module-transforms/src/index.js @@ -112,7 +112,7 @@ export function wrapInterop( throw new Error(`Unknown interop: ${type}`); } - return t.callExpression(programPath.hub.file.addHelper(helper), [expr]); + return t.callExpression(programPath.hub.addHelper(helper), [expr]); } /** diff --git a/packages/babel-helper-module-transforms/src/normalize-and-load-metadata.js b/packages/babel-helper-module-transforms/src/normalize-and-load-metadata.js index 8ffda284447e..3f2f86dfdd5a 100644 --- a/packages/babel-helper-module-transforms/src/normalize-and-load-metadata.js +++ b/packages/babel-helper-module-transforms/src/normalize-and-load-metadata.js @@ -246,12 +246,18 @@ function getModuleMetadata( }); for (const metadata of sourceData.values()) { - if (metadata.importsNamespace.size > 0) { - metadata.interop = "namespace"; - continue; - } let needsDefault = false; let needsNamed = false; + + if (metadata.importsNamespace.size > 0) { + needsDefault = true; + needsNamed = true; + } + + if (metadata.reexportAll) { + needsNamed = true; + } + for (const importName of metadata.imports.values()) { if (importName === "default") needsDefault = true; else needsNamed = true; diff --git a/packages/babel-helper-optimise-call-expression/package.json b/packages/babel-helper-optimise-call-expression/package.json index 1d9f482dc026..f048cd350075 100644 --- a/packages/babel-helper-optimise-call-expression/package.json +++ b/packages/babel-helper-optimise-call-expression/package.json @@ -1,11 +1,14 @@ { "name": "@babel/helper-optimise-call-expression", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Helper function to optimise call expression", "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-optimise-call-expression", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "dependencies": { - "@babel/types": "7.0.0-beta.52" + "@babel/types": "^7.0.0" } } diff --git a/packages/babel-helper-plugin-test-runner/package.json b/packages/babel-helper-plugin-test-runner/package.json index 87a85cec193a..0a1dfe671fad 100644 --- a/packages/babel-helper-plugin-test-runner/package.json +++ b/packages/babel-helper-plugin-test-runner/package.json @@ -1,11 +1,14 @@ { "name": "@babel/helper-plugin-test-runner", - "version": "7.0.0-beta.52", + "version": "7.1.0", "description": "Helper function to support test runner", "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-plugin-test-runner", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "dependencies": { - "@babel/helper-transform-fixture-test-runner": "7.0.0-beta.52" + "@babel/helper-transform-fixture-test-runner": "^7.1.0" } } diff --git a/packages/babel-helper-plugin-utils/package.json b/packages/babel-helper-plugin-utils/package.json index 85af494b503e..b35e4dbd1139 100644 --- a/packages/babel-helper-plugin-utils/package.json +++ b/packages/babel-helper-plugin-utils/package.json @@ -1,10 +1,13 @@ { "name": "@babel/helper-plugin-utils", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "General utilities for plugins to use", "author": "Logan Smyth ", "homepage": "https://babeljs.io/", "license": "MIT", + "publishConfig": { + "access": "public" + }, "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-plugin-utils", "main": "lib/index.js" } diff --git a/packages/babel-helper-regex/package.json b/packages/babel-helper-regex/package.json index 2178b8615edd..a7fa3c2b762c 100644 --- a/packages/babel-helper-regex/package.json +++ b/packages/babel-helper-regex/package.json @@ -1,11 +1,14 @@ { "name": "@babel/helper-regex", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Helper function to check for literal RegEx", "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-regex", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "dependencies": { - "lodash": "^4.17.5" + "lodash": "^4.17.10" } } diff --git a/packages/babel-helper-remap-async-to-generator/package.json b/packages/babel-helper-remap-async-to-generator/package.json index 2cffd3823650..fb44a863a9c1 100644 --- a/packages/babel-helper-remap-async-to-generator/package.json +++ b/packages/babel-helper-remap-async-to-generator/package.json @@ -1,15 +1,18 @@ { "name": "@babel/helper-remap-async-to-generator", - "version": "7.0.0-beta.52", + "version": "7.1.0", "description": "Helper function to remap async functions to generators", "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-remap-async-to-generator", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "dependencies": { - "@babel/helper-annotate-as-pure": "7.0.0-beta.52", - "@babel/helper-wrap-function": "7.0.0-beta.52", - "@babel/template": "7.0.0-beta.52", - "@babel/traverse": "7.0.0-beta.52", - "@babel/types": "7.0.0-beta.52" + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-wrap-function": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" } } diff --git a/packages/babel-helper-replace-supers/package.json b/packages/babel-helper-replace-supers/package.json index 163a64047ad3..23fe71896e59 100644 --- a/packages/babel-helper-replace-supers/package.json +++ b/packages/babel-helper-replace-supers/package.json @@ -1,14 +1,17 @@ { "name": "@babel/helper-replace-supers", - "version": "7.0.0-beta.52", + "version": "7.1.0", "description": "Helper function to replace supers", "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-replace-supers", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "dependencies": { - "@babel/helper-member-expression-to-functions": "7.0.0-beta.52", - "@babel/helper-optimise-call-expression": "7.0.0-beta.52", - "@babel/traverse": "7.0.0-beta.52", - "@babel/types": "7.0.0-beta.52" + "@babel/helper-member-expression-to-functions": "^7.0.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" } } diff --git a/packages/babel-helper-simple-access/package.json b/packages/babel-helper-simple-access/package.json index c0280d58324b..51a8abba2b7a 100644 --- a/packages/babel-helper-simple-access/package.json +++ b/packages/babel-helper-simple-access/package.json @@ -1,15 +1,17 @@ { "name": "@babel/helper-simple-access", - "version": "7.0.0-beta.52", + "version": "7.1.0", "description": "Babel helper for ensuring that access to a given value is performed through simple accesses", "author": "Logan Smyth ", "homepage": "https://babeljs.io/", "license": "MIT", + "publishConfig": { + "access": "public" + }, "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-simple-access", "main": "lib/index.js", "dependencies": { - "@babel/template": "7.0.0-beta.52", - "@babel/types": "7.0.0-beta.52", - "lodash": "^4.17.5" + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" } } diff --git a/packages/babel-helper-split-export-declaration/package.json b/packages/babel-helper-split-export-declaration/package.json index 18583d85919a..5a449d06a82d 100644 --- a/packages/babel-helper-split-export-declaration/package.json +++ b/packages/babel-helper-split-export-declaration/package.json @@ -1,11 +1,14 @@ { "name": "@babel/helper-split-export-declaration", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "", "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-split-export-declaration", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "dependencies": { - "@babel/types": "7.0.0-beta.52" + "@babel/types": "^7.0.0" } } diff --git a/packages/babel-helper-transform-fixture-test-runner/package.json b/packages/babel-helper-transform-fixture-test-runner/package.json index 3ea7d8913d25..2379b8202055 100644 --- a/packages/babel-helper-transform-fixture-test-runner/package.json +++ b/packages/babel-helper-transform-fixture-test-runner/package.json @@ -1,20 +1,24 @@ { "name": "@babel/helper-transform-fixture-test-runner", - "version": "7.0.0-beta.52", + "version": "7.1.2", "description": "Transform test runner for @babel/helper-fixtures module", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", "license": "MIT", + "publishConfig": { + "access": "public" + }, "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-transform-fixture-test-runner", "main": "lib/index.js", "dependencies": { - "@babel/code-frame": "7.0.0-beta.52", - "@babel/core": "7.0.0-beta.52", - "@babel/helper-fixtures": "7.0.0-beta.52", - "@babel/polyfill": "7.0.0-beta.52", + "@babel/code-frame": "^7.0.0", + "@babel/core": "^7.1.2", + "@babel/helper-fixtures": "^7.0.0", + "@babel/polyfill": "^7.0.0", + "babel-check-duplicated-nodes": "^1.0.0", "jest": "^22.4.2", "jest-diff": "^22.4.0", - "lodash": "^4.17.5", + "lodash": "^4.17.10", "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 06b6121ae628..a83e8ff1c61b 100644 --- a/packages/babel-helper-transform-fixture-test-runner/src/index.js +++ b/packages/babel-helper-transform-fixture-test-runner/src/index.js @@ -6,6 +6,7 @@ import sourceMap from "source-map"; import { codeFrameColumns } from "@babel/code-frame"; import defaults from "lodash/defaults"; import includes from "lodash/includes"; +import escapeRegExp from "lodash/escapeRegExp"; import * as helpers from "./helpers"; import extend from "lodash/extend"; import merge from "lodash/merge"; @@ -14,6 +15,7 @@ import assert from "assert"; import fs from "fs"; import path from "path"; import vm from "vm"; +import checkDuplicatedNodes from "babel-check-duplicated-nodes"; import diff from "jest-diff"; @@ -117,56 +119,14 @@ function wrapPackagesArray(type, names, optionsDir) { val[0] = path.resolve(optionsDir, val[0]); } else { - // check node_modules/babel-x-y - val[0] = __dirname + "/../../babel-" + type + "-" + val[0]; - } - - return val; - }); -} - -function checkDuplicatedNodes(ast) { - const nodes = new WeakSet(); - const parents = new WeakMap(); + const monorepoPath = __dirname + "/../../babel-" + type + "-" + val[0]; - const setParent = (child, parent) => { - if (typeof child === "object" && child !== null) { - let p = parents.get(child); - if (!p) { - p = []; - parents.set(child, p); + if (fs.existsSync(monorepoPath)) { + val[0] = monorepoPath; } - p.unshift(parent); } - }; - const registerChildren = node => { - for (const key in node) { - if (Array.isArray(node[key])) { - node[key].forEach(child => setParent(child, node)); - } else { - setParent(node[key], node); - } - } - }; - const hidePrivateProperties = (key, val) => { - // Hides properties like _shadowedFunctionLiteral, - // which makes the AST circular - if (key[0] === "_") return "[Private]"; return val; - }; - - babel.types.traverseFast(ast, node => { - registerChildren(node); - if (nodes.has(node)) { - throw new Error( - "Do not reuse nodes. Use `t.cloneNode` to copy them.\n" + - JSON.stringify(node, hidePrivateProperties, 2) + - "\nParent:\n" + - JSON.stringify(parents.get(node), hidePrivateProperties, 2), - ); - } - nodes.add(node); }); } @@ -180,7 +140,7 @@ function run(task) { function getOpts(self) { const newOpts = merge( { - cwd: path.dirname(self.filename), + cwd: path.dirname(self.loc), filename: self.loc, filenameRelative: self.filename, sourceFileName: self.filename, @@ -218,7 +178,7 @@ function run(task) { if (execCode) { const execOpts = getOpts(exec); result = babel.transform(execCode, execOpts); - checkDuplicatedNodes(result.ast); + checkDuplicatedNodes(babel, result.ast); execCode = result.code; try { @@ -235,10 +195,15 @@ function run(task) { const expectCode = expected.code; if (!execCode || actualCode) { result = babel.transform(actualCode, getOpts(actual)); - checkDuplicatedNodes(result.ast); + const expectedCode = result.code.replace( + escapeRegExp(path.resolve(__dirname, "../../../")), + "", + ); + + checkDuplicatedNodes(babel, result.ast); if ( !expected.code && - result.code && + expectedCode && !opts.throws && fs.statSync(path.dirname(expected.loc)).isDirectory() && !process.env.CI @@ -249,7 +214,7 @@ function run(task) { ); console.log(`New test file created: ${expectedFile}`); - fs.writeFileSync(expectedFile, `${result.code}\n`); + fs.writeFileSync(expectedFile, `${expectedCode}\n`); if (expected.loc !== expectedFile) { try { @@ -257,7 +222,7 @@ function run(task) { } catch (e) {} } } else { - actualCode = result.code.trim(); + actualCode = expectedCode.trim(); try { expect(actualCode).toEqualFile({ filename: expected.loc, @@ -267,7 +232,7 @@ function run(task) { if (!process.env.OVERWRITE) throw e; console.log(`Updated test file: ${expected.loc}`); - fs.writeFileSync(expected.loc, `${result.code}\n`); + fs.writeFileSync(expected.loc, `${expectedCode}\n`); } if (actualCode) { @@ -345,44 +310,44 @@ export default function( continue; } - it( + const testFn = task.disabled ? it.skip : it; + + testFn( task.title, - !task.disabled && - function() { - function runTask() { - run(task); - } - defaults(task.options, { - sourceMap: !!(task.sourceMappings || task.sourceMap), - }); + function() { + function runTask() { + run(task); + } - extend(task.options, taskOpts); + defaults(task.options, { + sourceMap: !!(task.sourceMappings || task.sourceMap), + }); - if (dynamicOpts) dynamicOpts(task.options, task); + extend(task.options, taskOpts); - const throwMsg = task.options.throws; - if (throwMsg) { - // internal api doesn't have this option but it's best not to pollute - // the options object with useless options - delete task.options.throws; + if (dynamicOpts) dynamicOpts(task.options, task); - assert.throws(runTask, function(err) { - return ( - throwMsg === true || err.message.indexOf(throwMsg) >= 0 - ); - }); - } else { - if (task.exec.code) { - const result = run(task); - if (result && typeof result.then === "function") { - return result; - } - } else { - runTask(); + const throwMsg = task.options.throws; + if (throwMsg) { + // internal api doesn't have this option but it's best not to pollute + // the options object with useless options + delete task.options.throws; + + assert.throws(runTask, function(err) { + return throwMsg === true || err.message.indexOf(throwMsg) >= 0; + }); + } else { + if (task.exec.code) { + const result = run(task); + if (result && typeof result.then === "function") { + return result; } + } else { + runTask(); } - }, + } + }, ); } }); diff --git a/packages/babel-helper-wrap-function/package.json b/packages/babel-helper-wrap-function/package.json index e8d34d685b14..b563d6125aa3 100644 --- a/packages/babel-helper-wrap-function/package.json +++ b/packages/babel-helper-wrap-function/package.json @@ -1,14 +1,17 @@ { "name": "@babel/helper-wrap-function", - "version": "7.0.0-beta.52", + "version": "7.1.0", "description": "Helper to wrap functions inside a function call.", "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-wrap-function", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "dependencies": { - "@babel/helper-function-name": "7.0.0-beta.52", - "@babel/template": "7.0.0-beta.52", - "@babel/traverse": "7.0.0-beta.52", - "@babel/types": "7.0.0-beta.52" + "@babel/helper-function-name": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" } } diff --git a/packages/babel-helpers/package.json b/packages/babel-helpers/package.json index 4034628d876f..01035a1af661 100644 --- a/packages/babel-helpers/package.json +++ b/packages/babel-helpers/package.json @@ -1,18 +1,21 @@ { "name": "@babel/helpers", - "version": "7.0.0-beta.52", + "version": "7.1.2", "description": "Collection of helper functions used by Babel transforms.", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", "license": "MIT", + "publishConfig": { + "access": "public" + }, "repository": "https://github.com/babel/babel/tree/master/packages/babel-helpers", "main": "lib/index.js", "dependencies": { - "@babel/template": "7.0.0-beta.52", - "@babel/traverse": "7.0.0-beta.52", - "@babel/types": "7.0.0-beta.52" + "@babel/template": "^7.1.2", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.1.2" }, "devDependencies": { - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-helpers/src/helpers.js b/packages/babel-helpers/src/helpers.js index d25bdecb8e2d..5549bfde42a7 100644 --- a/packages/babel-helpers/src/helpers.js +++ b/packages/babel-helpers/src/helpers.js @@ -1,9 +1,16 @@ +// @flow + import template from "@babel/template"; -const helpers = {}; +const helpers = Object.create(null); export default helpers; -helpers.typeof = () => template.program.ast` +const helper = (minVersion: string) => tpl => ({ + minVersion, + ast: () => template.program.ast(tpl), +}); + +helpers.typeof = helper("7.0.0-beta.0")` export default function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function (obj) { return typeof obj; }; @@ -19,7 +26,7 @@ helpers.typeof = () => template.program.ast` } `; -helpers.jsx = () => template.program.ast` +helpers.jsx = helper("7.0.0-beta.0")` var REACT_ELEMENT_TYPE; export default function _createRawReactElement(type, props, key, children) { @@ -70,7 +77,7 @@ helpers.jsx = () => template.program.ast` } `; -helpers.asyncIterator = () => template.program.ast` +helpers.asyncIterator = helper("7.0.0-beta.0")` export default function _asyncIterator(iterable) { var method if (typeof Symbol === "function") { @@ -87,13 +94,13 @@ helpers.asyncIterator = () => template.program.ast` } `; -helpers.AwaitValue = () => template.program.ast` +helpers.AwaitValue = helper("7.0.0-beta.0")` export default function _AwaitValue(value) { this.wrapped = value; } `; -helpers.AsyncGenerator = () => template.program.ast` +helpers.AsyncGenerator = helper("7.0.0-beta.0")` import AwaitValue from "AwaitValue"; export default function AsyncGenerator(gen) { @@ -177,7 +184,7 @@ helpers.AsyncGenerator = () => template.program.ast` AsyncGenerator.prototype.return = function (arg) { return this._invoke("return", arg); }; `; -helpers.wrapAsyncGenerator = () => template.program.ast` +helpers.wrapAsyncGenerator = helper("7.0.0-beta.0")` import AsyncGenerator from "AsyncGenerator"; export default function _wrapAsyncGenerator(fn) { @@ -187,7 +194,7 @@ helpers.wrapAsyncGenerator = () => template.program.ast` } `; -helpers.awaitAsyncGenerator = () => template.program.ast` +helpers.awaitAsyncGenerator = helper("7.0.0-beta.0")` import AwaitValue from "AwaitValue"; export default function _awaitAsyncGenerator(value) { @@ -195,7 +202,7 @@ helpers.awaitAsyncGenerator = () => template.program.ast` } `; -helpers.asyncGeneratorDelegate = () => template.program.ast` +helpers.asyncGeneratorDelegate = helper("7.0.0-beta.0")` export default function _asyncGeneratorDelegate(inner, awaitWrap) { var iter = {}, waiting = false; @@ -237,7 +244,7 @@ helpers.asyncGeneratorDelegate = () => template.program.ast` } `; -helpers.asyncToGenerator = () => template.program.ast` +helpers.asyncToGenerator = helper("7.0.0-beta.0")` function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); @@ -272,7 +279,7 @@ helpers.asyncToGenerator = () => template.program.ast` } `; -helpers.classCallCheck = () => template.program.ast` +helpers.classCallCheck = helper("7.0.0-beta.0")` export default function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); @@ -280,7 +287,7 @@ helpers.classCallCheck = () => template.program.ast` } `; -helpers.createClass = () => template.program.ast` +helpers.createClass = helper("7.0.0-beta.0")` function _defineProperties(target, props) { for (var i = 0; i < props.length; i ++) { var descriptor = props[i]; @@ -298,7 +305,7 @@ helpers.createClass = () => template.program.ast` } `; -helpers.defineEnumerableProperties = () => template.program.ast` +helpers.defineEnumerableProperties = helper("7.0.0-beta.0")` export default function _defineEnumerableProperties(obj, descs) { for (var key in descs) { var desc = descs[key]; @@ -324,7 +331,7 @@ helpers.defineEnumerableProperties = () => template.program.ast` } `; -helpers.defaults = () => template.program.ast` +helpers.defaults = helper("7.0.0-beta.0")` export default function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { @@ -338,7 +345,7 @@ helpers.defaults = () => template.program.ast` } `; -helpers.defineProperty = () => template.program.ast` +helpers.defineProperty = helper("7.0.0-beta.0")` export default function _defineProperty(obj, key, value) { // Shortcircuit the slow defineProperty path when possible. // We are trying to avoid issues where setters defined on the @@ -359,7 +366,7 @@ helpers.defineProperty = () => template.program.ast` } `; -helpers.extends = () => template.program.ast` +helpers.extends = helper("7.0.0-beta.0")` export default function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { @@ -377,7 +384,7 @@ helpers.extends = () => template.program.ast` } `; -helpers.objectSpread = () => template.program.ast` +helpers.objectSpread = helper("7.0.0-beta.0")` import defineProperty from "defineProperty"; export default function _objectSpread(target) { @@ -397,7 +404,7 @@ helpers.objectSpread = () => template.program.ast` } `; -helpers.inherits = () => template.program.ast` +helpers.inherits = helper("7.0.0-beta.0")` import setPrototypeOf from "setPrototypeOf"; export default function _inherits(subClass, superClass) { @@ -415,7 +422,7 @@ helpers.inherits = () => template.program.ast` } `; -helpers.inheritsLoose = () => template.program.ast` +helpers.inheritsLoose = helper("7.0.0-beta.0")` export default function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; @@ -423,7 +430,7 @@ helpers.inheritsLoose = () => template.program.ast` } `; -helpers.getPrototypeOf = () => template.program.ast` +helpers.getPrototypeOf = helper("7.0.0-beta.0")` export default function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf @@ -434,7 +441,7 @@ helpers.getPrototypeOf = () => template.program.ast` } `; -helpers.setPrototypeOf = () => template.program.ast` +helpers.setPrototypeOf = helper("7.0.0-beta.0")` export default function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; @@ -444,7 +451,7 @@ helpers.setPrototypeOf = () => template.program.ast` } `; -helpers.construct = () => template.program.ast` +helpers.construct = helper("7.0.0-beta.0")` import setPrototypeOf from "setPrototypeOf"; function isNativeReflectConstruct() { @@ -476,6 +483,8 @@ helpers.construct = () => template.program.ast` if (isNativeReflectConstruct()) { _construct = Reflect.construct; } else { + // NOTE: If Parent !== Class, the correct __proto__ is set *after* + // calling the constructor. _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); @@ -491,17 +500,25 @@ helpers.construct = () => template.program.ast` } `; +helpers.isNativeFunction = helper("7.0.0-beta.0")` + export default function _isNativeFunction(fn) { + // Note: This function returns "true" for core-js functions. + return Function.toString.call(fn).indexOf("[native code]") !== -1; + } +`; + // Based on https://github.com/WebReflection/babel-plugin-transform-builtin-classes -helpers.wrapNativeSuper = () => template.program.ast` +helpers.wrapNativeSuper = helper("7.0.0-beta.0")` import getPrototypeOf from "getPrototypeOf"; import setPrototypeOf from "setPrototypeOf"; + import isNativeFunction from "isNativeFunction"; import construct from "construct"; export default function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { - if (Class === null) return null; + if (Class === null || !isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } @@ -528,7 +545,7 @@ helpers.wrapNativeSuper = () => template.program.ast` } `; -helpers.instanceof = () => template.program.ast` +helpers.instanceof = helper("7.0.0-beta.0")` export default function _instanceof(left, right) { if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) { return right[Symbol.hasInstance](left); @@ -538,13 +555,13 @@ helpers.instanceof = () => template.program.ast` } `; -helpers.interopRequireDefault = () => template.program.ast` +helpers.interopRequireDefault = helper("7.0.0-beta.0")` export default function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } `; -helpers.interopRequireWildcard = () => template.program.ast` +helpers.interopRequireWildcard = helper("7.0.0-beta.0")` export default function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; @@ -570,7 +587,7 @@ helpers.interopRequireWildcard = () => template.program.ast` } `; -helpers.newArrowCheck = () => template.program.ast` +helpers.newArrowCheck = helper("7.0.0-beta.0")` export default function _newArrowCheck(innerThis, boundThis) { if (innerThis !== boundThis) { throw new TypeError("Cannot instantiate an arrow function"); @@ -578,13 +595,13 @@ helpers.newArrowCheck = () => template.program.ast` } `; -helpers.objectDestructuringEmpty = () => template.program.ast` +helpers.objectDestructuringEmpty = helper("7.0.0-beta.0")` export default function _objectDestructuringEmpty(obj) { if (obj == null) throw new TypeError("Cannot destructure undefined"); } `; -helpers.objectWithoutPropertiesLoose = () => template.program.ast` +helpers.objectWithoutPropertiesLoose = helper("7.0.0-beta.0")` export default function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; @@ -602,7 +619,7 @@ helpers.objectWithoutPropertiesLoose = () => template.program.ast` } `; -helpers.objectWithoutProperties = () => template.program.ast` +helpers.objectWithoutProperties = helper("7.0.0-beta.0")` import objectWithoutPropertiesLoose from "objectWithoutPropertiesLoose"; export default function _objectWithoutProperties(source, excluded) { @@ -625,7 +642,7 @@ helpers.objectWithoutProperties = () => template.program.ast` } `; -helpers.assertThisInitialized = () => template.program.ast` +helpers.assertThisInitialized = helper("7.0.0-beta.0")` export default function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); @@ -634,7 +651,7 @@ helpers.assertThisInitialized = () => template.program.ast` } `; -helpers.possibleConstructorReturn = () => template.program.ast` +helpers.possibleConstructorReturn = helper("7.0.0-beta.0")` import assertThisInitialized from "assertThisInitialized"; export default function _possibleConstructorReturn(self, call) { @@ -645,7 +662,7 @@ helpers.possibleConstructorReturn = () => template.program.ast` } `; -helpers.superPropBase = () => template.program.ast` +helpers.superPropBase = helper("7.0.0-beta.0")` import getPrototypeOf from "getPrototypeOf"; export default function _superPropBase(object, property) { @@ -658,7 +675,7 @@ helpers.superPropBase = () => template.program.ast` } `; -helpers.get = () => template.program.ast` +helpers.get = helper("7.0.0-beta.0")` import getPrototypeOf from "getPrototypeOf"; import superPropBase from "superPropBase"; @@ -683,7 +700,7 @@ helpers.get = () => template.program.ast` } `; -helpers.set = () => template.program.ast` +helpers.set = helper("7.0.0-beta.0")` import getPrototypeOf from "getPrototypeOf"; import superPropBase from "superPropBase"; import defineProperty from "defineProperty"; @@ -741,7 +758,7 @@ helpers.set = () => template.program.ast` } `; -helpers.taggedTemplateLiteral = () => template.program.ast` +helpers.taggedTemplateLiteral = helper("7.0.0-beta.0")` export default function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { @@ -750,7 +767,7 @@ helpers.taggedTemplateLiteral = () => template.program.ast` } `; -helpers.taggedTemplateLiteralLoose = () => template.program.ast` +helpers.taggedTemplateLiteralLoose = helper("7.0.0-beta.0")` export default function _taggedTemplateLiteralLoose(strings, raw) { if (!raw) { raw = strings.slice(0); } strings.raw = raw; @@ -758,7 +775,7 @@ helpers.taggedTemplateLiteralLoose = () => template.program.ast` } `; -helpers.temporalRef = () => template.program.ast` +helpers.temporalRef = helper("7.0.0-beta.0")` import undef from "temporalUndefined"; export default function _temporalRef(val, name) { @@ -770,23 +787,23 @@ helpers.temporalRef = () => template.program.ast` } `; -helpers.readOnlyError = () => template.program.ast` +helpers.readOnlyError = helper("7.0.0-beta.0")` export default function _readOnlyError(name) { throw new Error("\\"" + name + "\\" is read-only"); } `; -helpers.classNameTDZError = () => template.program.ast` +helpers.classNameTDZError = helper("7.0.0-beta.0")` export default function _classNameTDZError(name) { throw new Error("Class \\"" + name + "\\" cannot be referenced in computed property keys."); } `; -helpers.temporalUndefined = () => template.program.ast` +helpers.temporalUndefined = helper("7.0.0-beta.0")` export default {}; `; -helpers.slicedToArray = () => template.program.ast` +helpers.slicedToArray = helper("7.0.0-beta.0")` import arrayWithHoles from "arrayWithHoles"; import iterableToArrayLimit from "iterableToArrayLimit"; import nonIterableRest from "nonIterableRest"; @@ -796,7 +813,7 @@ helpers.slicedToArray = () => template.program.ast` } `; -helpers.slicedToArrayLoose = () => template.program.ast` +helpers.slicedToArrayLoose = helper("7.0.0-beta.0")` import arrayWithHoles from "arrayWithHoles"; import iterableToArrayLimitLoose from "iterableToArrayLimitLoose"; import nonIterableRest from "nonIterableRest"; @@ -806,7 +823,7 @@ helpers.slicedToArrayLoose = () => template.program.ast` } `; -helpers.toArray = () => template.program.ast` +helpers.toArray = helper("7.0.0-beta.0")` import arrayWithHoles from "arrayWithHoles"; import iterableToArray from "iterableToArray"; import nonIterableRest from "nonIterableRest"; @@ -816,7 +833,7 @@ helpers.toArray = () => template.program.ast` } `; -helpers.toConsumableArray = () => template.program.ast` +helpers.toConsumableArray = helper("7.0.0-beta.0")` import arrayWithoutHoles from "arrayWithoutHoles"; import iterableToArray from "iterableToArray"; import nonIterableSpread from "nonIterableSpread"; @@ -826,7 +843,7 @@ helpers.toConsumableArray = () => template.program.ast` } `; -helpers.arrayWithoutHoles = () => template.program.ast` +helpers.arrayWithoutHoles = helper("7.0.0-beta.0")` export default function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; @@ -835,13 +852,13 @@ helpers.arrayWithoutHoles = () => template.program.ast` } `; -helpers.arrayWithHoles = () => template.program.ast` +helpers.arrayWithHoles = helper("7.0.0-beta.0")` export default function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } `; -helpers.iterableToArray = () => template.program.ast` +helpers.iterableToArray = helper("7.0.0-beta.0")` export default function _iterableToArray(iter) { if ( Symbol.iterator in Object(iter) || @@ -850,7 +867,7 @@ helpers.iterableToArray = () => template.program.ast` } `; -helpers.iterableToArrayLimit = () => template.program.ast` +helpers.iterableToArrayLimit = helper("7.0.0-beta.0")` export default function _iterableToArrayLimit(arr, i) { // this is an expanded form of \`for...of\` that properly supports abrupt completions of // iterators etc. variable names have been minimised to reduce the size of this massive @@ -885,7 +902,7 @@ helpers.iterableToArrayLimit = () => template.program.ast` } `; -helpers.iterableToArrayLimitLoose = () => template.program.ast` +helpers.iterableToArrayLimitLoose = helper("7.0.0-beta.0")` export default function _iterableToArrayLimitLoose(arr, i) { var _arr = []; for (var _iterator = arr[Symbol.iterator](), _step; !(_step = _iterator.next()).done;) { @@ -896,19 +913,19 @@ helpers.iterableToArrayLimitLoose = () => template.program.ast` } `; -helpers.nonIterableSpread = () => template.program.ast` +helpers.nonIterableSpread = helper("7.0.0-beta.0")` export default function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } `; -helpers.nonIterableRest = () => template.program.ast` +helpers.nonIterableRest = helper("7.0.0-beta.0")` export default function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } `; -helpers.skipFirstGeneratorNext = () => template.program.ast` +helpers.skipFirstGeneratorNext = helper("7.0.0-beta.0")` export default function _skipFirstGeneratorNext(fn) { return function () { var it = fn.apply(this, arguments); @@ -918,13 +935,28 @@ helpers.skipFirstGeneratorNext = () => template.program.ast` } `; -helpers.toPropertyKey = () => template.program.ast` - export default function _toPropertyKey(key) { - if (typeof key === "symbol") { - return key; - } else { - return String(key); +helpers.toPrimitive = helper("7.1.5")` + export default function _toPrimitive( + input, + hint /*: "default" | "string" | "number" | void */ + ) { + if (typeof input !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (typeof res !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); } + return (hint === "string" ? String : Number)(input); + } +`; + +helpers.toPropertyKey = helper("7.1.5")` + import toPrimitive from "toPrimitive"; + + export default function _toPropertyKey(arg) { + var key = toPrimitive(arg, "string"); + return typeof key === "symbol" ? key : String(key); } `; @@ -932,7 +964,7 @@ helpers.toPropertyKey = () => template.program.ast` * Add a helper that will throw a useful error if the transform fails to detect the class * property assignment, so users know something failed. */ -helpers.initializerWarningHelper = () => template.program.ast` +helpers.initializerWarningHelper = helper("7.0.0-beta.0")` export default function _initializerWarningHelper(descriptor, context){ throw new Error( 'Decorating class property failed. Please ensure that ' + @@ -946,7 +978,7 @@ helpers.initializerWarningHelper = () => template.program.ast` /** * Add a helper to call as a replacement for class property definition. */ -helpers.initializerDefineProperty = () => template.program.ast` +helpers.initializerDefineProperty = helper("7.0.0-beta.0")` export default function _initializerDefineProperty(target, property, descriptor, context){ if (!descriptor) return; @@ -963,7 +995,7 @@ helpers.initializerDefineProperty = () => template.program.ast` * Add a helper to take an initial descriptor, apply some decorators to it, and optionally * define the property. */ -helpers.applyDecoratedDescriptor = () => template.program.ast` +helpers.applyDecoratedDescriptor = helper("7.0.0-beta.0")` export default function _applyDecoratedDescriptor(target, property, decorators, descriptor, context){ var desc = {}; Object['ke' + 'ys'](descriptor).forEach(function(key){ @@ -995,14 +1027,14 @@ helpers.applyDecoratedDescriptor = () => template.program.ast` } `; -helpers.classPrivateFieldLooseKey = () => template.program.ast` +helpers.classPrivateFieldLooseKey = helper("7.0.0-beta.0")` var id = 0; export default function _classPrivateFieldKey(name) { return "__private_" + (id++) + "_" + name; } `; -helpers.classPrivateFieldLooseBase = () => template.program.ast` +helpers.classPrivateFieldLooseBase = helper("7.0.0-beta.0")` export default function _classPrivateFieldBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError("attempted to use private field on non-instance"); @@ -1011,21 +1043,699 @@ helpers.classPrivateFieldLooseBase = () => template.program.ast` } `; -helpers.classPrivateFieldGet = () => template.program.ast` +helpers.classPrivateFieldGet = helper("7.0.0-beta.0")` export default function _classPrivateFieldGet(receiver, privateMap) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } - return privateMap.get(receiver); + return privateMap.get(receiver).value; } `; -helpers.classPrivateFieldSet = () => template.program.ast` +helpers.classPrivateFieldSet = helper("7.0.0-beta.0")` export default function _classPrivateFieldSet(receiver, privateMap, value) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to set private field on non-instance"); } - privateMap.set(receiver, value); + var descriptor = privateMap.get(receiver); + if (!descriptor.writable) { + // This should only throw in strict mode, but class bodies are + // always strict and private fields can only be used inside + // class bodies. + throw new TypeError("attempted to set read only private field"); + } + descriptor.value = value; + return value; + } +`; + +helpers.classStaticPrivateFieldSpecGet = helper("7.0.2")` + export default function _classStaticPrivateFieldSpecGet(receiver, classConstructor, descriptor) { + if (receiver !== classConstructor) { + throw new TypeError("Private static access of wrong provenance"); + } + return descriptor.value; + } +`; + +helpers.classStaticPrivateFieldSpecSet = helper("7.0.2")` + export default function _classStaticPrivateFieldSpecSet(receiver, classConstructor, descriptor, value) { + if (receiver !== classConstructor) { + throw new TypeError("Private static access of wrong provenance"); + } + if (!descriptor.writable) { + // This should only throw in strict mode, but class bodies are + // always strict and private fields can only be used inside + // class bodies. + throw new TypeError("attempted to set read only private field"); + } + descriptor.value = value; + return value; + } + +`; + +helpers.decorate = helper("7.1.5")` + import toArray from "toArray"; + import toPropertyKey from "toPropertyKey"; + + // These comments are stripped by @babel/template + /*:: + type PropertyDescriptor = + | { + value: any, + writable: boolean, + configurable: boolean, + enumerable: boolean, + } + | { + get?: () => any, + set?: (v: any) => void, + configurable: boolean, + enumerable: boolean, + }; + + type FieldDescriptor ={ + writable: boolean, + configurable: boolean, + enumerable: boolean, + }; + + type Placement = "static" | "prototype" | "own"; + type Key = string | symbol; // PrivateName is not supported yet. + + type ElementDescriptor = + | { + kind: "method", + key: Key, + placement: Placement, + descriptor: PropertyDescriptor + } + | { + kind: "field", + key: Key, + placement: Placement, + descriptor: FieldDescriptor, + initializer?: () => any, + }; + + // This is exposed to the user code + type ElementObjectInput = ElementDescriptor & { + [@@toStringTag]?: "Descriptor" + }; + + // This is exposed to the user code + type ElementObjectOutput = ElementDescriptor & { + [@@toStringTag]?: "Descriptor" + extras?: ElementDescriptor[], + finisher?: ClassFinisher, + }; + + // This is exposed to the user code + type ClassObject = { + [@@toStringTag]?: "Descriptor", + kind: "class", + elements: ElementDescriptor[], + }; + + type ElementDecorator = (descriptor: ElementObjectInput) => ?ElementObjectOutput; + type ClassDecorator = (descriptor: ClassObject) => ?ClassObject; + type ClassFinisher = (cl: Class) => Class; + + // Only used by Babel in the transform output, not part of the spec. + type ElementDefinition = + | { + kind: "method", + value: any, + key: Key, + static?: boolean, + decorators?: ElementDecorator[], + } + | { + kind: "field", + value: () => any, + key: Key, + static?: boolean, + decorators?: ElementDecorator[], + }; + + declare function ClassFactory(initialize: (instance: C) => void): { + F: Class, + d: ElementDefinition[] + } + + */ + + /*:: + // Various combinations with/without extras and with one or many finishers + + type ElementFinisherExtras = { + element: ElementDescriptor, + finisher?: ClassFinisher, + extras?: ElementDescriptor[], + }; + + type ElementFinishersExtras = { + element: ElementDescriptor, + finishers: ClassFinisher[], + extras: ElementDescriptor[], + }; + + type ElementsFinisher = { + elements: ElementDescriptor[], + finisher?: ClassFinisher, + }; + + type ElementsFinishers = { + elements: ElementDescriptor[], + finishers: ClassFinisher[], + }; + + */ + + // ClassDefinitionEvaluation (Steps 26-*) + export default function _decorate( + decorators /*: ClassDecorator[] */, + factory /*: ClassFactory */, + superClass /*: ?Class<*> */, + ) /*: Class<*> */ { + var r = factory(function initialize(O) { + _initializeInstanceElements(O, decorated.elements); + }, superClass); + var decorated = _decorateClass( + _coalesceClassElements(r.d.map(_createElementDescriptor)), + decorators, + ); + + _initializeClassElements(r.F, decorated.elements); + + return _runClassFinishers(r.F, decorated.finishers); + } + + // ClassElementEvaluation + function _createElementDescriptor( + def /*: ElementDefinition */, + ) /*: ElementDescriptor */ { + var key = toPropertyKey(def.key); + + var descriptor /*: PropertyDescriptor */; + if (def.kind === "method") { + descriptor = { + value: def.value, + writable: true, + configurable: true, + enumerable: false, + }; + Object.defineProperty(def.value, "name", { + value: typeof key === "symbol" ? "" : key, + configurable: true, + }); + } else if (def.kind === "get") { + descriptor = { get: def.value, configurable: true, enumerable: false }; + } else if (def.kind === "set") { + descriptor = { set: def.value, configurable: true, enumerable: false }; + } else if (def.kind === "field") { + descriptor = { configurable: true, writable: true, enumerable: true }; + } + + var element /*: ElementDescriptor */ = { + kind: def.kind === "field" ? "field" : "method", + key: key, + placement: def.static + ? "static" + : def.kind === "field" + ? "own" + : "prototype", + descriptor: descriptor, + }; + if (def.decorators) element.decorators = def.decorators; + if (def.kind === "field") element.initializer = def.value; + + return element; + } + + // CoalesceGetterSetter + function _coalesceGetterSetter( + element /*: ElementDescriptor */, + other /*: ElementDescriptor */, + ) { + if (element.descriptor.get !== undefined) { + other.descriptor.get = element.descriptor.get; + } else { + other.descriptor.set = element.descriptor.set; + } + } + + // CoalesceClassElements + function _coalesceClassElements( + elements /*: ElementDescriptor[] */, + ) /*: ElementDescriptor[] */ { + var newElements /*: ElementDescriptor[] */ = []; + + var isSameElement = function(other /*: ElementDescriptor */) /*: boolean */ { + return ( + other.kind === "method" && + other.key === element.key && + other.placement === element.placement + ); + }; + + for (var i = 0; i < elements.length; i++) { + var element /*: ElementDescriptor */ = elements[i]; + var other /*: ElementDescriptor */; + + if ( + element.kind === "method" && + (other = newElements.find(isSameElement)) + ) { + if ( + _isDataDescriptor(element.descriptor) || + _isDataDescriptor(other.descriptor) + ) { + if (_hasDecorators(element) || _hasDecorators(other)) { + throw new ReferenceError( + "Duplicated methods (" + element.key + ") can't be decorated.", + ); + } + other.descriptor = element.descriptor; + } else { + if (_hasDecorators(element)) { + if (_hasDecorators(other)) { + throw new ReferenceError( + "Decorators can't be placed on different accessors with for " + + "the same property (" + + element.key + + ").", + ); + } + other.decorators = element.decorators; + } + _coalesceGetterSetter(element, other); + } + } else { + newElements.push(element); + } + } + + return newElements; + } + + function _hasDecorators(element /*: ElementDescriptor */) /*: boolean */ { + return element.decorators && element.decorators.length; + } + + function _isDataDescriptor(desc /*: PropertyDescriptor */) /*: boolean */ { + return ( + desc !== undefined && + !(desc.value === undefined && desc.writable === undefined) + ); + } + + // InitializeClassElements + function _initializeClassElements /*::*/( + F /*: Class */, + elements /*: ElementDescriptor[] */, + ) { + var proto = F.prototype; + + ["method", "field"].forEach(function(kind) { + elements.forEach(function(element /*: ElementDescriptor */) { + var placement = element.placement; + if ( + element.kind === kind && + (placement === "static" || placement === "prototype") + ) { + var receiver = placement === "static" ? F : proto; + _defineClassElement(receiver, element); + } + }); + }); + } + + // InitializeInstanceElements + function _initializeInstanceElements /*::*/( + O /*: C */, + elements /*: ElementDescriptor[] */, + ) { + ["method", "field"].forEach(function(kind) { + elements.forEach(function(element /*: ElementDescriptor */) { + if (element.kind === kind && element.placement === "own") { + _defineClassElement(O, element); + } + }); + }); + } + + // DefineClassElement + function _defineClassElement /*::*/( + receiver /*: C | Class */, + element /*: ElementDescriptor */, + ) { + var descriptor /*: PropertyDescriptor */ = element.descriptor; + if (element.kind === "field") { + var initializer = element.initializer; + descriptor = { + enumerable: descriptor.enumerable, + writable: descriptor.writable, + configurable: descriptor.configurable, + value: initializer === void 0 ? void 0 : initializer.call(receiver), + }; + } + Object.defineProperty(receiver, element.key, descriptor); + } + + /*:: + + type Placements = { + static: Key[], + prototype: Key[], + own: Key[], + }; + + */ + + // DecorateClass + function _decorateClass( + elements /*: ElementDescriptor[] */, + decorators /*: ClassDecorator[] */, + ) /*: ElementsFinishers */ { + var newElements /*: ElementDescriptor[] */ = []; + var finishers /*: ClassFinisher[] */ = []; + var placements /*: Placements */ = { static: [], prototype: [], own: [] }; + + elements.forEach(function(element /*: ElementDescriptor */) { + _addElementPlacement(element, placements); + }); + + elements.forEach(function(element /*: ElementDescriptor */) { + if (!_hasDecorators(element)) return newElements.push(element); + + var elementFinishersExtras /*: ElementFinishersExtras */ = _decorateElement( + element, + placements, + ); + newElements.push(elementFinishersExtras.element); + newElements.push.apply(newElements, elementFinishersExtras.extras); + finishers.push.apply(finishers, elementFinishersExtras.finishers); + }); + + if (!decorators) { + return { elements: newElements, finishers: finishers }; + } + + var result /*: ElementsFinishers */ = _decorateConstructor( + newElements, + decorators, + ); + finishers.push.apply(finishers, result.finishers); + result.finishers = finishers; + + return result; + } + + // AddElementPlacement + function _addElementPlacement( + element /*: ElementDescriptor */, + placements /*: Placements */, + silent /*: boolean */, + ) { + var keys = placements[element.placement]; + if (!silent && keys.indexOf(element.key) !== -1) { + throw new TypeError("Duplicated element (" + element.key + ")"); + } + keys.push(element.key); + } + + // DecorateElement + function _decorateElement( + element /*: ElementDescriptor */, + placements /*: Placements */, + ) /*: ElementFinishersExtras */ { + var extras /*: ElementDescriptor[] */ = []; + var finishers /*: ClassFinisher[] */ = []; + + for ( + var decorators = element.decorators, i = decorators.length - 1; + i >= 0; + i-- + ) { + // (inlined) RemoveElementPlacement + var keys = placements[element.placement]; + keys.splice(keys.indexOf(element.key), 1); + + var elementObject /*: ElementObjectInput */ = _fromElementDescriptor( + element, + ); + var elementFinisherExtras /*: ElementFinisherExtras */ = _toElementFinisherExtras( + (0, decorators[i])(elementObject) /*: ElementObjectOutput */ || + elementObject, + ); + + element = elementFinisherExtras.element; + _addElementPlacement(element, placements); + + if (elementFinisherExtras.finisher) { + finishers.push(elementFinisherExtras.finisher); + } + + var newExtras /*: ElementDescriptor[] | void */ = + elementFinisherExtras.extras; + if (newExtras) { + for (var j = 0; j < newExtras.length; j++) { + _addElementPlacement(newExtras[j], placements); + } + extras.push.apply(extras, newExtras); + } + } + + return { element: element, finishers: finishers, extras: extras }; + } + + // DecorateConstructor + function _decorateConstructor( + elements /*: ElementDescriptor[] */, + decorators /*: ClassDecorator[] */, + ) /*: ElementsFinishers */ { + var finishers /*: ClassFinisher[] */ = []; + + for (var i = decorators.length - 1; i >= 0; i--) { + var obj /*: ClassObject */ = _fromClassDescriptor(elements); + var elementsAndFinisher /*: ElementsFinisher */ = _toClassDescriptor( + (0, decorators[i])(obj) /*: ClassObject */ || obj, + ); + + if (elementsAndFinisher.finisher !== undefined) { + finishers.push(elementsAndFinisher.finisher); + } + + if (elementsAndFinisher.elements !== undefined) { + elements = elementsAndFinisher.elements; + + for (var j = 0; j < elements.length - 1; j++) { + for (var k = j + 1; k < elements.length; k++) { + if ( + elements[j].key === elements[k].key && + elements[j].placement === elements[k].placement + ) { + throw new TypeError("Duplicated element (" + elements[j].key + ")"); + } + } + } + } + } + + return { elements: elements, finishers: finishers }; + } + + // FromElementDescriptor + function _fromElementDescriptor( + element /*: ElementDescriptor */, + ) /*: ElementObject */ { + var obj /*: ElementObject */ = { + kind: element.kind, + key: element.key, + placement: element.placement, + descriptor: element.descriptor, + }; + + var desc = { + value: "Descriptor", + configurable: true, + }; + Object.defineProperty(obj, Symbol.toStringTag, desc); + + if (element.kind === "field") obj.initializer = element.initializer; + + return obj; + } + + // ToElementDescriptors + function _toElementDescriptors( + elementObjects /*: ElementObject[] */, + ) /*: ElementDescriptor[] */ { + if (elementObjects === undefined) return; + return toArray(elementObjects).map(function(elementObject) { + var element = _toElementDescriptor(elementObject); + _disallowProperty(elementObject, "finisher", "An element descriptor"); + _disallowProperty(elementObject, "extras", "An element descriptor"); + return element; + }); + } + + // ToElementDescriptor + function _toElementDescriptor( + elementObject /*: ElementObject */, + ) /*: ElementDescriptor */ { + var kind = String(elementObject.kind); + if (kind !== "method" && kind !== "field") { + throw new TypeError( + 'An element descriptor\\'s .kind property must be either "method" or' + + ' "field", but a decorator created an element descriptor with' + + ' .kind "' + + kind + + '"', + ); + } + + var key = toPropertyKey(elementObject.key); + + var placement = String(elementObject.placement); + if ( + placement !== "static" && + placement !== "prototype" && + placement !== "own" + ) { + throw new TypeError( + 'An element descriptor\\'s .placement property must be one of "static",' + + ' "prototype" or "own", but a decorator created an element descriptor' + + ' with .placement "' + + placement + + '"', + ); + } + + var descriptor /*: PropertyDescriptor */ = elementObject.descriptor; + + _disallowProperty(elementObject, "elements", "An element descriptor"); + + var element /*: ElementDescriptor */ = { + kind: kind, + key: key, + placement: placement, + descriptor: Object.assign({}, descriptor), + }; + + if (kind !== "field") { + _disallowProperty(elementObject, "initializer", "A method descriptor"); + } else { + _disallowProperty( + descriptor, + "get", + "The property descriptor of a field descriptor", + ); + _disallowProperty( + descriptor, + "set", + "The property descriptor of a field descriptor", + ); + _disallowProperty( + descriptor, + "value", + "The property descriptor of a field descriptor", + ); + + element.initializer = elementObject.initializer; + } + + return element; + } + + function _toElementFinisherExtras( + elementObject /*: ElementObject */, + ) /*: ElementFinisherExtras */ { + var element /*: ElementDescriptor */ = _toElementDescriptor(elementObject); + var finisher /*: ClassFinisher */ = _optionalCallableProperty( + elementObject, + "finisher", + ); + var extras /*: ElementDescriptors[] */ = _toElementDescriptors( + elementObject.extras, + ); + + return { element: element, finisher: finisher, extras: extras }; + } + + // FromClassDescriptor + function _fromClassDescriptor( + elements /*: ElementDescriptor[] */, + ) /*: ClassObject */ { + var obj = { + kind: "class", + elements: elements.map(_fromElementDescriptor), + }; + + var desc = { value: "Descriptor", configurable: true }; + Object.defineProperty(obj, Symbol.toStringTag, desc); + + return obj; + } + + // ToClassDescriptor + function _toClassDescriptor(obj /*: ClassObject */) /*: ElementsFinisher */ { + var kind = String(obj.kind); + if (kind !== "class") { + throw new TypeError( + 'A class descriptor\\'s .kind property must be "class", but a decorator' + + ' created a class descriptor with .kind "' + + kind + + '"', + ); + } + + _disallowProperty(obj, "key", "A class descriptor"); + _disallowProperty(obj, "placement", "A class descriptor"); + _disallowProperty(obj, "descriptor", "A class descriptor"); + _disallowProperty(obj, "initializer", "A class descriptor"); + _disallowProperty(obj, "extras", "A class descriptor"); + + var finisher = _optionalCallableProperty(obj, "finisher"); + var elements = _toElementDescriptors(obj.elements); + + return { elements: elements, finisher: finisher }; + } + + function _disallowProperty(obj, name, objectType) { + if (obj[name] !== undefined) { + throw new TypeError(objectType + " can't have a ." + name + " property."); + } + } + + function _optionalCallableProperty /*::*/( + obj /*: T */, + name /*: $Keys */, + ) /*: ?Function */ { + var value = obj[name]; + if (value !== undefined && typeof value !== "function") { + throw new TypeError("Expected '" + name + "' to be a function"); + } return value; } + + // RunClassFinishers + function _runClassFinishers( + constructor /*: Class<*> */, + finishers /*: ClassFinisher[] */, + ) /*: Class<*> */ { + for (var i = 0; i < finishers.length; i++) { + var newConstructor /*: ?Class<*> */ = (0, finishers[i])(constructor); + if (newConstructor !== undefined) { + // NOTE: This should check if IsConstructor(newConstructor) is false. + if (typeof newConstructor !== "function") { + throw new TypeError("Finishers must return a constructor."); + } + constructor = newConstructor; + } + } + return constructor; + } `; diff --git a/packages/babel-helpers/src/index.js b/packages/babel-helpers/src/index.js index 960393353e6e..86465941a063 100644 --- a/packages/babel-helpers/src/index.js +++ b/packages/babel-helpers/src/index.js @@ -226,13 +226,19 @@ function permuteHelperAST(file, metadata, id, localBindings, getDependency) { }); } -const helperData = {}; +const helperData = Object.create(null); function loadHelper(name) { if (!helperData[name]) { - if (!helpers[name]) throw new ReferenceError(`Unknown helper ${name}`); + const helper = helpers[name]; + if (!helper) { + throw Object.assign(new ReferenceError(`Unknown helper ${name}`), { + code: "BABEL_HELPER_UNKNOWN", + helper: name, + }); + } const fn = () => { - return t.file(helpers[name]()); + return t.file(helper.ast()); }; const metadata = getHelperMetadata(fn()); @@ -247,6 +253,9 @@ function loadHelper(name) { globals: metadata.globals, }; }, + minVersion() { + return helper.minVersion; + }, dependencies: metadata.dependencies, }; } @@ -263,6 +272,10 @@ export function get( return loadHelper(name).build(getDependency, id, localBindings); } +export function minVersion(name: string) { + return loadHelper(name).minVersion(); +} + export function getDependencies(name: string): $ReadOnlyArray { return Array.from(loadHelper(name).dependencies.values()); } diff --git a/packages/babel-helpers/test/fixtures/dependencies/basic/options.json b/packages/babel-helpers/test/fixtures/dependencies/basic/options.json index 15721fd2bad8..14af0e5feac8 100644 --- a/packages/babel-helpers/test/fixtures/dependencies/basic/options.json +++ b/packages/babel-helpers/test/fixtures/dependencies/basic/options.json @@ -1,3 +1,3 @@ { - "plugins": [ "./plugin" ] -} \ No newline at end of file + "plugins": ["./plugin"] +} diff --git a/packages/babel-helpers/test/fixtures/dependencies/deep/options.json b/packages/babel-helpers/test/fixtures/dependencies/deep/options.json index 15721fd2bad8..14af0e5feac8 100644 --- a/packages/babel-helpers/test/fixtures/dependencies/deep/options.json +++ b/packages/babel-helpers/test/fixtures/dependencies/deep/options.json @@ -1,3 +1,3 @@ { - "plugins": [ "./plugin" ] -} \ No newline at end of file + "plugins": ["./plugin"] +} diff --git a/packages/babel-helpers/test/fixtures/dependencies/missing/options.json b/packages/babel-helpers/test/fixtures/dependencies/missing/options.json index cbb7cd52f60e..b2b371556c4e 100644 --- a/packages/babel-helpers/test/fixtures/dependencies/missing/options.json +++ b/packages/babel-helpers/test/fixtures/dependencies/missing/options.json @@ -1,4 +1,4 @@ { - "plugins": [ "./plugin" ], + "plugins": ["./plugin"], "throws": " " -} \ No newline at end of file +} diff --git a/packages/babel-helpers/test/fixtures/dependencies/multiple/options.json b/packages/babel-helpers/test/fixtures/dependencies/multiple/options.json index 15721fd2bad8..14af0e5feac8 100644 --- a/packages/babel-helpers/test/fixtures/dependencies/multiple/options.json +++ b/packages/babel-helpers/test/fixtures/dependencies/multiple/options.json @@ -1,3 +1,3 @@ { - "plugins": [ "./plugin" ] -} \ No newline at end of file + "plugins": ["./plugin"] +} diff --git a/packages/babel-helpers/test/fixtures/dependencies/rename-binding-equal/options.json b/packages/babel-helpers/test/fixtures/dependencies/rename-binding-equal/options.json index 15721fd2bad8..14af0e5feac8 100644 --- a/packages/babel-helpers/test/fixtures/dependencies/rename-binding-equal/options.json +++ b/packages/babel-helpers/test/fixtures/dependencies/rename-binding-equal/options.json @@ -1,3 +1,3 @@ { - "plugins": [ "./plugin" ] -} \ No newline at end of file + "plugins": ["./plugin"] +} diff --git a/packages/babel-helpers/test/fixtures/dependencies/rename-deep-global/options.json b/packages/babel-helpers/test/fixtures/dependencies/rename-deep-global/options.json index 15721fd2bad8..14af0e5feac8 100644 --- a/packages/babel-helpers/test/fixtures/dependencies/rename-deep-global/options.json +++ b/packages/babel-helpers/test/fixtures/dependencies/rename-deep-global/options.json @@ -1,3 +1,3 @@ { - "plugins": [ "./plugin" ] -} \ No newline at end of file + "plugins": ["./plugin"] +} diff --git a/packages/babel-helpers/test/fixtures/dependencies/reuse-dependency/options.json b/packages/babel-helpers/test/fixtures/dependencies/reuse-dependency/options.json index 15721fd2bad8..14af0e5feac8 100644 --- a/packages/babel-helpers/test/fixtures/dependencies/reuse-dependency/options.json +++ b/packages/babel-helpers/test/fixtures/dependencies/reuse-dependency/options.json @@ -1,3 +1,3 @@ { - "plugins": [ "./plugin" ] -} \ No newline at end of file + "plugins": ["./plugin"] +} diff --git a/packages/babel-helpers/test/fixtures/dependencies/variable-same-name-dependency/options.json b/packages/babel-helpers/test/fixtures/dependencies/variable-same-name-dependency/options.json index 15721fd2bad8..14af0e5feac8 100644 --- a/packages/babel-helpers/test/fixtures/dependencies/variable-same-name-dependency/options.json +++ b/packages/babel-helpers/test/fixtures/dependencies/variable-same-name-dependency/options.json @@ -1,3 +1,3 @@ { - "plugins": [ "./plugin" ] -} \ No newline at end of file + "plugins": ["./plugin"] +} diff --git a/packages/babel-helpers/test/helpers/define-helper.js b/packages/babel-helpers/test/helpers/define-helper.js index 69cc39e7a987..712eae42130e 100644 --- a/packages/babel-helpers/test/helpers/define-helper.js +++ b/packages/babel-helpers/test/helpers/define-helper.js @@ -17,7 +17,10 @@ export default function defineHelper( throw new Error(`The ${id} helper is already defined.`); } Object.defineProperty(helpers, id, { - value: template.program(code), + value: { + minVersion: "7.0.0-beta.0", + ast: template.program(code), + }, }); return id; } diff --git a/packages/babel-highlight/package.json b/packages/babel-highlight/package.json index 3a6be5a44fa3..0312b1aeae93 100644 --- a/packages/babel-highlight/package.json +++ b/packages/babel-highlight/package.json @@ -1,16 +1,19 @@ { "name": "@babel/highlight", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Syntax highlight JavaScript strings for output in terminals.", "author": "suchipi ", "homepage": "https://babeljs.io/", "license": "MIT", + "publishConfig": { + "access": "public" + }, "repository": "https://github.com/babel/babel/tree/master/packages/babel-highlight", "main": "lib/index.js", "dependencies": { "chalk": "^2.0.0", "esutils": "^2.0.2", - "js-tokens": "^3.0.0" + "js-tokens": "^4.0.0" }, "devDependencies": { "strip-ansi": "^4.0.0" diff --git a/packages/babel-node/package.json b/packages/babel-node/package.json index d29792000de8..8ec75844217b 100644 --- a/packages/babel-node/package.json +++ b/packages/babel-node/package.json @@ -1,10 +1,13 @@ { "name": "@babel/node", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Babel command line", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", "license": "MIT", + "publishConfig": { + "access": "public" + }, "repository": "https://github.com/babel/babel/tree/master/packages/babel-node", "keywords": [ "6to5", @@ -16,20 +19,20 @@ "compiler" ], "dependencies": { - "@babel/polyfill": "7.0.0-beta.52", - "@babel/register": "7.0.0-beta.52", + "@babel/polyfill": "^7.0.0", + "@babel/register": "^7.0.0", "commander": "^2.8.1", "fs-readdir-recursive": "^1.0.0", - "lodash": "^4.17.5", + "lodash": "^4.17.10", "output-file-sync": "^2.0.0", "v8flags": "^3.1.1" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-fixtures": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-fixtures": "^7.0.0" }, "bin": { "babel-node": "./bin/babel-node.js" diff --git a/packages/babel-node/src/_babel-node.js b/packages/babel-node/src/_babel-node.js index 27f94a3d738d..42ebf774d184 100644 --- a/packages/babel-node/src/_babel-node.js +++ b/packages/babel-node/src/_babel-node.js @@ -60,6 +60,9 @@ program.usage("[options] [ -e script | script.js ] [arguments]"); program.parse(process.argv); register({ + caller: { + name: "@babel/node", + }, extensions: program.extensions, ignore: program.ignore, only: program.only, diff --git a/packages/babel-node/src/babel-node.js b/packages/babel-node/src/babel-node.js index cb3f20ab8587..5c29c3d4dbce 100755 --- a/packages/babel-node/src/babel-node.js +++ b/packages/babel-node/src/babel-node.js @@ -47,6 +47,7 @@ getV8Flags(function(err, v8Flags) { case "--debug-brk": case "--inspect": case "--inspect-brk": + case "--experimental-modules": args.unshift(arg); break; diff --git a/packages/babel-node/test/fixtures/babel-node/no-strict/options.json b/packages/babel-node/test/fixtures/babel-node/no-strict/options.json index 63fc4b34f430..1453918c28e3 100644 --- a/packages/babel-node/test/fixtures/babel-node/no-strict/options.json +++ b/packages/babel-node/test/fixtures/babel-node/no-strict/options.json @@ -1,4 +1,4 @@ { - "args": ["--eval","--print", "var a = 1;"], + "args": ["--eval", "--print", "var a = 1;"], "stdout": "undefined" } diff --git a/packages/babel-node/test/fixtures/babel-node/v8Flag-dashed-with-param/options.json b/packages/babel-node/test/fixtures/babel-node/v8Flag-dashed-with-param/options.json index a9cabbc10c64..0f03b17fe58c 100644 --- a/packages/babel-node/test/fixtures/babel-node/v8Flag-dashed-with-param/options.json +++ b/packages/babel-node/test/fixtures/babel-node/v8Flag-dashed-with-param/options.json @@ -1,4 +1,8 @@ { - "args": ["--expose-gc-as=garbageCollector", "--eval", "console.log(typeof global.garbageCollector)"], + "args": [ + "--expose-gc-as=garbageCollector", + "--eval", + "console.log(typeof global.garbageCollector)" + ], "stdout": "function" } diff --git a/packages/babel-node/test/fixtures/babel-node/v8Flag-underscored-with-param/options.json b/packages/babel-node/test/fixtures/babel-node/v8Flag-underscored-with-param/options.json index a8b0e91738d0..3c1e91b90d7a 100644 --- a/packages/babel-node/test/fixtures/babel-node/v8Flag-underscored-with-param/options.json +++ b/packages/babel-node/test/fixtures/babel-node/v8Flag-underscored-with-param/options.json @@ -1,4 +1,8 @@ { - "args": ["--expose_gc_as=garbageCollector", "--eval", "console.log(typeof global.garbageCollector)"], + "args": [ + "--expose_gc_as=garbageCollector", + "--eval", + "console.log(typeof global.garbageCollector)" + ], "stdout": "function" } diff --git a/packages/babel-parser/package.json b/packages/babel-parser/package.json index 94276658ac84..a9102d705630 100644 --- a/packages/babel-parser/package.json +++ b/packages/babel-parser/package.json @@ -1,10 +1,13 @@ { "name": "@babel/parser", - "version": "7.0.0-beta.52", + "version": "7.1.3", "description": "A JavaScript parser", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", "license": "MIT", + "publishConfig": { + "tag": "next" + }, "keywords": [ "babel", "javascript", @@ -15,22 +18,21 @@ ], "repository": "https://github.com/babel/babel/tree/master/packages/babel-parser", "main": "lib/index.js", + "types": "typings/babel-parser.d.ts", "files": [ "bin", - "lib" + "lib", + "typings" ], "engines": { "node": ">=6.0.0" }, "devDependencies": { - "@babel/helper-fixtures": "7.0.0-beta.52", + "@babel/helper-fixtures": "^7.0.0", "charcodes": "0.1.0", "unicode-11.0.0": "^0.7.7" }, "bin": { "parser": "./bin/babel-parser.js" - }, - "publishConfig": { - "tag": "next" } } diff --git a/packages/babel-parser/src/options.js b/packages/babel-parser/src/options.js index 121dde7ef1cb..3bab7c04a287 100755 --- a/packages/babel-parser/src/options.js +++ b/packages/babel-parser/src/options.js @@ -5,8 +5,10 @@ import type { PluginList } from "./plugin-utils"; // A second optional argument can be given to further configure // the parser process. These options are recognized: +export type SourceType = "script" | "module" | "unambiguous"; + export type Options = { - sourceType: "script" | "module", + sourceType: SourceType, sourceFilename?: string, startLine: number, allowAwaitOutsideFunction: boolean, diff --git a/packages/babel-parser/src/parser/comments.js b/packages/babel-parser/src/parser/comments.js index 8b71cec739c5..7f6b6e2de6e2 100644 --- a/packages/babel-parser/src/parser/comments.js +++ b/packages/babel-parser/src/parser/comments.js @@ -122,6 +122,15 @@ export default class CommentsParser extends BaseParser { lastComment.end <= node.end ) { if (this.state.commentPreviousNode) { + for (j = 0; j < this.state.leadingComments.length; j++) { + if ( + this.state.leadingComments[j].end < + this.state.commentPreviousNode.end + ) { + this.state.leadingComments.splice(j, 1); + j--; + } + } if (this.state.leadingComments.length > 0) { lastArg.trailingComments = this.state.leadingComments; this.state.leadingComments = []; diff --git a/packages/babel-parser/src/parser/expression.js b/packages/babel-parser/src/parser/expression.js index dd7641990a06..a02e409ec9e9 100644 --- a/packages/babel-parser/src/parser/expression.js +++ b/packages/babel-parser/src/parser/expression.js @@ -609,22 +609,41 @@ export default class ExpressionParser extends LValParser { } return node; } else if (this.match(tt.backQuote)) { - const node = this.startNodeAt(startPos, startLoc); - node.tag = base; - node.quasi = this.parseTemplate(true); - if (state.optionalChainMember) { - this.raise( - startPos, - "Tagged Template Literals are not allowed in optionalChain", - ); - } - return this.finishNode(node, "TaggedTemplateExpression"); + return this.parseTaggedTemplateExpression( + startPos, + startLoc, + base, + state, + ); } else { state.stop = true; return base; } } + parseTaggedTemplateExpression( + startPos: number, + startLoc: Position, + base: N.Expression, + state: N.ParseSubscriptState, + typeArguments?: ?N.TsTypeParameterInstantiation, + ): N.TaggedTemplateExpression { + const node: N.TaggedTemplateExpression = this.startNodeAt( + startPos, + startLoc, + ); + node.tag = base; + node.quasi = this.parseTemplate(true); + if (typeArguments) node.typeParameters = typeArguments; + if (state.optionalChainMember) { + this.raise( + startPos, + "Tagged Template Literals are not allowed in optionalChain", + ); + } + return this.finishNode(node, "TaggedTemplateExpression"); + } + atPossibleAsync(base: N.Expression): boolean { return ( !this.state.containsEsc && @@ -821,7 +840,12 @@ export default class ExpressionParser extends LValParser { ) { this.next(); return this.parseFunction(node, false, false, true); - } else if (canBeArrow && id.name === "async" && this.match(tt.name)) { + } else if ( + canBeArrow && + !this.canInsertSemicolon() && + id.name === "async" && + this.match(tt.name) + ) { const oldYield = this.state.yieldInPossibleArrowParameters; this.state.yieldInPossibleArrowParameters = null; const params = [this.parseIdentifier()]; @@ -977,7 +1001,19 @@ export default class ExpressionParser extends LValParser { if (isPrivate) { this.expectOnePlugin(["classPrivateProperties", "classPrivateMethods"]); const node = this.startNode(); + const columnHashEnd = this.state.end; this.next(); + const columnIdentifierStart = this.state.start; + + const spacesBetweenHashAndIdentifier = + columnIdentifierStart - columnHashEnd; + if (spacesBetweenHashAndIdentifier != 0) { + this.raise( + columnIdentifierStart, + "Unexpected space between # and identifier", + ); + } + node.id = this.parseIdentifier(true); return this.finishNode(node, "PrivateName"); } else { @@ -1037,7 +1073,7 @@ export default class ExpressionParser extends LValParser { } else if (!this.hasPlugin("importMeta")) { this.raise( id.start, - `Dynamic imports require a parameter: import('a.js').then`, + `Dynamic imports require a parameter: import('a.js')`, ); } } diff --git a/packages/babel-parser/src/parser/index.js b/packages/babel-parser/src/parser/index.js index 8042410ff685..6d6d9cfd8b7b 100644 --- a/packages/babel-parser/src/parser/index.js +++ b/packages/babel-parser/src/parser/index.js @@ -1,7 +1,7 @@ // @flow import type { Options } from "../options"; -import type { File } from "../types"; +import type { File, JSXOpeningElement } from "../types"; import type { PluginList } from "../plugin-utils"; import { getOptions } from "../options"; import StatementParser from "./statement"; @@ -11,6 +11,11 @@ export type PluginsMap = { }; export default class Parser extends StatementParser { + // Forward-declaration so typescript plugin can override jsx plugin + +jsxParseOpeningElementAfterName: ( + node: JSXOpeningElement, + ) => JSXOpeningElement; + constructor(options: ?Options, input: string) { options = getOptions(options); super(options, input); diff --git a/packages/babel-parser/src/parser/statement.js b/packages/babel-parser/src/parser/statement.js index 041d8813e49d..86d0abb94fdc 100644 --- a/packages/babel-parser/src/parser/statement.js +++ b/packages/babel-parser/src/parser/statement.js @@ -3,7 +3,8 @@ import * as N from "../types"; import { types as tt, type TokenType } from "../tokenizer/types"; import ExpressionParser from "./expression"; -import { lineBreak } from "../util/whitespace"; +import { isIdentifierChar } from "../util/identifier"; +import { lineBreak, skipWhiteSpace } from "../util/whitespace"; // Reused empty array added for node fields that are always empty. @@ -304,15 +305,7 @@ export default class StatementParser extends ExpressionParser { } } - if (this.eat(tt.parenL)) { - const node = this.startNodeAt(startPos, startLoc); - node.callee = expr; - node.arguments = this.parseCallExpressionArguments(tt.parenR, false); - this.toReferencedList(node.arguments); - expr = this.finishNode(node, "CallExpression"); - } - - node.expression = expr; + node.expression = this.parseMaybeDecoratorArguments(expr); this.state.decoratorStack.pop(); } else { node.expression = this.parseMaybeAssign(); @@ -320,6 +313,18 @@ export default class StatementParser extends ExpressionParser { return this.finishNode(node, "Decorator"); } + parseMaybeDecoratorArguments(expr: N.Expression): N.Expression { + if (this.eat(tt.parenL)) { + const node = this.startNodeAtNode(expr); + node.callee = expr; + node.arguments = this.parseCallExpressionArguments(tt.parenR, false); + this.toReferencedList(node.arguments); + return this.finishNode(node, "CallExpression"); + } + + return expr; + } + parseBreakContinueStatement( node: N.BreakStatement | N.ContinueStatement, keyword: string, @@ -1497,18 +1502,37 @@ export default class StatementParser extends ExpressionParser { return this.finishNode(node, "ExportNamedDeclaration"); } + isAsyncFunction() { + if (!this.isContextual("async")) return false; + + const { input, pos } = this.state; + + skipWhiteSpace.lastIndex = pos; + const skip = skipWhiteSpace.exec(input); + + if (!skip || !skip.length) return false; + + const next = pos + skip[0].length; + + return ( + !lineBreak.test(input.slice(pos, next)) && + input.slice(next, next + 8) === "function" && + (next + 8 === input.length || !isIdentifierChar(input.charAt(next + 8))) + ); + } + parseExportDefaultExpression(): N.Expression | N.Declaration { const expr = this.startNode(); - if (this.eat(tt._function)) { - return this.parseFunction(expr, true, false, false, true); - } else if ( - this.isContextual("async") && - this.lookahead().type === tt._function - ) { - // async function declaration - this.eatContextual("async"); - this.eat(tt._function); - return this.parseFunction(expr, true, false, true, true); + + const isAsync = this.isAsyncFunction(); + + if (this.eat(tt._function) || isAsync) { + if (isAsync) { + this.eatContextual("async"); + this.expect(tt._function); + } + + return this.parseFunction(expr, true, false, isAsync, true); } else if (this.match(tt._class)) { return this.parseClass(expr, true, true); } else if (this.match(tt.at)) { @@ -1641,7 +1665,7 @@ export default class StatementParser extends ExpressionParser { this.state.type.keyword === "let" || this.state.type.keyword === "function" || this.state.type.keyword === "class" || - this.isContextual("async") + this.isAsyncFunction() ); } diff --git a/packages/babel-parser/src/plugin-utils.js b/packages/babel-parser/src/plugin-utils.js index d8ed23d86df9..d92800f46427 100644 --- a/packages/babel-parser/src/plugin-utils.js +++ b/packages/babel-parser/src/plugin-utils.js @@ -41,13 +41,28 @@ export function getPluginOption( const PIPELINE_PROPOSALS = ["minimal", "smart"]; export function validatePlugins(plugins: PluginList) { - if ( - hasPlugin(plugins, "decorators") && - hasPlugin(plugins, "decorators-legacy") - ) { - throw new Error( - "Cannot use the decorators and decorators-legacy plugin together", + if (hasPlugin(plugins, "decorators")) { + if (hasPlugin(plugins, "decorators-legacy")) { + throw new Error( + "Cannot use the decorators and decorators-legacy plugin together", + ); + } + + const decoratorsBeforeExport = getPluginOption( + plugins, + "decorators", + "decoratorsBeforeExport", ); + if (decoratorsBeforeExport == null) { + throw new Error( + "The 'decorators' plugin requires a 'decoratorsBeforeExport' option," + + " whose value must be a boolean. If you are migrating from" + + " Babylon/Babel 6 or want to use the old decorators proposal, you" + + " should use the 'decorators-legacy' plugin instead of 'decorators'.", + ); + } else if (typeof decoratorsBeforeExport !== "boolean") { + throw new Error("'decoratorsBeforeExport' must be a boolean."); + } } if (hasPlugin(plugins, "flow") && hasPlugin(plugins, "typescript")) { diff --git a/packages/babel-parser/src/plugins/flow.js b/packages/babel-parser/src/plugins/flow.js index cd2bdd0d439d..cd250e9ad085 100644 --- a/packages/babel-parser/src/plugins/flow.js +++ b/packages/babel-parser/src/plugins/flow.js @@ -463,7 +463,13 @@ export default (superClass: Class): Class => } while (this.eat(tt.comma)); } - node.body = this.flowParseObjectType(true, false, false, isClass); + node.body = this.flowParseObjectType({ + allowStatic: isClass, + allowExact: false, + allowSpread: false, + allowProto: isClass, + allowInexact: false, + }); } flowParseInterfaceExtends(): N.FlowInterfaceExtends { @@ -632,12 +638,15 @@ export default (superClass: Class): Class => this.state.inType = true; this.expectRelational("<"); + const oldNoAnonFunctionType = this.state.noAnonFunctionType; + this.state.noAnonFunctionType = false; while (!this.isRelational(">")) { node.params.push(this.flowParseType()); if (!this.isRelational(">")) { this.expect(tt.comma); } } + this.state.noAnonFunctionType = oldNoAnonFunctionType; this.expectRelational(">"); this.state.inType = oldInType; @@ -656,7 +665,13 @@ export default (superClass: Class): Class => } while (this.eat(tt.comma)); } - node.body = this.flowParseObjectType(true, false, false, false); + node.body = this.flowParseObjectType({ + allowStatic: false, + allowExact: false, + allowSpread: false, + allowProto: false, + allowInexact: false, + }); return this.finishNode(node, "InterfaceTypeAnnotation"); } @@ -754,12 +769,19 @@ export default (superClass: Class): Class => return this.finishNode(node, "ObjectTypeCallProperty"); } - flowParseObjectType( + flowParseObjectType({ + allowStatic, + allowExact, + allowSpread, + allowProto, + allowInexact, + }: { allowStatic: boolean, allowExact: boolean, allowSpread: boolean, allowProto: boolean, - ): N.FlowObjectTypeAnnotation { + allowInexact: boolean, + }): N.FlowObjectTypeAnnotation { const oldInType = this.state.inType; this.state.inType = true; @@ -772,6 +794,7 @@ export default (superClass: Class): Class => let endDelim; let exact; + let inexact = false; if (allowExact && this.match(tt.braceBarL)) { this.expect(tt.braceBarL); endDelim = tt.braceBarR; @@ -852,16 +875,21 @@ export default (superClass: Class): Class => } } - nodeStart.properties.push( - this.flowParseObjectTypeProperty( - node, - isStatic, - protoStart, - variance, - kind, - allowSpread, - ), + const propOrInexact = this.flowParseObjectTypeProperty( + node, + isStatic, + protoStart, + variance, + kind, + allowSpread, + allowInexact, ); + + if (propOrInexact === null) { + inexact = true; + } else { + nodeStart.properties.push(propOrInexact); + } } this.flowObjectTypeSemicolon(); @@ -869,6 +897,15 @@ export default (superClass: Class): Class => this.expect(endDelim); + /* 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 + * sufficient here. + */ + if (allowSpread) { + nodeStart.inexact = inexact; + } + const out = this.finishNode(nodeStart, "ObjectTypeAnnotation"); this.state.inType = oldInType; @@ -883,7 +920,8 @@ export default (superClass: Class): Class => variance: ?N.FlowVariance, kind: string, allowSpread: boolean, - ): N.FlowObjectTypeProperty | N.FlowObjectTypeSpreadProperty { + allowInexact: boolean, + ): (N.FlowObjectTypeProperty | N.FlowObjectTypeSpreadProperty) | null { if (this.match(tt.ellipsis)) { if (!allowSpread) { this.unexpected( @@ -901,8 +939,30 @@ export default (superClass: Class): Class => ); } this.expect(tt.ellipsis); - node.argument = this.flowParseType(); + const isInexactToken = this.eat(tt.comma) || this.eat(tt.semi); + + if (this.match(tt.braceR)) { + if (allowInexact) return null; + this.unexpected( + null, + "Explicit inexact syntax is only allowed inside inexact objects", + ); + } + if (this.match(tt.braceBarR)) { + this.unexpected( + null, + "Explicit inexact syntax cannot appear inside an explicit exact object type", + ); + } + + if (isInexactToken) { + this.unexpected( + null, + "Explicit inexact syntax must appear at the end of an inexact object", + ); + } + node.argument = this.flowParseType(); return this.finishNode(node, "ObjectTypeSpreadProperty"); } else { node.key = this.flowParseObjectPropertyKey(); @@ -1146,10 +1206,22 @@ export default (superClass: Class): Class => ); case tt.braceL: - return this.flowParseObjectType(false, false, true, false); + return this.flowParseObjectType({ + allowStatic: false, + allowExact: false, + allowSpread: true, + allowProto: false, + allowInexact: true, + }); case tt.braceBarL: - return this.flowParseObjectType(false, true, true, false); + return this.flowParseObjectType({ + allowStatic: false, + allowExact: true, + allowSpread: true, + allowProto: false, + allowInexact: false, + }); case tt.bracketL: return this.flowParseTupleType(); @@ -1917,6 +1989,15 @@ export default (superClass: Class): Class => return super.parseClassProperty(node); } + parseClassPrivateProperty( + node: N.ClassPrivateProperty, + ): N.ClassPrivateProperty { + if (this.match(tt.colon)) { + node.typeAnnotation = this.flowParseTypeAnnotation(); + } + return super.parseClassPrivateProperty(node); + } + // determine whether or not we're currently in the position where a class method would appear isClassMethod(): boolean { return this.isRelational("<") || super.isClassMethod(); diff --git a/packages/babel-parser/src/plugins/jsx/index.js b/packages/babel-parser/src/plugins/jsx/index.js index 6ac520437727..0d32ea98d11f 100644 --- a/packages/babel-parser/src/plugins/jsx/index.js +++ b/packages/babel-parser/src/plugins/jsx/index.js @@ -358,11 +358,18 @@ export default (superClass: Class): Class => this.expect(tt.jsxTagEnd); return this.finishNode(node, "JSXOpeningFragment"); } - node.attributes = []; node.name = this.jsxParseElementName(); + return this.jsxParseOpeningElementAfterName(node); + } + + jsxParseOpeningElementAfterName( + node: N.JSXOpeningElement, + ): N.JSXOpeningElement { + const attributes: N.JSXAttribute[] = []; while (!this.match(tt.slash) && !this.match(tt.jsxTagEnd)) { - node.attributes.push(this.jsxParseAttribute()); + attributes.push(this.jsxParseAttribute()); } + node.attributes = attributes; node.selfClosing = this.eat(tt.slash); this.expect(tt.jsxTagEnd); return this.finishNode(node, "JSXOpeningElement"); diff --git a/packages/babel-parser/src/plugins/typescript.js b/packages/babel-parser/src/plugins/typescript.js index e9abe7276f22..bd3d88d9ac1f 100644 --- a/packages/babel-parser/src/plugins/typescript.js +++ b/packages/babel-parser/src/plugins/typescript.js @@ -57,6 +57,8 @@ function keywordTypeFromName( return "TSSymbolKeyword"; case "undefined": return "TSUndefinedKeyword"; + case "unknown": + return "TSUnknownKeyword"; default: return undefined; } @@ -501,13 +503,32 @@ export default (superClass: Class): Class => const node: N.TsTupleType = this.startNode(); node.elementTypes = this.tsParseBracketedList( "TupleElementTypes", - this.tsParseType.bind(this), + this.tsParseTupleElementType.bind(this), /* bracket */ true, /* skipFirstToken */ false, ); return this.finishNode(node, "TSTupleType"); } + tsParseTupleElementType(): N.TsType { + // parses `...TsType[]` + if (this.match(tt.ellipsis)) { + const restNode: N.TsRestType = this.startNode(); + this.next(); // skips ellipsis + restNode.typeAnnotation = this.tsParseType(); + return this.finishNode(restNode, "TSRestType"); + } + + const type = this.tsParseType(); + // parses `TsType?` + if (this.eat(tt.question)) { + const optionalTypeNode: N.TsOptionalType = this.startNodeAtNode(type); + optionalTypeNode.typeAnnotation = type; + return this.finishNode(optionalTypeNode, "TSOptionalType"); + } + return type; + } + tsParseParenthesizedType(): N.TsParenthesizedType { const node = this.startNode(); this.expect(tt.parenL); @@ -836,14 +857,6 @@ export default (superClass: Class): Class => return this.finishNode(node, "TSTypeAssertion"); } - tsTryParseTypeArgumentsInExpression(): ?N.TsTypeParameterInstantiation { - return this.tsTryParseAndCatch(() => { - const res = this.tsParseTypeArguments(); - this.expect(tt.parenL); - return res; - }); - } - tsParseHeritageClause(): $ReadOnlyArray { return this.tsParseDelimitedList( "HeritageClauseElement", @@ -887,6 +900,16 @@ export default (superClass: Class): Class => return this.finishNode(node, "TSTypeAliasDeclaration"); } + tsInNoContext(cb: () => T): T { + const oldContext = this.state.context; + this.state.context = [oldContext[0]]; + try { + return cb(); + } finally { + this.state.context = oldContext; + } + } + /** * Runs `cb` in a type context. * This should be called one token *before* the first type token, @@ -1241,13 +1264,19 @@ export default (superClass: Class): Class => tsParseTypeArguments(): N.TsTypeParameterInstantiation { const node = this.startNode(); - node.params = this.tsInType(() => { - this.expectRelational("<"); - return this.tsParseDelimitedList( - "TypeParametersOrArguments", - this.tsParseType.bind(this), - ); - }); + node.params = this.tsInType(() => + // Temporarily remove a JSX parsing context, which makes us scan different tokens. + this.tsInNoContext(() => { + this.expectRelational("<"); + return this.tsParseDelimitedList( + "TypeParametersOrArguments", + this.tsParseType.bind(this), + ); + }), + ); + // This reads the next token after the `>` too, so do this in the enclosing context. + // But be sure not to parse a regex in the jsx expression ` />`, so set exprAllowed = false + this.state.exprAllowed = false; this.expectRelational(">"); return this.finishNode(node, "TSTypeParameterInstantiation"); } @@ -1358,34 +1387,53 @@ export default (superClass: Class): Class => return this.finishNode(nonNullExpression, "TSNonNullExpression"); } - if (!noCalls && this.isRelational("<")) { - if (this.atPossibleAsync(base)) { - // Almost certainly this is a generic async function `async () => ... - // But it might be a call with a type argument `async();` - const asyncArrowFn = this.tsTryParseGenericAsyncArrowFunction( - startPos, - startLoc, - ); - if (asyncArrowFn) { - return asyncArrowFn; + if (this.isRelational("<")) { + // tsTryParseAndCatch is expensive, so avoid if not necessary. + // There are number of things we are going to "maybe" parse, like type arguments on + // tagged template expressions. If any of them fail, walk it back and continue. + const result = this.tsTryParseAndCatch(() => { + if (!noCalls && this.atPossibleAsync(base)) { + // Almost certainly this is a generic async function `async () => ... + // But it might be a call with a type argument `async();` + const asyncArrowFn = this.tsTryParseGenericAsyncArrowFunction( + startPos, + startLoc, + ); + if (asyncArrowFn) { + return asyncArrowFn; + } } - } - const node: N.CallExpression = this.startNodeAt(startPos, startLoc); - node.callee = base; - - // May be passing type arguments. But may just be the `<` operator. - const typeArguments = this.tsTryParseTypeArgumentsInExpression(); // Also eats the "(" - if (typeArguments) { - // possibleAsync always false here, because we would have handled it above. - // $FlowIgnore (won't be any undefined arguments) - node.arguments = this.parseCallExpressionArguments( - tt.parenR, - /* possibleAsync */ false, - ); - node.typeParameters = typeArguments; - return this.finishCallExpression(node); - } + const node: N.CallExpression = this.startNodeAt(startPos, startLoc); + node.callee = base; + + const typeArguments = this.tsParseTypeArguments(); + + if (typeArguments) { + if (!noCalls && this.eat(tt.parenL)) { + // possibleAsync always false here, because we would have handled it above. + // $FlowIgnore (won't be any undefined arguments) + node.arguments = this.parseCallExpressionArguments( + tt.parenR, + /* possibleAsync */ false, + ); + node.typeParameters = typeArguments; + return this.finishCallExpression(node); + } else if (this.match(tt.backQuote)) { + return this.parseTaggedTemplateExpression( + startPos, + startLoc, + base, + state, + typeArguments, + ); + } + } + + this.unexpected(); + }); + + if (result) return result; } return super.parseSubscript(base, startPos, startLoc, noCalls, state); @@ -1509,6 +1557,19 @@ export default (superClass: Class): Class => cls.abstract = true; return cls; } + + // export default interface allowed in: + // https://github.com/Microsoft/TypeScript/pull/16040 + if (this.state.value === "interface") { + const result = this.tsParseDeclaration( + this.startNode(), + this.state.value, + true, + ); + + if (result) return result; + } + return super.parseExportDefaultExpression(); } @@ -1764,9 +1825,8 @@ export default (superClass: Class): Class => } parseObjPropValue(prop: N.ObjectMember, ...args): void { - if (this.isRelational("<")) { - throw new Error("TODO"); - } + const typeParameters = this.tsTryParseTypeParameters(); + if (typeParameters) prop.typeParameters = typeParameters; super.parseObjPropValue(prop, ...args); } @@ -2006,6 +2066,22 @@ export default (superClass: Class): Class => } } + parseMaybeDecoratorArguments(expr: N.Expression): N.Expression { + if (this.isRelational("<")) { + const typeArguments = this.tsParseTypeArguments(); + + if (this.match(tt.parenL)) { + const call = super.parseMaybeDecoratorArguments(expr); + call.typeParameters = typeArguments; + return call; + } + + this.unexpected(this.state.start, tt.parenL); + } + + return super.parseMaybeDecoratorArguments(expr); + } + // === === === === === === === === === === === === === === === === // Note: All below methods are duplicates of something in flow.js. // Not sure what the best way to combine these is. @@ -2102,4 +2178,14 @@ export default (superClass: Class): Class => // Avoid unnecessary lookahead in checking for abstract class unless needed! return super.canHaveLeadingDecorator() || this.isAbstractClass(); } + + jsxParseOpeningElementAfterName( + node: N.JSXOpeningElement, + ): N.JSXOpeningElement { + const typeArguments = this.tsTryParseAndCatch(() => + this.tsParseTypeArguments(), + ); + if (typeArguments) node.typeParameters = typeArguments; + return super.jsxParseOpeningElementAfterName(node); + } }; diff --git a/packages/babel-parser/src/tokenizer/context.js b/packages/babel-parser/src/tokenizer/context.js index 11fe53d2d207..bb0f7b8a20d2 100644 --- a/packages/babel-parser/src/tokenizer/context.js +++ b/packages/babel-parser/src/tokenizer/context.js @@ -106,7 +106,7 @@ tt.incDec.updateContext = function() { // tokExprAllowed stays unchanged }; -tt._function.updateContext = function(prevType) { +tt._function.updateContext = tt._class.updateContext = function(prevType) { if (this.state.exprAllowed && !this.braceIsBlock(prevType)) { this.state.context.push(types.functionExpression); } diff --git a/packages/babel-parser/src/tokenizer/index.js b/packages/babel-parser/src/tokenizer/index.js index 2c362e0c2467..871c3199603c 100644 --- a/packages/babel-parser/src/tokenizer/index.js +++ b/packages/babel-parser/src/tokenizer/index.js @@ -16,7 +16,7 @@ import { lineBreak, lineBreakG, isNewLine, - nonASCIIwhitespace, + isWhitespace, } from "../util/whitespace"; import State from "./state"; @@ -110,18 +110,6 @@ export class Token { // ## Tokenizer -function codePointToString(code: number): string { - // UTF-16 Decoding - if (code <= 0xffff) { - return String.fromCharCode(code); - } else { - return String.fromCharCode( - ((code - 0x10000) >> 10) + 0xd800, - ((code - 0x10000) & 1023) + 0xdc00, - ); - } -} - export default class Tokenizer extends LocationParser { // Forward-declarations // parser/util.js @@ -226,7 +214,7 @@ export default class Tokenizer extends LocationParser { if (curContext.override) { curContext.override(this); } else { - this.readToken(this.fullCharCodeAtPos()); + this.readToken(this.input.codePointAt(this.state.pos)); } } @@ -240,14 +228,6 @@ export default class Tokenizer extends LocationParser { } } - fullCharCodeAtPos(): number { - const code = this.input.charCodeAt(this.state.pos); - if (code <= 0xd7ff || code >= 0xe000) return code; - - const next = this.input.charCodeAt(this.state.pos + 1); - return (code << 10) + next - 0x35fdc00; - } - pushComment( block: boolean, text: string, @@ -331,11 +311,6 @@ export default class Tokenizer extends LocationParser { loop: while (this.state.pos < this.input.length) { const ch = this.input.charCodeAt(this.state.pos); switch (ch) { - case charCodes.space: - case charCodes.nonBreakingSpace: - ++this.state.pos; - break; - case charCodes.carriageReturn: if ( this.input.charCodeAt(this.state.pos + 1) === charCodes.lineFeed @@ -367,11 +342,7 @@ export default class Tokenizer extends LocationParser { break; default: - if ( - (ch > charCodes.backSpace && ch < charCodes.shiftOut) || - (ch >= charCodes.oghamSpaceMark && - nonASCIIwhitespace.test(String.fromCharCode(ch))) - ) { + if (isWhitespace(ch)) { ++this.state.pos; } else { break loop; @@ -455,7 +426,7 @@ export default class Tokenizer extends LocationParser { readToken_slash(): void { // '/' - if (this.state.exprAllowed) { + if (this.state.exprAllowed && !this.state.inType) { ++this.state.pos; this.readRegexp(); return; @@ -845,7 +816,7 @@ export default class Tokenizer extends LocationParser { this.raise( this.state.pos, - `Unexpected character '${codePointToString(code)}'`, + `Unexpected character '${String.fromCodePoint(code)}'`, ); } @@ -887,7 +858,7 @@ export default class Tokenizer extends LocationParser { while (this.state.pos < this.input.length) { const char = this.input[this.state.pos]; - const charCode = this.fullCharCodeAtPos(); + const charCode = this.input.codePointAt(this.state.pos); if (VALID_REGEX_FLAGS.indexOf(char) > -1) { if (mods.indexOf(char) > -1) { @@ -999,7 +970,7 @@ export default class Tokenizer extends LocationParser { } } - if (isIdentifierStart(this.fullCharCodeAtPos())) { + if (isIdentifierStart(this.input.codePointAt(this.state.pos))) { this.raise(this.state.pos, "Identifier directly after number"); } @@ -1055,7 +1026,7 @@ export default class Tokenizer extends LocationParser { } } - if (isIdentifierStart(this.fullCharCodeAtPos())) { + if (isIdentifierStart(this.input.codePointAt(this.state.pos))) { this.raise(this.state.pos, "Identifier directly after number"); } @@ -1132,6 +1103,7 @@ export default class Tokenizer extends LocationParser { (ch === charCodes.lineSeparator || ch === charCodes.paragraphSeparator) ) { ++this.state.pos; + ++this.state.curLine; } else if (isNewLine(ch)) { this.raise(this.state.start, "Unterminated string constant"); } else { @@ -1224,7 +1196,7 @@ export default class Tokenizer extends LocationParser { } case charCodes.lowercaseU: { const code = this.readCodePoint(throwOnInvalid); - return code === null ? null : codePointToString(code); + return code === null ? null : String.fromCodePoint(code); } case charCodes.lowercaseT: return "\t"; @@ -1302,7 +1274,7 @@ export default class Tokenizer extends LocationParser { first = true, chunkStart = this.state.pos; while (this.state.pos < this.input.length) { - const ch = this.fullCharCodeAtPos(); + const ch = this.input.codePointAt(this.state.pos); if (isIdentifierChar(ch)) { this.state.pos += ch <= 0xffff ? 1 : 2; } else if (this.state.isIterator && ch === charCodes.atSign) { @@ -1328,7 +1300,7 @@ export default class Tokenizer extends LocationParser { } // $FlowFixMe - word += codePointToString(esc); + word += String.fromCodePoint(esc); chunkStart = this.state.pos; } else { break; diff --git a/packages/babel-parser/src/tokenizer/types.js b/packages/babel-parser/src/tokenizer/types.js index 3c401f163f87..9df50b093cab 100644 --- a/packages/babel-parser/src/tokenizer/types.js +++ b/packages/babel-parser/src/tokenizer/types.js @@ -66,18 +66,12 @@ export class TokenType { } } -class KeywordTokenType extends TokenType { - constructor(name: string, options: TokenOptions = {}) { - options.keyword = name; - - super(name, options); - } +function KeywordTokenType(keyword: string, options: TokenOptions = {}) { + return new TokenType(keyword, { ...options, keyword }); } -export class BinopTokenType extends TokenType { - constructor(name: string, prec: number) { - super(name, { beforeExpr, binop: prec }); - } +function BinopTokenType(name: string, binop: number) { + return new TokenType(name, { beforeExpr, binop }); } export const types: { [name: string]: TokenType } = { diff --git a/packages/babel-parser/src/types.js b/packages/babel-parser/src/types.js index b658f7b0d715..c06f1e66b88b 100644 --- a/packages/babel-parser/src/types.js +++ b/packages/babel-parser/src/types.js @@ -1,5 +1,6 @@ // @flow +import type { SourceType } from "./options"; import type { Token } from "./tokenizer"; import type { SourceLocation } from "./util/location"; @@ -135,7 +136,7 @@ export type File = NodeBase & { export type Program = NodeBase & { type: "Program", - sourceType: "script" | "module", + sourceType: SourceType, body: Array, // TODO: $ReadOnlyArray directives: $ReadOnlyArray, // TODO: Not in spec interpreter: InterpreterDirective | null, @@ -397,7 +398,7 @@ export type ObjectMemberBase = NodeBase & { decorators: $ReadOnlyArray, kind?: "get" | "set" | "method", method: boolean, // TODO: Not in spec - + typeParameters?: ?TypeParameterInstantiationBase, // TODO: Not in spec variance?: ?FlowVariance, // TODO: Not in spec }; @@ -599,10 +600,11 @@ export type TemplateLiteral = NodeBase & { expressions: $ReadOnlyArray, }; -export type TaggedTmplateExpression = NodeBase & { +export type TaggedTemplateExpression = NodeBase & { type: "TaggedTemplateExpression", tag: Expression, quasi: TemplateLiteral, + typeParameters?: ?TypeParameterInstantiationBase, // TODO: Not in spec }; export type TemplateElement = NodeBase & { @@ -742,6 +744,7 @@ export type ClassPrivateProperty = NodeBase & { value: ?Expression, // TODO: Not in spec that this is nullable. static: boolean, computed: false, + typeAnnotation?: ?TypeAnnotation, // TODO: Not in spec }; export type OptClassDeclaration = ClassBase & @@ -846,7 +849,13 @@ export type JSXEmptyExpression = Node; export type JSXSpreadChild = Node; export type JSXExpressionContainer = Node; export type JSXAttribute = Node; -export type JSXOpeningElement = Node; +export type JSXOpeningElement = NodeBase & { + type: "JSXOpeningElement", + name: JSXNamespacedName | JSXMemberExpression, + typeParameters?: ?TypeParameterInstantiationBase, // TODO: Not in spec + attributes: $ReadOnlyArray, + selfClosing: boolean, +}; export type JSXClosingElement = Node; export type JSXElement = Node; export type JSXOpeningFragment = Node; @@ -1121,6 +1130,8 @@ export type TsType = | TsTypeLiteral | TsArrayType | TsTupleType + | TsOptionalType + | TsRestType | TsUnionOrIntersectionType | TsConditionalType | TsInferType @@ -1136,6 +1147,7 @@ export type TsTypeBase = NodeBase; export type TsKeywordTypeType = | "TSAnyKeyword" + | "TSUnknownKeyword" | "TSNumberKeyword" | "TSObjectKeyword" | "TSBooleanKeyword" @@ -1200,6 +1212,16 @@ export type TsTupleType = TsTypeBase & { elementTypes: $ReadOnlyArray, }; +export type TsOptionalType = TsTypeBase & { + type: "TSOptionalType", + typeAnnotation: TsType, +}; + +export type TsRestType = TsTypeBase & { + type: "TSRestType", + typeAnnotation: TsType, +}; + export type TsUnionOrIntersectionType = TsUnionType | TsIntersectionType; export type TsUnionOrIntersectionTypeBase = TsTypeBase & { diff --git a/packages/babel-parser/src/util/location.js b/packages/babel-parser/src/util/location.js index 69df6d27a3ab..8e2ab59c5af9 100644 --- a/packages/babel-parser/src/util/location.js +++ b/packages/babel-parser/src/util/location.js @@ -39,16 +39,14 @@ export class SourceLocation { // into. export function getLineInfo(input: string, offset: number): Position { - for (let line = 1, cur = 0; ; ) { - lineBreakG.lastIndex = cur; - const match = lineBreakG.exec(input); - if (match && match.index < offset) { - ++line; - cur = match.index + match[0].length; - } else { - return new Position(line, offset - cur); - } + let line = 1; + let lineStart = 0; + let match; + lineBreakG.lastIndex = 0; + while ((match = lineBreakG.exec(input)) && match.index < offset) { + line++; + lineStart = lineBreakG.lastIndex; } - // istanbul ignore next - throw new Error("Unreachable"); + + return new Position(line, offset - lineStart); } diff --git a/packages/babel-parser/src/util/whitespace.js b/packages/babel-parser/src/util/whitespace.js index 0588213ecd82..d82d87413d90 100644 --- a/packages/babel-parser/src/util/whitespace.js +++ b/packages/babel-parser/src/util/whitespace.js @@ -1,13 +1,55 @@ // @flow +import * as charCodes from "charcodes"; + // Matches a whole line break (where CRLF is considered a single // line break). Used to count lines. - export const lineBreak = /\r\n?|\n|\u2028|\u2029/; export const lineBreakG = new RegExp(lineBreak.source, "g"); +// https://tc39.github.io/ecma262/#sec-line-terminators export function isNewLine(code: number): boolean { - return code === 10 || code === 13 || code === 0x2028 || code === 0x2029; + switch (code) { + case charCodes.lineFeed: + case charCodes.carriageReturn: + case charCodes.lineSeparator: + case charCodes.paragraphSeparator: + return true; + + default: + return false; + } } -export const nonASCIIwhitespace = /[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/; +export const skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g; + +// https://tc39.github.io/ecma262/#sec-white-space +export function isWhitespace(code: number): boolean { + switch (code) { + case 0x0009: // CHARACTER TABULATION + case 0x000b: // LINE TABULATION + case 0x000c: // FORM FEED + case charCodes.space: + case charCodes.nonBreakingSpace: + case charCodes.oghamSpaceMark: + case 0x2000: // EN QUAD + case 0x2001: // EM QUAD + case 0x2002: // EN SPACE + case 0x2003: // EM SPACE + case 0x2004: // THREE-PER-EM SPACE + case 0x2005: // FOUR-PER-EM SPACE + case 0x2006: // SIX-PER-EM SPACE + case 0x2007: // FIGURE SPACE + case 0x2008: // PUNCTUATION SPACE + case 0x2009: // THIN SPACE + case 0x200a: // HAIR SPACE + case 0x202f: // NARROW NO-BREAK SPACE + case 0x205f: // MEDIUM MATHEMATICAL SPACE + case 0x3000: // IDEOGRAPHIC SPACE + case 0xfeff: // ZERO WIDTH NO-BREAK SPACE + return true; + + default: + return false; + } +} diff --git a/packages/babel-parser/test/fixtures/comments/basic/call-expression-function-argument/input.js b/packages/babel-parser/test/fixtures/comments/basic/call-expression-function-argument/input.js new file mode 100644 index 000000000000..26ce4a7c80e0 --- /dev/null +++ b/packages/babel-parser/test/fixtures/comments/basic/call-expression-function-argument/input.js @@ -0,0 +1,6 @@ +test(function() { + var a = 1; + // one +} +// two +); diff --git a/packages/babel-parser/test/fixtures/comments/basic/call-expression-function-argument/output.json b/packages/babel-parser/test/fixtures/comments/basic/call-expression-function-argument/output.json new file mode 100644 index 000000000000..a04f1d2886a1 --- /dev/null +++ b/packages/babel-parser/test/fixtures/comments/basic/call-expression-function-argument/output.json @@ -0,0 +1,261 @@ +{ + "type": "File", + "start": 0, + "end": 51, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 6, + "column": 2 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 51, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 6, + "column": 2 + } + }, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 51, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 6, + "column": 2 + } + }, + "expression": { + "type": "CallExpression", + "start": 0, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 6, + "column": 1 + } + }, + "callee": { + "type": "Identifier", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + }, + "identifierName": "test" + }, + "name": "test" + }, + "arguments": [ + { + "type": "FunctionExpression", + "start": 5, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 4, + "column": 1 + } + }, + "id": null, + "generator": false, + "async": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 16, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 4, + "column": 1 + } + }, + "body": [ + { + "type": "VariableDeclaration", + "start": 20, + "end": 30, + "loc": { + "start": { + "line": 2, + "column": 2 + }, + "end": { + "line": 2, + "column": 12 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 24, + "end": 29, + "loc": { + "start": { + "line": 2, + "column": 6 + }, + "end": { + "line": 2, + "column": 11 + } + }, + "id": { + "type": "Identifier", + "start": 24, + "end": 25, + "loc": { + "start": { + "line": 2, + "column": 6 + }, + "end": { + "line": 2, + "column": 7 + }, + "identifierName": "a" + }, + "name": "a" + }, + "init": { + "type": "NumericLiteral", + "start": 28, + "end": 29, + "loc": { + "start": { + "line": 2, + "column": 10 + }, + "end": { + "line": 2, + "column": 11 + } + }, + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 + } + } + ], + "kind": "var", + "trailingComments": [ + { + "type": "CommentLine", + "value": " one", + "start": 33, + "end": 39, + "loc": { + "start": { + "line": 3, + "column": 2 + }, + "end": { + "line": 3, + "column": 8 + } + } + } + ] + } + ], + "directives": [] + }, + "trailingComments": [ + { + "type": "CommentLine", + "value": " two", + "start": 42, + "end": 48, + "loc": { + "start": { + "line": 5, + "column": 0 + }, + "end": { + "line": 5, + "column": 6 + } + } + } + ] + } + ] + } + } + ], + "directives": [] + }, + "comments": [ + { + "type": "CommentLine", + "value": " one", + "start": 33, + "end": 39, + "loc": { + "start": { + "line": 3, + "column": 2 + }, + "end": { + "line": 3, + "column": 8 + } + } + }, + { + "type": "CommentLine", + "value": " two", + "start": 42, + "end": 48, + "loc": { + "start": { + "line": 5, + "column": 0 + }, + "end": { + "line": 5, + "column": 6 + } + } + } + ] +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/core/categorized/filename-specified/options.json b/packages/babel-parser/test/fixtures/core/categorized/filename-specified/options.json index 400e29986a45..c5c9564aedab 100644 --- a/packages/babel-parser/test/fixtures/core/categorized/filename-specified/options.json +++ b/packages/babel-parser/test/fixtures/core/categorized/filename-specified/options.json @@ -1,3 +1,3 @@ { "sourceFilename": "path/to/input-file.js" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/categorized/malformed-switch/options.json b/packages/babel-parser/test/fixtures/core/categorized/malformed-switch/options.json index 0b22a698d6b9..a10e365ed5d3 100644 --- a/packages/babel-parser/test/fixtures/core/categorized/malformed-switch/options.json +++ b/packages/babel-parser/test/fixtures/core/categorized/malformed-switch/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (2:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/.542/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/.542/options.json index eb38d2059940..4bbde67748e7 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/.542/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/.542/options.json @@ -1,3 +1,3 @@ { "throws": "getter should have no params (1:11)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/.543/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/.543/options.json index dd62d74fb6c6..4e90617d9abf 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/.543/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/.543/options.json @@ -1,3 +1,3 @@ { "throws": "setter should have exactly one param (1:11)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/.544/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/.544/options.json index dd62d74fb6c6..4e90617d9abf 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/.544/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/.544/options.json @@ -1,3 +1,3 @@ { "throws": "setter should have exactly one param (1:11)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/327/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/327/options.json index 85f061e80ba0..596eb32c0cb1 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/327/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/327/options.json @@ -1,3 +1,3 @@ { "allowReturnOutsideFunction": true -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/328/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/328/options.json index 85f061e80ba0..596eb32c0cb1 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/328/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/328/options.json @@ -1,3 +1,3 @@ { "allowReturnOutsideFunction": true -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/345/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/345/options.json index 04b967a2eea9..b5b75f41875c 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/345/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/345/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/346/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/346/options.json index 919c05ec8713..ca189c74f69b 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/346/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/346/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/347/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/347/options.json index cf3086295c9b..91bb1eef0c0d 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/347/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/347/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid number (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/348/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/348/options.json index b239abb159a1..c70fa099de79 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/348/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/348/options.json @@ -1,3 +1,3 @@ { "throws": "Identifier directly after number (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/349/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/349/options.json index cf3086295c9b..91bb1eef0c0d 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/349/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/349/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid number (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/350/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/350/options.json index cf3086295c9b..91bb1eef0c0d 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/350/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/350/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid number (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/351/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/351/options.json index cf3086295c9b..91bb1eef0c0d 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/351/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/351/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid number (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/352/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/352/options.json index b239abb159a1..c70fa099de79 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/352/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/352/options.json @@ -1,3 +1,3 @@ { "throws": "Identifier directly after number (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/353/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/353/options.json index b239abb159a1..c70fa099de79 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/353/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/353/options.json @@ -1,3 +1,3 @@ { "throws": "Identifier directly after number (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/354/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/354/options.json index b4716df8c6b7..1a0693338eee 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/354/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/354/options.json @@ -1,3 +1,3 @@ { "throws": "Expected number in radix 16 (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/357/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/357/options.json index aa61ff56c2b3..ee18527964e7 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/357/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/357/options.json @@ -1,3 +1,3 @@ { "throws": "Identifier directly after number (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/358/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/358/options.json index b239abb159a1..c70fa099de79 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/358/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/358/options.json @@ -1,3 +1,3 @@ { "throws": "Identifier directly after number (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/359/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/359/options.json index f42de64632d2..dd7623505983 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/359/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/359/options.json @@ -1,3 +1,3 @@ { "throws": "Identifier directly after number (1:3)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/360/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/360/options.json index a760565b1bd2..d732a1630991 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/360/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/360/options.json @@ -1,3 +1,3 @@ { "throws": "Unterminated string constant (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/361/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/361/options.json index d08f66903cbf..18c53b997b56 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/361/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/361/options.json @@ -1,3 +1,3 @@ { "throws": "Expecting Unicode escape sequence \\uXXXX (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/362/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/362/options.json index cd0024d9d911..ea7ba01dc69c 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/362/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/362/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid Unicode escape (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/363/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/363/options.json index cd0024d9d911..ea7ba01dc69c 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/363/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/363/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid Unicode escape (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/364/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/364/options.json index e07b72599f39..66fb1cd63bc6 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/364/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/364/options.json @@ -1,3 +1,3 @@ { "throws": "Unterminated regular expression (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/365/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/365/options.json index e07b72599f39..66fb1cd63bc6 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/365/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/365/options.json @@ -1,3 +1,3 @@ { "throws": "Unterminated regular expression (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/367/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/367/options.json index 740de73d851f..6010e96ed144 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/367/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/367/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid left-hand side in assignment expression (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/368/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/368/options.json index 740de73d851f..6010e96ed144 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/368/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/368/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid left-hand side in assignment expression (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/369/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/369/options.json index d8b91465e5ab..7c5f08eb9ba6 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/369/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/369/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid left-hand side in assignment expression (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/370/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/370/options.json index 57f8bee85027..c09dac1301de 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/370/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/370/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid left-hand side in postfix operation (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/371/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/371/options.json index 57f8bee85027..c09dac1301de 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/371/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/371/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid left-hand side in postfix operation (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/372/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/372/options.json index e58c44374546..515e441e8ea7 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/372/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/372/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid left-hand side in prefix operation (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/373/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/373/options.json index e58c44374546..515e441e8ea7 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/373/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/373/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid left-hand side in prefix operation (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/374/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/374/options.json index 83b3a8b5f394..f8560a7de9d6 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/374/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/374/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid left-hand side in for-in statement (1:5)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/375/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/375/options.json index 04b967a2eea9..b5b75f41875c 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/375/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/375/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/376/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/376/options.json index e68fbb6aec4d..10bd5624f0e7 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/376/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/376/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/377/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/377/options.json index 0ab445fe47b8..91b308200e05 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/377/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/377/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:5)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/379/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/379/options.json index 328b1ddde8fc..89bfc2d73f8a 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/379/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/379/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:10)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/380/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/380/options.json index d5e4b52d5c25..2fd762cd6afd 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/380/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/380/options.json @@ -1,3 +1,3 @@ { "throws": "Unterminated regular expression (1:9)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/381/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/381/options.json index 78a668d16d23..9d0cd9237f5b 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/381/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/381/options.json @@ -1,3 +1,3 @@ { "throws": "Unterminated string constant (1:8)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/382/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/382/options.json index 9f7910a41343..27a7b64d71d4 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/382/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/382/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:4)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/383/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/383/options.json index 740de73d851f..6010e96ed144 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/383/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/383/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid left-hand side in assignment expression (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/384/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/384/options.json index 740de73d851f..6010e96ed144 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/384/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/384/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid left-hand side in assignment expression (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/385/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/385/options.json index 0ab445fe47b8..91b308200e05 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/385/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/385/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:5)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/386/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/386/options.json index 476d7fff91ae..782585ddcf2d 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/386/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/386/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (4:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/387/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/387/options.json index 62cf5da64b42..948a3306bffa 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/387/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/387/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (4:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/388/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/388/options.json index 658860760648..c4c1edaca3c6 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/388/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/388/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \";\" (1:6)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/389/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/389/options.json index 658860760648..c4c1edaca3c6 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/389/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/389/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \";\" (1:6)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/390/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/390/options.json index 328b1ddde8fc..89bfc2d73f8a 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/390/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/390/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:10)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/391/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/391/options.json index 93db7641c75b..2a28555f76db 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/391/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/391/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:9)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/395/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/395/options.json index 51c483f3d3d8..d50e8469b860 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/395/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/395/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:14)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/397/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/397/options.json index 3e33f7730f4b..cb6c66081ebf 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/397/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/397/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:11)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/398/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/398/options.json index 3e33f7730f4b..cb6c66081ebf 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/398/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/398/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:11)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/399/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/399/options.json index 3e33f7730f4b..cb6c66081ebf 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/399/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/399/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:11)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/400/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/400/options.json index 3e33f7730f4b..cb6c66081ebf 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/400/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/400/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:11)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/401/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/401/options.json index 93db7641c75b..2a28555f76db 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/401/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/401/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:9)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/402/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/402/options.json index 93db7641c75b..2a28555f76db 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/402/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/402/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:9)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/403/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/403/options.json index 93db7641c75b..2a28555f76db 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/403/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/403/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:9)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/404/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/404/options.json index 93db7641c75b..2a28555f76db 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/404/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/404/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:9)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/405/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/405/options.json index ff1ac8247e68..a89de70c61e5 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/405/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/405/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \";\" (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/407/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/407/options.json index ff1ac8247e68..a89de70c61e5 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/407/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/407/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \";\" (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/408/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/408/options.json index ff1ac8247e68..a89de70c61e5 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/408/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/408/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \";\" (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/409/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/409/options.json index 6ccbfe923d1c..701f9fe8f27a 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/409/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/409/options.json @@ -1,3 +1,3 @@ { "throws": "Unsyntactic break (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/410/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/410/options.json index 515b9716732d..158f0af7b450 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/410/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/410/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:6)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/411/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/411/options.json index 14a50290d0c9..de66853a7a3d 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/411/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/411/options.json @@ -1,3 +1,3 @@ { "throws": "Unsyntactic continue (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/412/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/412/options.json index 93db7641c75b..2a28555f76db 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/412/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/412/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:9)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/413/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/413/options.json index 0ab445fe47b8..91b308200e05 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/413/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/413/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:5)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/414/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/414/options.json index 0ab445fe47b8..91b308200e05 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/414/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/414/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:5)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/417/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/417/options.json index 83b3a8b5f394..f8560a7de9d6 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/417/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/417/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid left-hand side in for-in statement (1:5)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/418/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/418/options.json index 83b3a8b5f394..f8560a7de9d6 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/418/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/418/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid left-hand side in for-in statement (1:5)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/419/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/419/options.json index 93db7641c75b..2a28555f76db 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/419/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/419/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:9)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/420/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/420/options.json index 0c5f4deed6c3..fa579aa83145 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/420/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/420/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:24)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/421/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/421/options.json index e68fbb6aec4d..10bd5624f0e7 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/421/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/421/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/422/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/422/options.json index 358068a16a5d..9e093bfdcd96 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/422/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/422/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:12)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/423/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/423/options.json index 167116741e8c..c958665c03e2 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/423/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/423/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:7)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/424/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/424/options.json index 167116741e8c..c958665c03e2 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/424/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/424/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:7)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/425/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/425/options.json index 9b3d4185f11a..429d96ca3f9a 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/425/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/425/options.json @@ -1,3 +1,3 @@ { "throws": "Missing catch or finally clause (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/426/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/426/options.json index 439961e8eac4..5eb566673135 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/426/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/426/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected character '‿' (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/427/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/427/options.json index 8ded4af443bf..aadfa63716c2 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/427/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/427/options.json @@ -1,3 +1,3 @@ { "throws": "Multiple default clauses (1:22)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/429/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/429/options.json index 228eff80e8ac..eb40f4f05235 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/429/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/429/options.json @@ -1,3 +1,3 @@ { "throws": "Unterminated comment (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/430/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/430/options.json index 228eff80e8ac..eb40f4f05235 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/430/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/430/options.json @@ -1,3 +1,3 @@ { "throws": "Unterminated comment (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/431/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/431/options.json index 228eff80e8ac..eb40f4f05235 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/431/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/431/options.json @@ -1,3 +1,3 @@ { "throws": "Unterminated comment (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/432/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/432/options.json index 228eff80e8ac..eb40f4f05235 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/432/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/432/options.json @@ -1,3 +1,3 @@ { "throws": "Unterminated comment (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/433/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/433/options.json index 228eff80e8ac..eb40f4f05235 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/433/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/433/options.json @@ -1,3 +1,3 @@ { "throws": "Unterminated comment (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/434/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/434/options.json index 228eff80e8ac..eb40f4f05235 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/434/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/434/options.json @@ -1,3 +1,3 @@ { "throws": "Unterminated comment (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/435/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/435/options.json index 0361d7c7d2b2..7d847e99c88e 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/435/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/435/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (2:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/436/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/436/options.json index 0361d7c7d2b2..7d847e99c88e 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/436/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/436/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (2:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/437/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/437/options.json index 0361d7c7d2b2..7d847e99c88e 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/437/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/437/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (2:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/438/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/438/options.json index aa8239233c6a..c1ce88e361db 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/438/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/438/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (3:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/439/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/439/options.json index 0361d7c7d2b2..7d847e99c88e 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/439/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/439/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (2:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/440/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/440/options.json index aa8239233c6a..c1ce88e361db 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/440/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/440/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (3:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/441/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/441/options.json index e07b72599f39..66fb1cd63bc6 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/441/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/441/options.json @@ -1,3 +1,3 @@ { "throws": "Unterminated regular expression (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/442/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/442/options.json index aa8239233c6a..c1ce88e361db 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/442/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/442/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (3:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/443/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/443/options.json index 0b22a698d6b9..a10e365ed5d3 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/443/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/443/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (2:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/444/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/444/options.json index 02c55000837a..913ef7d74a3f 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/444/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/444/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (3:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/445/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/445/options.json index 02c55000837a..913ef7d74a3f 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/445/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/445/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (3:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/446/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/446/options.json index c5a8baf2b8ff..381fd12ce2d0 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/446/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/446/options.json @@ -1,3 +1,3 @@ { "throws": "Expecting Unicode escape sequence \\uXXXX (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/447/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/447/options.json index b813254a6566..82bcfe621c49 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/447/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/447/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid Unicode escape (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/448/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/448/options.json index c5a8baf2b8ff..381fd12ce2d0 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/448/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/448/options.json @@ -1,3 +1,3 @@ { "throws": "Expecting Unicode escape sequence \\uXXXX (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/449/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/449/options.json index b813254a6566..82bcfe621c49 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/449/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/449/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid Unicode escape (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/450/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/450/options.json index 5fa90218498d..94eb7376be93 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/450/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/450/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected character '‌' (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/451/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/451/options.json index 90935f68f410..c67d8bb8a955 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/451/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/451/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected character '‍' (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/452/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/452/options.json index a760565b1bd2..d732a1630991 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/452/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/452/options.json @@ -1,3 +1,3 @@ { "throws": "Unterminated string constant (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/453/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/453/options.json index 143c8be64376..8e0dce66eff8 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/453/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/453/options.json @@ -1,3 +1,3 @@ { "throws": "Bad character escape sequence (1:3)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/454/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/454/options.json index dececd0e835b..f9d29c7f328c 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/454/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/454/options.json @@ -1,3 +1,3 @@ { "throws": "'return' outside of function (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/455/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/455/options.json index 6ccbfe923d1c..701f9fe8f27a 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/455/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/455/options.json @@ -1,3 +1,3 @@ { "throws": "Unsyntactic break (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/456/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/456/options.json index 14a50290d0c9..de66853a7a3d 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/456/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/456/options.json @@ -1,3 +1,3 @@ { "throws": "Unsyntactic continue (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/457/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/457/options.json index 332366a21ce4..c726e8fa98e4 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/457/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/457/options.json @@ -1,3 +1,3 @@ { "throws": "Unsyntactic continue (1:22)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/459/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/459/options.json index 33bf5f84b806..070e662e80d4 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/459/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/459/options.json @@ -1,3 +1,3 @@ { "throws": "Unsyntactic break (1:15)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/460/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/460/options.json index e75cfed858a7..2a2e15787aa7 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/460/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/460/options.json @@ -1,3 +1,3 @@ { "throws": "Unsyntactic continue (1:15)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/461/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/461/options.json index 8008848be30d..464af80a1561 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/461/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/461/options.json @@ -1,3 +1,3 @@ { "throws": "Unsyntactic break (1:33)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/462/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/462/options.json index f0faa7faaa59..a056cb50e190 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/462/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/462/options.json @@ -1,3 +1,3 @@ { "throws": "Unsyntactic continue (1:33)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/463/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/463/options.json index 8008848be30d..464af80a1561 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/463/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/463/options.json @@ -1,3 +1,3 @@ { "throws": "Unsyntactic break (1:33)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/464/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/464/options.json index f0faa7faaa59..a056cb50e190 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/464/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/464/options.json @@ -1,3 +1,3 @@ { "throws": "Unsyntactic continue (1:33)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/465/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/465/options.json index a430baffb52e..da7f2590db0b 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/465/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/465/options.json @@ -1,3 +1,3 @@ { "throws": "Label 'x' is already declared (1:18)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/466/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/466/options.json index 811247045358..1517e1719333 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/466/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/466/options.json @@ -1,3 +1,3 @@ { "throws": "Deleting local variable in strict mode (1:29)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/467/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/467/options.json index 1b86ef2104e3..31b4c6d2a040 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/467/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/467/options.json @@ -1,3 +1,3 @@ { "throws": "'with' in strict mode (1:29)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/499/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/499/options.json index 11a57d6c56e3..ae2bfab55c68 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/499/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/499/options.json @@ -1,3 +1,3 @@ { "throws": "Octal literal in strict mode (1:35)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/500/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/500/options.json index 3711f38eefa6..ec4ea95dc9cb 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/500/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/500/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid number (1:33)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/501/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/501/options.json index 298495868929..7e50b5f9165e 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/501/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/501/options.json @@ -1,3 +1,3 @@ { "throws": "Octal literal in strict mode (1:38)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/502/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/502/options.json index a864ada0fe6f..dd200e16e5bf 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/502/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/502/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid number (1:36)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/503/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/503/options.json index e92ad336dde1..8389b2c726ca 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/503/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/503/options.json @@ -1,3 +1,3 @@ { "throws": "Octal literal in strict mode (1:69)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/514/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/514/options.json index 421c28bbd6a2..e23388601bb0 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/514/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/514/options.json @@ -1,3 +1,3 @@ { "throws": "Argument name clash in strict mode (1:14)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/517/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/517/options.json index 9db3dfc50c81..660e54ca2a82 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/517/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/517/options.json @@ -1,3 +1,3 @@ { "throws": "Argument name clash in strict mode (1:43)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/518/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/518/options.json index 13e320a98373..28545ded1456 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/518/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/518/options.json @@ -1,3 +1,3 @@ { "throws": "Argument name clash in strict mode (1:15)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/519/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/519/options.json index 0e4f27a823e5..0f592c74a35b 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/519/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/519/options.json @@ -1,3 +1,3 @@ { "throws": "Argument name clash in strict mode (1:44)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/522/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/522/options.json index 60bb6527f8bd..3696be182d05 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/522/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/522/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid number (1:65)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/523/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/523/options.json index 9f7910a41343..27a7b64d71d4 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/523/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/523/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:4)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/524/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/524/options.json index 5ba39437b25f..d07b41872ba6 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/524/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/524/options.json @@ -1,3 +1,3 @@ { "throws": "Illegal newline after throw (1:5)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/core/uncategorised/536/options.json b/packages/babel-parser/test/fixtures/core/uncategorised/536/options.json index 167116741e8c..c958665c03e2 100644 --- a/packages/babel-parser/test/fixtures/core/uncategorised/536/options.json +++ b/packages/babel-parser/test/fixtures/core/uncategorised/536/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:7)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/arrow-functions/no-binary-left/options.json b/packages/babel-parser/test/fixtures/es2015/arrow-functions/no-binary-left/options.json index 410ecd16fddf..e4ae9a99d01b 100644 --- a/packages/babel-parser/test/fixtures/es2015/arrow-functions/no-binary-left/options.json +++ b/packages/babel-parser/test/fixtures/es2015/arrow-functions/no-binary-left/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \";\" (1:9)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/arrow-functions/no-ternary-test/options.json b/packages/babel-parser/test/fixtures/es2015/arrow-functions/no-ternary-test/options.json index 410ecd16fddf..e4ae9a99d01b 100644 --- a/packages/babel-parser/test/fixtures/es2015/arrow-functions/no-ternary-test/options.json +++ b/packages/babel-parser/test/fixtures/es2015/arrow-functions/no-ternary-test/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \";\" (1:9)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/class-methods/disallow-static-generator-prototype/options.json b/packages/babel-parser/test/fixtures/es2015/class-methods/disallow-static-generator-prototype/options.json index 00c025e55141..524ed587e113 100644 --- a/packages/babel-parser/test/fixtures/es2015/class-methods/disallow-static-generator-prototype/options.json +++ b/packages/babel-parser/test/fixtures/es2015/class-methods/disallow-static-generator-prototype/options.json @@ -1,3 +1,3 @@ { "throws": "Classes may not have static property named prototype (2:10)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/class-methods/disallow-static-prototype/options.json b/packages/babel-parser/test/fixtures/es2015/class-methods/disallow-static-prototype/options.json index bc9a87203e14..f30c8a49abd3 100644 --- a/packages/babel-parser/test/fixtures/es2015/class-methods/disallow-static-prototype/options.json +++ b/packages/babel-parser/test/fixtures/es2015/class-methods/disallow-static-prototype/options.json @@ -1,3 +1,3 @@ { "throws": "Classes may not have static property named prototype (2:9)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/class-methods/getter-signature/options.json b/packages/babel-parser/test/fixtures/es2015/class-methods/getter-signature/options.json index e096100dcfd6..65bc24a66fcd 100644 --- a/packages/babel-parser/test/fixtures/es2015/class-methods/getter-signature/options.json +++ b/packages/babel-parser/test/fixtures/es2015/class-methods/getter-signature/options.json @@ -1,3 +1,3 @@ { "throws": "getter must not have any formal parameters (2:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/class-methods/malformed-super-expression/options.json b/packages/babel-parser/test/fixtures/es2015/class-methods/malformed-super-expression/options.json index 451cd4751674..dc41f0b14b5a 100644 --- a/packages/babel-parser/test/fixtures/es2015/class-methods/malformed-super-expression/options.json +++ b/packages/babel-parser/test/fixtures/es2015/class-methods/malformed-super-expression/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (3:10)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/class/division/input.js b/packages/babel-parser/test/fixtures/es2015/class/division/input.js new file mode 100644 index 000000000000..590fe776ecf6 --- /dev/null +++ b/packages/babel-parser/test/fixtures/es2015/class/division/input.js @@ -0,0 +1,9 @@ +x = class{} / foo + +x = class{} +/ foo / g + +(x = class{} / foo) + +(x = class{} +/ foo / g) diff --git a/packages/babel-parser/test/fixtures/es2015/class/division/output.json b/packages/babel-parser/test/fixtures/es2015/class/division/output.json new file mode 100644 index 000000000000..0a4a21ad4d20 --- /dev/null +++ b/packages/babel-parser/test/fixtures/es2015/class/division/output.json @@ -0,0 +1,561 @@ +{ + "type": "File", + "start": 0, + "end": 86, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 9, + "column": 10 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 86, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 9, + "column": 10 + } + }, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + }, + "identifierName": "x" + }, + "name": "x" + }, + "right": { + "type": "BinaryExpression", + "start": 4, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "left": { + "type": "ClassExpression", + "start": 4, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "id": null, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 9, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "body": [] + } + }, + "operator": "/", + "right": { + "type": "Identifier", + "start": 14, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 17 + }, + "identifierName": "foo" + }, + "name": "foo" + } + } + } + }, + { + "type": "ExpressionStatement", + "start": 19, + "end": 86, + "loc": { + "start": { + "line": 3, + "column": 0 + }, + "end": { + "line": 9, + "column": 10 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 19, + "end": 86, + "loc": { + "start": { + "line": 3, + "column": 0 + }, + "end": { + "line": 9, + "column": 10 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 19, + "end": 20, + "loc": { + "start": { + "line": 3, + "column": 0 + }, + "end": { + "line": 3, + "column": 1 + }, + "identifierName": "x" + }, + "name": "x" + }, + "right": { + "type": "BinaryExpression", + "start": 23, + "end": 86, + "loc": { + "start": { + "line": 3, + "column": 4 + }, + "end": { + "line": 9, + "column": 10 + } + }, + "left": { + "type": "BinaryExpression", + "start": 23, + "end": 36, + "loc": { + "start": { + "line": 3, + "column": 4 + }, + "end": { + "line": 4, + "column": 5 + } + }, + "left": { + "type": "ClassExpression", + "start": 23, + "end": 30, + "loc": { + "start": { + "line": 3, + "column": 4 + }, + "end": { + "line": 3, + "column": 11 + } + }, + "id": null, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 28, + "end": 30, + "loc": { + "start": { + "line": 3, + "column": 9 + }, + "end": { + "line": 3, + "column": 11 + } + }, + "body": [] + } + }, + "operator": "/", + "right": { + "type": "Identifier", + "start": 33, + "end": 36, + "loc": { + "start": { + "line": 4, + "column": 2 + }, + "end": { + "line": 4, + "column": 5 + }, + "identifierName": "foo" + }, + "name": "foo" + } + }, + "operator": "/", + "right": { + "type": "CallExpression", + "start": 39, + "end": 86, + "loc": { + "start": { + "line": 4, + "column": 8 + }, + "end": { + "line": 9, + "column": 10 + } + }, + "callee": { + "type": "CallExpression", + "start": 39, + "end": 61, + "loc": { + "start": { + "line": 4, + "column": 8 + }, + "end": { + "line": 6, + "column": 19 + } + }, + "callee": { + "type": "Identifier", + "start": 39, + "end": 40, + "loc": { + "start": { + "line": 4, + "column": 8 + }, + "end": { + "line": 4, + "column": 9 + }, + "identifierName": "g" + }, + "name": "g" + }, + "arguments": [ + { + "type": "AssignmentExpression", + "start": 43, + "end": 60, + "loc": { + "start": { + "line": 6, + "column": 1 + }, + "end": { + "line": 6, + "column": 18 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 43, + "end": 44, + "loc": { + "start": { + "line": 6, + "column": 1 + }, + "end": { + "line": 6, + "column": 2 + }, + "identifierName": "x" + }, + "name": "x" + }, + "right": { + "type": "BinaryExpression", + "start": 47, + "end": 60, + "loc": { + "start": { + "line": 6, + "column": 5 + }, + "end": { + "line": 6, + "column": 18 + } + }, + "left": { + "type": "ClassExpression", + "start": 47, + "end": 54, + "loc": { + "start": { + "line": 6, + "column": 5 + }, + "end": { + "line": 6, + "column": 12 + } + }, + "id": null, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 52, + "end": 54, + "loc": { + "start": { + "line": 6, + "column": 10 + }, + "end": { + "line": 6, + "column": 12 + } + }, + "body": [] + } + }, + "operator": "/", + "right": { + "type": "Identifier", + "start": 57, + "end": 60, + "loc": { + "start": { + "line": 6, + "column": 15 + }, + "end": { + "line": 6, + "column": 18 + }, + "identifierName": "foo" + }, + "name": "foo" + } + } + } + ] + }, + "arguments": [ + { + "type": "AssignmentExpression", + "start": 64, + "end": 85, + "loc": { + "start": { + "line": 8, + "column": 1 + }, + "end": { + "line": 9, + "column": 9 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 64, + "end": 65, + "loc": { + "start": { + "line": 8, + "column": 1 + }, + "end": { + "line": 8, + "column": 2 + }, + "identifierName": "x" + }, + "name": "x" + }, + "right": { + "type": "BinaryExpression", + "start": 68, + "end": 85, + "loc": { + "start": { + "line": 8, + "column": 5 + }, + "end": { + "line": 9, + "column": 9 + } + }, + "left": { + "type": "BinaryExpression", + "start": 68, + "end": 81, + "loc": { + "start": { + "line": 8, + "column": 5 + }, + "end": { + "line": 9, + "column": 5 + } + }, + "left": { + "type": "ClassExpression", + "start": 68, + "end": 75, + "loc": { + "start": { + "line": 8, + "column": 5 + }, + "end": { + "line": 8, + "column": 12 + } + }, + "id": null, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 73, + "end": 75, + "loc": { + "start": { + "line": 8, + "column": 10 + }, + "end": { + "line": 8, + "column": 12 + } + }, + "body": [] + } + }, + "operator": "/", + "right": { + "type": "Identifier", + "start": 78, + "end": 81, + "loc": { + "start": { + "line": 9, + "column": 2 + }, + "end": { + "line": 9, + "column": 5 + }, + "identifierName": "foo" + }, + "name": "foo" + } + }, + "operator": "/", + "right": { + "type": "Identifier", + "start": 84, + "end": 85, + "loc": { + "start": { + "line": 9, + "column": 8 + }, + "end": { + "line": 9, + "column": 9 + }, + "identifierName": "g" + }, + "name": "g" + } + } + } + ] + } + } + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/es2015/destructuring/parenthesized-lhs-array/options.json b/packages/babel-parser/test/fixtures/es2015/destructuring/parenthesized-lhs-array/options.json index 8853dc92d106..dfcad1b5cbf0 100644 --- a/packages/babel-parser/test/fixtures/es2015/destructuring/parenthesized-lhs-array/options.json +++ b/packages/babel-parser/test/fixtures/es2015/destructuring/parenthesized-lhs-array/options.json @@ -1,3 +1,3 @@ { "throws": "You're trying to assign to a parenthesized expression, eg. instead of `([a]) = 0` use `([a] = 0)` (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/destructuring/parenthesized-lhs-object/options.json b/packages/babel-parser/test/fixtures/es2015/destructuring/parenthesized-lhs-object/options.json index f0acf87342c8..d0fb48924093 100644 --- a/packages/babel-parser/test/fixtures/es2015/destructuring/parenthesized-lhs-object/options.json +++ b/packages/babel-parser/test/fixtures/es2015/destructuring/parenthesized-lhs-object/options.json @@ -1,3 +1,3 @@ { "throws": "You're trying to assign to a parenthesized expression, eg. instead of `({a}) = 0` use `({a} = 0)` (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/for-in/const-initializer/options.json b/packages/babel-parser/test/fixtures/es2015/for-in/const-initializer/options.json index a7c6e79257b9..85e8252d6fda 100644 --- a/packages/babel-parser/test/fixtures/es2015/for-in/const-initializer/options.json +++ b/packages/babel-parser/test/fixtures/es2015/for-in/const-initializer/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \";\" (1:17)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/for-in/let-initializer/options.json b/packages/babel-parser/test/fixtures/es2015/for-in/let-initializer/options.json index bc625e0d0c48..a717ca0fa7e7 100644 --- a/packages/babel-parser/test/fixtures/es2015/for-in/let-initializer/options.json +++ b/packages/babel-parser/test/fixtures/es2015/for-in/let-initializer/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \";\" (1:15)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/for-in/strict-initializer/options.json b/packages/babel-parser/test/fixtures/es2015/for-in/strict-initializer/options.json index 983e17a01e63..497c2b2bde92 100644 --- a/packages/babel-parser/test/fixtures/es2015/for-in/strict-initializer/options.json +++ b/packages/babel-parser/test/fixtures/es2015/for-in/strict-initializer/options.json @@ -1,3 +1,3 @@ { "throws": "for-in initializer in strict mode (2:15)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/for-in/var-arraybindingpattern-initializer/options.json b/packages/babel-parser/test/fixtures/es2015/for-in/var-arraybindingpattern-initializer/options.json index a7c6e79257b9..85e8252d6fda 100644 --- a/packages/babel-parser/test/fixtures/es2015/for-in/var-arraybindingpattern-initializer/options.json +++ b/packages/babel-parser/test/fixtures/es2015/for-in/var-arraybindingpattern-initializer/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \";\" (1:17)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/for-in/var-objectbindingpattern-initializer/options.json b/packages/babel-parser/test/fixtures/es2015/for-in/var-objectbindingpattern-initializer/options.json index a7c6e79257b9..85e8252d6fda 100644 --- a/packages/babel-parser/test/fixtures/es2015/for-in/var-objectbindingpattern-initializer/options.json +++ b/packages/babel-parser/test/fixtures/es2015/for-in/var-objectbindingpattern-initializer/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \";\" (1:17)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/meta-properties/new-invalid-prop/options.json b/packages/babel-parser/test/fixtures/es2015/meta-properties/new-invalid-prop/options.json index 91a5751e7f72..8a88f91714d0 100644 --- a/packages/babel-parser/test/fixtures/es2015/meta-properties/new-invalid-prop/options.json +++ b/packages/babel-parser/test/fixtures/es2015/meta-properties/new-invalid-prop/options.json @@ -1,3 +1,3 @@ { "throws": "The only valid meta property for new is new.target (1:4)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/modules/duplicate-named-export-class-declaration/options.json b/packages/babel-parser/test/fixtures/es2015/modules/duplicate-named-export-class-declaration/options.json index c58e1ea64f30..3bdafe893282 100644 --- a/packages/babel-parser/test/fixtures/es2015/modules/duplicate-named-export-class-declaration/options.json +++ b/packages/babel-parser/test/fixtures/es2015/modules/duplicate-named-export-class-declaration/options.json @@ -1,4 +1,3 @@ { "throws": "`Foo` has already been exported. Exported identifiers must be unique. (2:0)" } - diff --git a/packages/babel-parser/test/fixtures/es2015/modules/export-default-variable-declaration/options.json b/packages/babel-parser/test/fixtures/es2015/modules/export-default-variable-declaration/options.json index 371aabd61807..734063430a9e 100644 --- a/packages/babel-parser/test/fixtures/es2015/modules/export-default-variable-declaration/options.json +++ b/packages/babel-parser/test/fixtures/es2015/modules/export-default-variable-declaration/options.json @@ -1,3 +1,3 @@ { - "throws": "Only expressions, functions or classes are allowed as the `default` export. (1:15)" -} \ No newline at end of file + "throws": "Only expressions, functions or classes are allowed as the `default` export. (1:15)" +} diff --git a/packages/babel-parser/test/fixtures/es2015/modules/export-default-variable-declaration2/options.json b/packages/babel-parser/test/fixtures/es2015/modules/export-default-variable-declaration2/options.json index 371aabd61807..734063430a9e 100644 --- a/packages/babel-parser/test/fixtures/es2015/modules/export-default-variable-declaration2/options.json +++ b/packages/babel-parser/test/fixtures/es2015/modules/export-default-variable-declaration2/options.json @@ -1,3 +1,3 @@ { - "throws": "Only expressions, functions or classes are allowed as the `default` export. (1:15)" -} \ No newline at end of file + "throws": "Only expressions, functions or classes are allowed as the `default` export. (1:15)" +} diff --git a/packages/babel-parser/test/fixtures/es2015/modules/export-default-variable-declaration3/options.json b/packages/babel-parser/test/fixtures/es2015/modules/export-default-variable-declaration3/options.json index 371aabd61807..734063430a9e 100644 --- a/packages/babel-parser/test/fixtures/es2015/modules/export-default-variable-declaration3/options.json +++ b/packages/babel-parser/test/fixtures/es2015/modules/export-default-variable-declaration3/options.json @@ -1,3 +1,3 @@ { - "throws": "Only expressions, functions or classes are allowed as the `default` export. (1:15)" -} \ No newline at end of file + "throws": "Only expressions, functions or classes are allowed as the `default` export. (1:15)" +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/.260/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/.260/options.json index 532b3a9472b4..4914c41568d5 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/.260/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/.260/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:36)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/.335/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/.335/options.json index 6b856bb7282b..b497c0c8327c 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/.335/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/.335/options.json @@ -1,3 +1,3 @@ { "throws": "Binding yield (1:13)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/.343/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/.343/options.json index 25c8cf7030cb..77b813987217 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/.343/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/.343/options.json @@ -1,3 +1,3 @@ { "throws": "Code point out of bounds (1:4)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/.345/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/.345/options.json index 8b9f1dfe8aa1..d347764e91cf 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/.345/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/.345/options.json @@ -1,3 +1,3 @@ { "throws": "getter should have no params (1:18)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/.346/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/.346/options.json index 1cddead19106..74e0c7411382 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/.346/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/.346/options.json @@ -1,3 +1,3 @@ { "throws": "setter should have exactly one param (1:18)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/125/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/125/options.json index bbe7740f41d5..09e50a3d71c3 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/125/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/125/options.json @@ -1,3 +1,3 @@ { "throws": "Duplicate constructor in the same class (1:27)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/126/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/126/options.json index 67e6a7ea52ef..38e87b07044c 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/126/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/126/options.json @@ -1,3 +1,3 @@ { "throws": "Constructor can't have get/set modifier (1:14)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/127/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/127/options.json index 282ca0823218..becf560010f4 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/127/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/127/options.json @@ -1,3 +1,3 @@ { "throws": "Constructor can't be a generator (1:11)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/151/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/151/options.json index 0ab445fe47b8..91b308200e05 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/151/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/151/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:5)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/197/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/197/options.json index e72f7dc61d8f..fbaba9a022d5 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/197/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/197/options.json @@ -1,3 +1,3 @@ { "ecmaVersion": 6 -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/198/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/198/options.json index 5c0ca078e5c3..3f09c36a5f1c 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/198/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/198/options.json @@ -1,3 +1,3 @@ { "throws": "Expected number in radix 8 (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/199/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/199/options.json index f42de64632d2..dd7623505983 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/199/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/199/options.json @@ -1,3 +1,3 @@ { "throws": "Identifier directly after number (1:3)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/200/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/200/options.json index 5c0ca078e5c3..3f09c36a5f1c 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/200/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/200/options.json @@ -1,3 +1,3 @@ { "throws": "Expected number in radix 8 (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/201/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/201/options.json index f313a1ab4442..d52d9cfac4bc 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/201/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/201/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \";\" (1:3)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/202/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/202/options.json index 5c0ca078e5c3..3f09c36a5f1c 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/202/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/202/options.json @@ -1,3 +1,3 @@ { "throws": "Expected number in radix 8 (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/203/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/203/options.json index f42de64632d2..dd7623505983 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/203/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/203/options.json @@ -1,3 +1,3 @@ { "throws": "Identifier directly after number (1:3)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/204/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/204/options.json index 5c0ca078e5c3..3f09c36a5f1c 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/204/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/204/options.json @@ -1,3 +1,3 @@ { "throws": "Expected number in radix 8 (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/205/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/205/options.json index f313a1ab4442..d52d9cfac4bc 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/205/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/205/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \";\" (1:3)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/206/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/206/options.json index d00691a13763..40dc3da9a8f4 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/206/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/206/options.json @@ -1,3 +1,3 @@ { "throws": "Expected number in radix 2 (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/207/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/207/options.json index f42de64632d2..dd7623505983 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/207/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/207/options.json @@ -1,3 +1,3 @@ { "throws": "Identifier directly after number (1:3)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/208/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/208/options.json index d00691a13763..40dc3da9a8f4 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/208/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/208/options.json @@ -1,3 +1,3 @@ { "throws": "Expected number in radix 2 (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/209/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/209/options.json index f313a1ab4442..d52d9cfac4bc 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/209/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/209/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \";\" (1:3)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/210/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/210/options.json index f313a1ab4442..d52d9cfac4bc 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/210/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/210/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \";\" (1:3)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/211/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/211/options.json index d00691a13763..40dc3da9a8f4 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/211/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/211/options.json @@ -1,3 +1,3 @@ { "throws": "Expected number in radix 2 (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/212/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/212/options.json index f42de64632d2..dd7623505983 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/212/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/212/options.json @@ -1,3 +1,3 @@ { "throws": "Identifier directly after number (1:3)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/213/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/213/options.json index d00691a13763..40dc3da9a8f4 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/213/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/213/options.json @@ -1,3 +1,3 @@ { "throws": "Expected number in radix 2 (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/214/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/214/options.json index f313a1ab4442..d52d9cfac4bc 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/214/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/214/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \";\" (1:3)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/215/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/215/options.json index f313a1ab4442..d52d9cfac4bc 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/215/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/215/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \";\" (1:3)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/216/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/216/options.json index 25c8cf7030cb..77b813987217 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/216/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/216/options.json @@ -1,3 +1,3 @@ { "throws": "Code point out of bounds (1:4)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/217/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/217/options.json index 79accc993fbd..efaa7d304ccc 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/217/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/217/options.json @@ -1,3 +1,3 @@ { "throws": "Bad character escape sequence (1:4)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/218/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/218/options.json index 79accc993fbd..efaa7d304ccc 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/218/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/218/options.json @@ -1,3 +1,3 @@ { "throws": "Bad character escape sequence (1:4)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/219/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/219/options.json index 79accc993fbd..efaa7d304ccc 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/219/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/219/options.json @@ -1,3 +1,3 @@ { "throws": "Bad character escape sequence (1:4)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/220/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/220/options.json index 740de73d851f..6010e96ed144 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/220/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/220/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid left-hand side in assignment expression (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/221/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/221/options.json index d8b91465e5ab..7c5f08eb9ba6 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/221/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/221/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid left-hand side in assignment expression (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/222/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/222/options.json index 033fe6edc645..e6630c3da3e8 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/222/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/222/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid left-hand side in object destructuring pattern (1:7)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/223/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/223/options.json index e4a047907eda..da1e10744904 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/223/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/223/options.json @@ -1,3 +1,3 @@ { "throws": "Object pattern can't contain getter or setter (1:8)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/224/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/224/options.json index 626e94c744f1..cd6a9c1b1a0a 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/224/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/224/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \";\" (2:4)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/225/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/225/options.json index 236c59f8852a..42e596c50c84 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/225/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/225/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \";\" (2:6)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/226/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/226/options.json index 93db7641c75b..2a28555f76db 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/226/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/226/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:9)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/228/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/228/options.json index c8e5ca6e7671..9f34dba23230 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/228/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/228/options.json @@ -1,3 +1,3 @@ { "throws": "Argument name clash in strict mode (1:37)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/229/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/229/options.json index 9f7910a41343..27a7b64d71d4 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/229/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/229/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:4)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/230/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/230/options.json index 9f7910a41343..27a7b64d71d4 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/230/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/230/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:4)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/231/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/231/options.json index 9f7910a41343..27a7b64d71d4 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/231/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/231/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:4)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/232/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/232/options.json index 515b9716732d..158f0af7b450 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/232/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/232/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:6)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/237/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/237/options.json index 06a405c87b83..e1e139e4ac89 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/237/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/237/options.json @@ -1,4 +1,4 @@ { "sourceType": "module", "throws": "Unexpected token (1:10)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/238/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/238/options.json index 9a5aa6e3a490..b5dc7b8e0755 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/238/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/238/options.json @@ -1,4 +1,4 @@ { "sourceType": "module", "throws": "Unexpected token (1:19)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/239/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/239/options.json index 2f4c86f4bc94..aa3b1c439952 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/239/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/239/options.json @@ -1,4 +1,4 @@ { "sourceType": "module", "throws": "Unexpected token (1:16)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/240/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/240/options.json index 04b967a2eea9..b5b75f41875c 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/240/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/240/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/241/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/241/options.json index 9f7910a41343..27a7b64d71d4 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/241/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/241/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:4)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/248/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/248/options.json index 8d80c05650ee..6d0445e20eb7 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/248/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/248/options.json @@ -1,3 +1,3 @@ { "throws": "Argument name clash in strict mode (1:18)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/249/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/249/options.json index 2fdbbb1bc8ca..0f2c1bee90b0 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/249/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/249/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid number (1:21)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/250/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/250/options.json index 04b967a2eea9..b5b75f41875c 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/250/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/250/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/251/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/251/options.json index 419e8d307f24..99ffc0de0153 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/251/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/251/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid left-hand side in arrow function parameters (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/252/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/252/options.json index 419e8d307f24..99ffc0de0153 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/252/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/252/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid left-hand side in arrow function parameters (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/264/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/264/options.json index 182d15515976..5162185002ad 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/264/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/264/options.json @@ -1,3 +1,3 @@ { "throws": "Unterminated template (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/273/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/273/options.json index 93db7641c75b..2a28555f76db 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/273/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/273/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:9)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/275/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/275/options.json index 358068a16a5d..9e093bfdcd96 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/275/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/275/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:12)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/276/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/276/options.json index 515b9716732d..158f0af7b450 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/276/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/276/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:6)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/280/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/280/options.json index f0484332154c..0c0a9d0136e3 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/280/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/280/options.json @@ -1,3 +1,3 @@ { "throws": "Argument name clash in strict mode (1:30)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/281/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/281/options.json index 2ece69e863a5..4773c60e5b99 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/281/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/281/options.json @@ -1,3 +1,3 @@ { "throws": "Argument name clash in strict mode (1:47)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/284/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/284/options.json index 70cf4c97fea6..71f5061aff9a 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/284/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/284/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid left-hand side in arrow function parameters (1:3)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/285/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/285/options.json index 0ab445fe47b8..91b308200e05 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/285/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/285/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:5)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/290/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/290/options.json index 8513ff0bed12..473cd470d4f1 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/290/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/290/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid escape sequence in template (1:23)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/291/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/291/options.json index b857e8989a73..ae24fbee33c8 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/291/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/291/options.json @@ -1,3 +1,3 @@ { "throws": "'import' and 'export' may only appear at the top level (1:7)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/293/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/293/options.json index 515b9716732d..158f0af7b450 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/293/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/293/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:6)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/294/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/294/options.json index 9f7910a41343..27a7b64d71d4 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/294/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/294/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:4)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/298/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/298/options.json index b16ca8e5ee32..49d27a1476b0 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/298/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/298/options.json @@ -1,3 +1,3 @@ { "throws": "Object pattern can't contain getter or setter (1:7)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/301/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/301/options.json index 54925950e059..2104ca43283f 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/301/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/301/options.json @@ -1,3 +1,3 @@ { "sourceType": "module" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/311/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/311/options.json index 93db7641c75b..2a28555f76db 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/311/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/311/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:9)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/312/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/312/options.json index 0ab445fe47b8..91b308200e05 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/312/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/312/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:5)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/317/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/317/options.json index e72f7dc61d8f..fbaba9a022d5 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/317/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/317/options.json @@ -1,3 +1,3 @@ { "ecmaVersion": 6 -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/324/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/324/options.json index 7a858284694d..d921abda8ff6 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/324/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/324/options.json @@ -1,3 +1,3 @@ { "throws": "Complex binding patterns require an initialization value (1:7)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/325/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/325/options.json index 7a858284694d..d921abda8ff6 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/325/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/325/options.json @@ -1,3 +1,3 @@ { "throws": "Complex binding patterns require an initialization value (1:7)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/326/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/326/options.json index 0dd216ae8fd7..1c52234e7300 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/326/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/326/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected character '𖫵' (1:5)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/327/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/327/options.json index 5da67f4fd8c8..d7f3878c90ad 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/327/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/327/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected character '𫠞' (1:4)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/328/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/328/options.json index 167116741e8c..c958665c03e2 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/328/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/328/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:7)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/329/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/329/options.json index 93db7641c75b..2a28555f76db 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/329/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/329/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:9)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/330/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/330/options.json index 328b1ddde8fc..89bfc2d73f8a 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/330/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/330/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:10)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/331/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/331/options.json index 51c483f3d3d8..d50e8469b860 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/331/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/331/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:14)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/338/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/338/options.json index 54925950e059..2104ca43283f 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/338/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/338/options.json @@ -1,3 +1,3 @@ { "sourceType": "module" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/339/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/339/options.json index 3ae5cb6c96c4..fd4da953a419 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/339/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/339/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid escape sequence in template (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/348/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/348/options.json index 444a5fb35b75..c1ac8e1d138d 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/348/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/348/options.json @@ -1,3 +1,3 @@ { "throws": "Redefinition of __proto__ property (1:17)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/349/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/349/options.json index 94976eca606a..0d3bc321ef03 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/349/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/349/options.json @@ -1,3 +1,3 @@ { "throws": "Redefinition of __proto__ property (1:19)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/354/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/354/options.json index 54925950e059..2104ca43283f 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/354/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/354/options.json @@ -1,3 +1,3 @@ { "sourceType": "module" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/37/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/37/options.json index b5496da4734c..401518851fb6 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/37/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/37/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid left-hand side in arrow function parameters (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/38/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/38/options.json index aca079ee39cf..0de5e62369ae 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/38/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/38/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:20)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/386/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/386/options.json index 0d6f8c067440..9b76c337e1c3 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/386/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/386/options.json @@ -2,4 +2,3 @@ "sourceType": "module", "throws": "Unexpected token, expected \"{\" (1:7)" } - diff --git a/packages/babel-parser/test/fixtures/es2015/uncategorised/84/options.json b/packages/babel-parser/test/fixtures/es2015/uncategorised/84/options.json index 0639ae68d8a8..d56be40ce7c0 100644 --- a/packages/babel-parser/test/fixtures/es2015/uncategorised/84/options.json +++ b/packages/babel-parser/test/fixtures/es2015/uncategorised/84/options.json @@ -1,4 +1,4 @@ { "sourceType": "module", "throws": "Unexpected token (1:8)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/yield/function-name-function-declaration-inside-generator/options.json b/packages/babel-parser/test/fixtures/es2015/yield/function-name-function-declaration-inside-generator/options.json index 4b0c86bb678d..f14f9cb5405b 100644 --- a/packages/babel-parser/test/fixtures/es2015/yield/function-name-function-declaration-inside-generator/options.json +++ b/packages/babel-parser/test/fixtures/es2015/yield/function-name-function-declaration-inside-generator/options.json @@ -1,3 +1,3 @@ { "throws": "yield is a reserved word inside generator functions (2:11)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/yield/function-name-generator-expression/options.json b/packages/babel-parser/test/fixtures/es2015/yield/function-name-generator-expression/options.json index 66bd72acf927..9a7dc6156a16 100644 --- a/packages/babel-parser/test/fixtures/es2015/yield/function-name-generator-expression/options.json +++ b/packages/babel-parser/test/fixtures/es2015/yield/function-name-generator-expression/options.json @@ -1,3 +1,3 @@ { "throws": "yield is a reserved word inside generator functions (1:11)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/yield/function-name-strict-body/options.json b/packages/babel-parser/test/fixtures/es2015/yield/function-name-strict-body/options.json index 46f9bcac4a77..cf06e871cca3 100644 --- a/packages/babel-parser/test/fixtures/es2015/yield/function-name-strict-body/options.json +++ b/packages/babel-parser/test/fixtures/es2015/yield/function-name-strict-body/options.json @@ -1,3 +1,3 @@ { "throws": "yield is a reserved word in strict mode (1:9)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/yield/function-name-strict/options.json b/packages/babel-parser/test/fixtures/es2015/yield/function-name-strict/options.json index b16b4e8cd5b2..18a54259fa2b 100644 --- a/packages/babel-parser/test/fixtures/es2015/yield/function-name-strict/options.json +++ b/packages/babel-parser/test/fixtures/es2015/yield/function-name-strict/options.json @@ -1,3 +1,3 @@ { "throws": "yield is a reserved word in strict mode (2:9)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/yield/in-global-scope/options.json b/packages/babel-parser/test/fixtures/es2015/yield/in-global-scope/options.json index 658860760648..c4c1edaca3c6 100644 --- a/packages/babel-parser/test/fixtures/es2015/yield/in-global-scope/options.json +++ b/packages/babel-parser/test/fixtures/es2015/yield/in-global-scope/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \";\" (1:6)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/yield/in-plain-function/options.json b/packages/babel-parser/test/fixtures/es2015/yield/in-plain-function/options.json index 84b618af5285..63364a8e4745 100644 --- a/packages/babel-parser/test/fixtures/es2015/yield/in-plain-function/options.json +++ b/packages/babel-parser/test/fixtures/es2015/yield/in-plain-function/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \";\" (1:21)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/yield/parameter-default-inside-arrow-inside-generator-1/options.json b/packages/babel-parser/test/fixtures/es2015/yield/parameter-default-inside-arrow-inside-generator-1/options.json index f03cb0d17394..695fe418b904 100644 --- a/packages/babel-parser/test/fixtures/es2015/yield/parameter-default-inside-arrow-inside-generator-1/options.json +++ b/packages/babel-parser/test/fixtures/es2015/yield/parameter-default-inside-arrow-inside-generator-1/options.json @@ -1,3 +1,3 @@ { "throws": "yield is not allowed in the parameters of an arrow function inside a generator (2:7)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/yield/parameter-default-inside-arrow-inside-generator-2/options.json b/packages/babel-parser/test/fixtures/es2015/yield/parameter-default-inside-arrow-inside-generator-2/options.json index ab6d176e8a5f..28b45c949dcf 100644 --- a/packages/babel-parser/test/fixtures/es2015/yield/parameter-default-inside-arrow-inside-generator-2/options.json +++ b/packages/babel-parser/test/fixtures/es2015/yield/parameter-default-inside-arrow-inside-generator-2/options.json @@ -1,3 +1,3 @@ { "throws": "yield is not allowed in the parameters of an arrow function inside a generator (2:15)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/yield/parameter-default-inside-arrow-inside-generator-3/options.json b/packages/babel-parser/test/fixtures/es2015/yield/parameter-default-inside-arrow-inside-generator-3/options.json index f03cb0d17394..695fe418b904 100644 --- a/packages/babel-parser/test/fixtures/es2015/yield/parameter-default-inside-arrow-inside-generator-3/options.json +++ b/packages/babel-parser/test/fixtures/es2015/yield/parameter-default-inside-arrow-inside-generator-3/options.json @@ -1,3 +1,3 @@ { "throws": "yield is not allowed in the parameters of an arrow function inside a generator (2:7)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/yield/parameter-default-inside-arrow-inside-generator-4/options.json b/packages/babel-parser/test/fixtures/es2015/yield/parameter-default-inside-arrow-inside-generator-4/options.json index 2735e958a96e..b0fd9b81d1e7 100644 --- a/packages/babel-parser/test/fixtures/es2015/yield/parameter-default-inside-arrow-inside-generator-4/options.json +++ b/packages/babel-parser/test/fixtures/es2015/yield/parameter-default-inside-arrow-inside-generator-4/options.json @@ -1,3 +1,3 @@ { "throws": "yield is not allowed in the parameters of an arrow function inside a generator (2:17)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/yield/parameter-default-inside-arrow-inside-generator-5/options.json b/packages/babel-parser/test/fixtures/es2015/yield/parameter-default-inside-arrow-inside-generator-5/options.json index 816f0c4579af..a70dd2ba957e 100644 --- a/packages/babel-parser/test/fixtures/es2015/yield/parameter-default-inside-arrow-inside-generator-5/options.json +++ b/packages/babel-parser/test/fixtures/es2015/yield/parameter-default-inside-arrow-inside-generator-5/options.json @@ -1,3 +1,3 @@ { "throws": "yield is not allowed in the parameters of an arrow function inside a generator (2:8)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/yield/parameter-default-inside-generator-method/options.json b/packages/babel-parser/test/fixtures/es2015/yield/parameter-default-inside-generator-method/options.json index 163f3e86295a..6f5bd40fe357 100644 --- a/packages/babel-parser/test/fixtures/es2015/yield/parameter-default-inside-generator-method/options.json +++ b/packages/babel-parser/test/fixtures/es2015/yield/parameter-default-inside-generator-method/options.json @@ -1,3 +1,3 @@ { "throws": "yield is not allowed in generator parameters (1:15)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/yield/parameter-default-inside-generator/options.json b/packages/babel-parser/test/fixtures/es2015/yield/parameter-default-inside-generator/options.json index 68037130923b..dd9a684ef928 100644 --- a/packages/babel-parser/test/fixtures/es2015/yield/parameter-default-inside-generator/options.json +++ b/packages/babel-parser/test/fixtures/es2015/yield/parameter-default-inside-generator/options.json @@ -1,3 +1,3 @@ { "throws": "yield is not allowed in generator parameters (1:17)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/yield/parameter-default-strict/options.json b/packages/babel-parser/test/fixtures/es2015/yield/parameter-default-strict/options.json index 5c6c0a252a0a..4654361314fb 100644 --- a/packages/babel-parser/test/fixtures/es2015/yield/parameter-default-strict/options.json +++ b/packages/babel-parser/test/fixtures/es2015/yield/parameter-default-strict/options.json @@ -1,3 +1,3 @@ { "throws": "yield is a reserved word in strict mode (2:16)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/yield/parameter-name-arrow-inside-generator-1/options.json b/packages/babel-parser/test/fixtures/es2015/yield/parameter-name-arrow-inside-generator-1/options.json index cd9b403bd9ba..c636ce99024b 100644 --- a/packages/babel-parser/test/fixtures/es2015/yield/parameter-name-arrow-inside-generator-1/options.json +++ b/packages/babel-parser/test/fixtures/es2015/yield/parameter-name-arrow-inside-generator-1/options.json @@ -1,3 +1,3 @@ { "throws": "yield is not allowed in the parameters of an arrow function inside a generator (2:3)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/yield/parameter-name-arrow-inside-generator-2/options.json b/packages/babel-parser/test/fixtures/es2015/yield/parameter-name-arrow-inside-generator-2/options.json index cd9b403bd9ba..c636ce99024b 100644 --- a/packages/babel-parser/test/fixtures/es2015/yield/parameter-name-arrow-inside-generator-2/options.json +++ b/packages/babel-parser/test/fixtures/es2015/yield/parameter-name-arrow-inside-generator-2/options.json @@ -1,3 +1,3 @@ { "throws": "yield is not allowed in the parameters of an arrow function inside a generator (2:3)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/yield/parameter-name-arrow-inside-generator-3/options.json b/packages/babel-parser/test/fixtures/es2015/yield/parameter-name-arrow-inside-generator-3/options.json index 584d09b5ff6f..d82d23bca0b4 100644 --- a/packages/babel-parser/test/fixtures/es2015/yield/parameter-name-arrow-inside-generator-3/options.json +++ b/packages/babel-parser/test/fixtures/es2015/yield/parameter-name-arrow-inside-generator-3/options.json @@ -1,3 +1,3 @@ { "throws": "yield is not allowed in the parameters of an arrow function inside a generator (2:9)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/yield/parameter-name-arrow-no-parens-inside-generator/options.json b/packages/babel-parser/test/fixtures/es2015/yield/parameter-name-arrow-no-parens-inside-generator/options.json index e999fe365f89..659fa230c442 100644 --- a/packages/babel-parser/test/fixtures/es2015/yield/parameter-name-arrow-no-parens-inside-generator/options.json +++ b/packages/babel-parser/test/fixtures/es2015/yield/parameter-name-arrow-no-parens-inside-generator/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \";\" (2:8)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/yield/parameter-name-generator-method/options.json b/packages/babel-parser/test/fixtures/es2015/yield/parameter-name-generator-method/options.json index 66bd72acf927..9a7dc6156a16 100644 --- a/packages/babel-parser/test/fixtures/es2015/yield/parameter-name-generator-method/options.json +++ b/packages/babel-parser/test/fixtures/es2015/yield/parameter-name-generator-method/options.json @@ -1,3 +1,3 @@ { "throws": "yield is a reserved word inside generator functions (1:11)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/yield/parameter-name-generator/options.json b/packages/babel-parser/test/fixtures/es2015/yield/parameter-name-generator/options.json index e7d3ccac2080..6cd6ffe02ca9 100644 --- a/packages/babel-parser/test/fixtures/es2015/yield/parameter-name-generator/options.json +++ b/packages/babel-parser/test/fixtures/es2015/yield/parameter-name-generator/options.json @@ -1,3 +1,3 @@ { "throws": "yield is a reserved word inside generator functions (1:13)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/yield/parameter-name-strict-body/options.json b/packages/babel-parser/test/fixtures/es2015/yield/parameter-name-strict-body/options.json index 9abfaf5e098b..37e79f9fb8c7 100644 --- a/packages/babel-parser/test/fixtures/es2015/yield/parameter-name-strict-body/options.json +++ b/packages/babel-parser/test/fixtures/es2015/yield/parameter-name-strict-body/options.json @@ -1,3 +1,3 @@ { "throws": "yield is a reserved word in strict mode (1:12)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/yield/parameter-name-strict/options.json b/packages/babel-parser/test/fixtures/es2015/yield/parameter-name-strict/options.json index cc99c7829cb5..e65626183cd2 100644 --- a/packages/babel-parser/test/fixtures/es2015/yield/parameter-name-strict/options.json +++ b/packages/babel-parser/test/fixtures/es2015/yield/parameter-name-strict/options.json @@ -1,3 +1,3 @@ { "throws": "yield is a reserved word in strict mode (2:12)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2015/yield/yield-star-parameter-default-inside-generator/options.json b/packages/babel-parser/test/fixtures/es2015/yield/yield-star-parameter-default-inside-generator/options.json index 68037130923b..dd9a684ef928 100644 --- a/packages/babel-parser/test/fixtures/es2015/yield/yield-star-parameter-default-inside-generator/options.json +++ b/packages/babel-parser/test/fixtures/es2015/yield/yield-star-parameter-default-inside-generator/options.json @@ -1,3 +1,3 @@ { "throws": "yield is not allowed in generator parameters (1:17)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2017/async-functions/export-async/options.json b/packages/babel-parser/test/fixtures/es2017/async-functions/export-async/options.json index 8c70964e8c23..9b76c337e1c3 100644 --- a/packages/babel-parser/test/fixtures/es2017/async-functions/export-async/options.json +++ b/packages/babel-parser/test/fixtures/es2017/async-functions/export-async/options.json @@ -1,4 +1,4 @@ { "sourceType": "module", - "throws": "Unexpected token, expected \"function\" (1:12)" + "throws": "Unexpected token, expected \"{\" (1:7)" } diff --git a/packages/babel-parser/test/fixtures/es2017/async-functions/export-default-newline/input.js b/packages/babel-parser/test/fixtures/es2017/async-functions/export-default-newline/input.js new file mode 100644 index 000000000000..01c5415bc591 --- /dev/null +++ b/packages/babel-parser/test/fixtures/es2017/async-functions/export-default-newline/input.js @@ -0,0 +1,2 @@ +export default async +function bar() {} diff --git a/packages/babel-parser/test/fixtures/es2017/async-functions/export-default-newline/options.json b/packages/babel-parser/test/fixtures/es2017/async-functions/export-default-newline/options.json new file mode 100644 index 000000000000..2104ca43283f --- /dev/null +++ b/packages/babel-parser/test/fixtures/es2017/async-functions/export-default-newline/options.json @@ -0,0 +1,3 @@ +{ + "sourceType": "module" +} diff --git a/packages/babel-parser/test/fixtures/es2017/async-functions/export-default-newline/output.json b/packages/babel-parser/test/fixtures/es2017/async-functions/export-default-newline/output.json new file mode 100644 index 000000000000..9179ea920b9e --- /dev/null +++ b/packages/babel-parser/test/fixtures/es2017/async-functions/export-default-newline/output.json @@ -0,0 +1,119 @@ +{ + "type": "File", + "start": 0, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 17 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 17 + } + }, + "sourceType": "module", + "interpreter": null, + "body": [ + { + "type": "ExportDefaultDeclaration", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "declaration": { + "type": "Identifier", + "start": 15, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 20 + }, + "identifierName": "async" + }, + "name": "async" + } + }, + { + "type": "FunctionDeclaration", + "start": 21, + "end": 38, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 17 + } + }, + "id": { + "type": "Identifier", + "start": 30, + "end": 33, + "loc": { + "start": { + "line": 2, + "column": 9 + }, + "end": { + "line": 2, + "column": 12 + }, + "identifierName": "bar" + }, + "name": "bar" + }, + "generator": false, + "async": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 36, + "end": 38, + "loc": { + "start": { + "line": 2, + "column": 15 + }, + "end": { + "line": 2, + "column": 17 + } + }, + "body": [], + "directives": [] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/es2017/async-functions/export-invalid/input.js b/packages/babel-parser/test/fixtures/es2017/async-functions/export-invalid/input.js new file mode 100644 index 000000000000..a7d31c894d91 --- /dev/null +++ b/packages/babel-parser/test/fixtures/es2017/async-functions/export-invalid/input.js @@ -0,0 +1 @@ +export default async functionX () {} diff --git a/packages/babel-parser/test/fixtures/es2017/async-functions/export-invalid/options.json b/packages/babel-parser/test/fixtures/es2017/async-functions/export-invalid/options.json new file mode 100644 index 000000000000..5da632286fbb --- /dev/null +++ b/packages/babel-parser/test/fixtures/es2017/async-functions/export-invalid/options.json @@ -0,0 +1,4 @@ +{ + "sourceType": "module", + "throws": "Unexpected token, expected \"function\" (1:21)" +} 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-arrow/input.js new file mode 100644 index 000000000000..200a1447669b --- /dev/null +++ b/packages/babel-parser/test/fixtures/es2017/async-functions/newline-arrow/input.js @@ -0,0 +1,2 @@ +async +x => x 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-arrow/output.json new file mode 100644 index 000000000000..4c44c118638d --- /dev/null +++ b/packages/babel-parser/test/fixtures/es2017/async-functions/newline-arrow/output.json @@ -0,0 +1,136 @@ +{ + "type": "File", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 6 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 6 + } + }, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "expression": { + "type": "Identifier", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + }, + "identifierName": "async" + }, + "name": "async" + } + }, + { + "type": "ExpressionStatement", + "start": 6, + "end": 12, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 6 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 6, + "end": 12, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 6 + } + }, + "id": null, + "generator": false, + "async": false, + "params": [ + { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 1 + }, + "identifierName": "x" + }, + "name": "x" + } + ], + "body": { + "type": "Identifier", + "start": 11, + "end": 12, + "loc": { + "start": { + "line": 2, + "column": 5 + }, + "end": { + "line": 2, + "column": 6 + }, + "identifierName": "x" + }, + "name": "x" + } + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/es2017/async-functions/newline/input.js b/packages/babel-parser/test/fixtures/es2017/async-functions/newline/input.js new file mode 100644 index 000000000000..8bb94fe81dd8 --- /dev/null +++ b/packages/babel-parser/test/fixtures/es2017/async-functions/newline/input.js @@ -0,0 +1,2 @@ +async +function foo() { } diff --git a/packages/babel-parser/test/fixtures/es2017/async-functions/newline/output.json b/packages/babel-parser/test/fixtures/es2017/async-functions/newline/output.json new file mode 100644 index 000000000000..bed2c37da9e6 --- /dev/null +++ b/packages/babel-parser/test/fixtures/es2017/async-functions/newline/output.json @@ -0,0 +1,119 @@ +{ + "type": "File", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 18 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 18 + } + }, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "expression": { + "type": "Identifier", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + }, + "identifierName": "async" + }, + "name": "async" + } + }, + { + "type": "FunctionDeclaration", + "start": 6, + "end": 24, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 18 + } + }, + "id": { + "type": "Identifier", + "start": 15, + "end": 18, + "loc": { + "start": { + "line": 2, + "column": 9 + }, + "end": { + "line": 2, + "column": 12 + }, + "identifierName": "foo" + }, + "name": "foo" + }, + "generator": false, + "async": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 21, + "end": 24, + "loc": { + "start": { + "line": 2, + "column": 15 + }, + "end": { + "line": 2, + "column": 18 + } + }, + "body": [], + "directives": [] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-array-binding-pattern/.invalid-elision-after-rest/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-array-binding-pattern/.invalid-elision-after-rest/options.json index 358068a16a5d..9e093bfdcd96 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-array-binding-pattern/.invalid-elision-after-rest/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-array-binding-pattern/.invalid-elision-after-rest/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:12)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-arrow-function/invalid-line-terminator-arrow/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-arrow-function/invalid-line-terminator-arrow/options.json index 04b967a2eea9..b5b75f41875c 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-arrow-function/invalid-line-terminator-arrow/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-arrow-function/invalid-line-terminator-arrow/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-arrow-function/non-arrow-param-followed-by-arrow/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-arrow-function/non-arrow-param-followed-by-arrow/options.json index 04b967a2eea9..b5b75f41875c 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-arrow-function/non-arrow-param-followed-by-arrow/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-arrow-function/non-arrow-param-followed-by-arrow/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-arrow-function/non-arrow-param-followed-by-rest/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-arrow-function/non-arrow-param-followed-by-rest/options.json index 04b967a2eea9..b5b75f41875c 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-arrow-function/non-arrow-param-followed-by-rest/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-arrow-function/non-arrow-param-followed-by-rest/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-arrow-function/param-with-rest-without-arrow/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-arrow-function/param-with-rest-without-arrow/options.json index 9f7910a41343..27a7b64d71d4 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-arrow-function/param-with-rest-without-arrow/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-arrow-function/param-with-rest-without-arrow/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:4)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-arrow-function/rest-without-arrow/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-arrow-function/rest-without-arrow/options.json index 04b967a2eea9..b5b75f41875c 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-arrow-function/rest-without-arrow/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-arrow-function/rest-without-arrow/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/invalid-lhs-01/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/invalid-lhs-01/options.json index 552c89da58a5..bf0f292caad2 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/invalid-lhs-01/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/invalid-lhs-01/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid left-hand side in object destructuring pattern (1:4)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/invalid-lhs-02/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/invalid-lhs-02/options.json index a457612ad35f..2cfe61cdc033 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/invalid-lhs-02/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/invalid-lhs-02/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid left-hand side in object destructuring pattern (1:5)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-destructuring-assignment/invalid-cover-grammar/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-destructuring-assignment/invalid-cover-grammar/options.json index b23f881870cf..a015cd4108e6 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-destructuring-assignment/invalid-cover-grammar/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-destructuring-assignment/invalid-cover-grammar/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:22)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-destructuring-assignment/invalid-group-assignment/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-destructuring-assignment/invalid-group-assignment/options.json index d8b91465e5ab..7c5f08eb9ba6 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-destructuring-assignment/invalid-group-assignment/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-destructuring-assignment/invalid-group-assignment/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid left-hand side in assignment expression (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-export-declaration/invalid-export-batch-missing-from-clause/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-export-declaration/invalid-export-batch-missing-from-clause/options.json index 65ef4a184aeb..9ce9658f7dfa 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-export-declaration/invalid-export-batch-missing-from-clause/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-export-declaration/invalid-export-batch-missing-from-clause/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:8)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-export-declaration/invalid-export-batch-token/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-export-declaration/invalid-export-batch-token/options.json index 93db7641c75b..2a28555f76db 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-export-declaration/invalid-export-batch-token/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-export-declaration/invalid-export-batch-token/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:9)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-export-declaration/invalid-export-default-equal/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-export-declaration/invalid-export-default-equal/options.json index 7ca1e1ffbb1d..98d712379010 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-export-declaration/invalid-export-default-equal/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-export-declaration/invalid-export-default-equal/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:15)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-export-declaration/invalid-export-default-token/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-export-declaration/invalid-export-default-token/options.json index 8bb9a5f99b15..e806dd7b3a52 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-export-declaration/invalid-export-default-token/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-export-declaration/invalid-export-default-token/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:17)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-for-of/invalid-lhs-init/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-for-of/invalid-lhs-init/options.json index 29280a8d63e1..a4dd545935e8 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-for-of/invalid-lhs-init/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-for-of/invalid-lhs-init/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid left-hand side in for-of statement (1:5)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-for-of/unexpected-number/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-for-of/unexpected-number/options.json index 51c483f3d3d8..d50e8469b860 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-for-of/unexpected-number/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-for-of/unexpected-number/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:14)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-generator/.generator-parameter-binding-property-reserved/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-generator/.generator-parameter-binding-property-reserved/options.json index 26ddfc81900b..cf2a6759bd9f 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-generator/.generator-parameter-binding-property-reserved/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-generator/.generator-parameter-binding-property-reserved/options.json @@ -1,3 +1,3 @@ { "throws": "Binding yield (1:12)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-generator/generator-parameter-binding-element/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-generator/generator-parameter-binding-element/options.json index 690a8e9e3148..9f8cd12d3098 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-generator/generator-parameter-binding-element/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-generator/generator-parameter-binding-element/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (2:12)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-generator/generator-parameter-binding-property/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-generator/generator-parameter-binding-property/options.json index 690a8e9e3148..9f8cd12d3098 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-generator/generator-parameter-binding-property/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-generator/generator-parameter-binding-property/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (2:12)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-generator/generator-parameter-computed-property-name/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-generator/generator-parameter-computed-property-name/options.json index 690a8e9e3148..9f8cd12d3098 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-generator/generator-parameter-computed-property-name/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-generator/generator-parameter-computed-property-name/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (2:12)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-generator/generator-parameter-invalid-binding-element/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-generator/generator-parameter-invalid-binding-element/options.json index 38ea64b09790..f45f06d72ed4 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-generator/generator-parameter-invalid-binding-element/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-generator/generator-parameter-invalid-binding-element/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (2:13)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-generator/generator-parameter-invalid-binding-property/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-generator/generator-parameter-invalid-binding-property/options.json index 38ea64b09790..f45f06d72ed4 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-generator/generator-parameter-invalid-binding-property/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-generator/generator-parameter-invalid-binding-property/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (2:13)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-generator/generator-parameter-invalid-computed-property-name/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-generator/generator-parameter-invalid-computed-property-name/options.json index 38ea64b09790..f45f06d72ed4 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-generator/generator-parameter-invalid-computed-property-name/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-generator/generator-parameter-invalid-computed-property-name/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (2:13)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-generator/incomplete-yield-delegate/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-generator/incomplete-yield-delegate/options.json index b23f881870cf..a015cd4108e6 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-generator/incomplete-yield-delegate/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-generator/incomplete-yield-delegate/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:22)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-generator/malformed-generator-method-2/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-generator/malformed-generator-method-2/options.json index 51c483f3d3d8..d50e8469b860 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-generator/malformed-generator-method-2/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-generator/malformed-generator-method-2/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:14)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-generator/malformed-generator-method/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-generator/malformed-generator-method/options.json index 0ab445fe47b8..91b308200e05 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-generator/malformed-generator-method/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-generator/malformed-generator-method/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:5)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-identifier/.invalid_function_wait/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-identifier/.invalid_function_wait/options.json index 328b1ddde8fc..89bfc2d73f8a 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-identifier/.invalid_function_wait/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-identifier/.invalid_function_wait/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:10)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-identifier/.invalid_lone_surrogate/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-identifier/.invalid_lone_surrogate/options.json index 04b967a2eea9..b5b75f41875c 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-identifier/.invalid_lone_surrogate/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-identifier/.invalid_lone_surrogate/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-identifier/invalid_escaped_surrogate_pairs/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-identifier/invalid_escaped_surrogate_pairs/options.json index 4bb33235bd52..df97a8ee679f 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-identifier/invalid_escaped_surrogate_pairs/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-identifier/invalid_escaped_surrogate_pairs/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid Unicode escape (1:4)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-identifier/invalid_expression_await/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-identifier/invalid_expression_await/options.json index 6583569ead9f..afbed324e92a 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-identifier/invalid_expression_await/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-identifier/invalid_expression_await/options.json @@ -1,3 +1,3 @@ { "throws": "'import' and 'export' may appear only with 'sourceType: \"module\"' (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-identifier/invalid_id_smp/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-identifier/invalid_id_smp/options.json index 905116584b7b..0e85210242d9 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-identifier/invalid_id_smp/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-identifier/invalid_id_smp/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected character '🀒' (1:4)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-identifier/invalid_var_await/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-identifier/invalid_var_await/options.json index 6583569ead9f..afbed324e92a 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-identifier/invalid_var_await/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-identifier/invalid_var_await/options.json @@ -1,3 +1,3 @@ { "throws": "'import' and 'export' may appear only with 'sourceType: \"module\"' (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-after-named-after-default/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-after-named-after-default/options.json index 8bb9a5f99b15..e806dd7b3a52 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-after-named-after-default/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-after-named-after-default/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:17)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-after-named/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-after-named/options.json index 358068a16a5d..9e093bfdcd96 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-after-named/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-after-named/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:12)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-missing-module-specifier/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-missing-module-specifier/options.json index 328b1ddde8fc..89bfc2d73f8a 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-missing-module-specifier/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-missing-module-specifier/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:10)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-module-specifier/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-module-specifier/options.json index 89e36d9013c2..4c07f39d1731 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-module-specifier/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-module-specifier/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:16)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-missing-comma/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-missing-comma/options.json index 3e33f7730f4b..cb6c66081ebf 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-missing-comma/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-missing-comma/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:11)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-missing-module-specifier/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-missing-module-specifier/options.json index 1e730e170733..d5583f7bc5ba 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-missing-module-specifier/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-missing-module-specifier/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:19)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-module-specifier/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-module-specifier/options.json index 2a73699bc238..b8b06c3a03ba 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-module-specifier/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-module-specifier/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:18)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-named-after-named/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-named-after-named/options.json index 358068a16a5d..9e093bfdcd96 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-named-after-named/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-named-after-named/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:12)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-named-after-namespace/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-named-after-namespace/options.json index 7ca1e1ffbb1d..98d712379010 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-named-after-namespace/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-named-after-namespace/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:15)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-named-as-missing-from/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-named-as-missing-from/options.json index 2ddc9e708f19..562afcef4837 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-named-as-missing-from/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-named-as-missing-from/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:23)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-namespace-after-named/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-namespace-after-named/options.json index 358068a16a5d..9e093bfdcd96 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-namespace-after-named/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-namespace-after-named/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:12)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-namespace-missing-as/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-namespace-missing-as/options.json index 93db7641c75b..2a28555f76db 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-namespace-missing-as/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-import-declaration/invalid-import-namespace-missing-as/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:9)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-lexical-declaration/invalid_complex_binding_without_init/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-lexical-declaration/invalid_complex_binding_without_init/options.json index 8cb567ee7788..57893e4eee56 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-lexical-declaration/invalid_complex_binding_without_init/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-lexical-declaration/invalid_complex_binding_without_init/options.json @@ -1,3 +1,3 @@ { "throws": "Complex binding patterns require an initialization value (1:6)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-meta-property/invalid-dots/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-meta-property/invalid-dots/options.json index 4e08e9340e3c..6079f138a6bc 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-meta-property/invalid-dots/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-meta-property/invalid-dots/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:29)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-meta-property/unknown-property/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-meta-property/unknown-property/options.json index 2985f64e65bf..f1d291c3e468 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-meta-property/unknown-property/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-meta-property/unknown-property/options.json @@ -1,3 +1,3 @@ { "throws": "The only valid meta property for new is new.target (1:25)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-getter-literal-identifier/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-getter-literal-identifier/options.json index 57e02d3bf46e..de857a114a82 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-getter-literal-identifier/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-getter-literal-identifier/options.json @@ -1,3 +1,3 @@ { "throws": "Redefinition of __proto__ property (1:39)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-literal/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-literal/options.json index f36f2e1bd952..5c966843f4fa 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-literal/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-literal/options.json @@ -1,3 +1,3 @@ { "throws": "Redefinition of __proto__ property (1:20)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifiers/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifiers/options.json index f36f2e1bd952..5c966843f4fa 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifiers/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifiers/options.json @@ -1,3 +1,3 @@ { "throws": "Redefinition of __proto__ property (1:20)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-identifier/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-identifier/options.json index afd5a5116b39..e19950ad14df 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-identifier/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-identifier/options.json @@ -1,3 +1,3 @@ { "throws": "Redefinition of __proto__ property (1:22)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literals/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literals/options.json index afd5a5116b39..e19950ad14df 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literals/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literals/options.json @@ -1,3 +1,3 @@ { "throws": "Redefinition of __proto__ property (1:22)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-setter-literal-identifier/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-setter-literal-identifier/options.json index cf57a1fa83f4..f364ee918462 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-setter-literal-identifier/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-setter-literal-identifier/options.json @@ -1,3 +1,3 @@ { "throws": "Redefinition of __proto__ property (1:42)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-spread-element/invalid-call-dot-dot/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-spread-element/invalid-call-dot-dot/options.json index e68fbb6aec4d..10bd5624f0e7 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-spread-element/invalid-call-dot-dot/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-spread-element/invalid-call-dot-dot/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-spread-element/invalid-call-dots/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-spread-element/invalid-call-dots/options.json index 0ab445fe47b8..91b308200e05 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-spread-element/invalid-call-dots/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-spread-element/invalid-call-dots/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:5)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-spread-element/invalid-call-spreads/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-spread-element/invalid-call-spreads/options.json index 515b9716732d..158f0af7b450 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-spread-element/invalid-call-spreads/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-spread-element/invalid-call-spreads/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:6)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-spread-element/invalid-new-dot-dot/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-spread-element/invalid-new-dot-dot/options.json index 515b9716732d..158f0af7b450 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-spread-element/invalid-new-dot-dot/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-spread-element/invalid-new-dot-dot/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:6)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-spread-element/invalid-new-dots/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-spread-element/invalid-new-dots/options.json index 93db7641c75b..2a28555f76db 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-spread-element/invalid-new-dots/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-spread-element/invalid-new-dots/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:9)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-spread-element/invalid-new-spreads/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-spread-element/invalid-new-spreads/options.json index 328b1ddde8fc..89bfc2d73f8a 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-spread-element/invalid-new-spreads/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-spread-element/invalid-new-spreads/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:10)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-template-literals/.octal-literal/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-template-literals/.octal-literal/options.json index 04b967a2eea9..b5b75f41875c 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-template-literals/.octal-literal/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-template-literals/.octal-literal/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-template-literals/.strict-octal-literal/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-template-literals/.strict-octal-literal/options.json index 51c483f3d3d8..d50e8469b860 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-template-literals/.strict-octal-literal/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-template-literals/.strict-octal-literal/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:14)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-template-literals/invalid-escape/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-template-literals/invalid-escape/options.json index 3ae5cb6c96c4..fd4da953a419 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-template-literals/invalid-escape/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-template-literals/invalid-escape/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid escape sequence in template (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-template-literals/unclosed/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-template-literals/unclosed/options.json index 182d15515976..5162185002ad 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-template-literals/unclosed/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-template-literals/unclosed/options.json @@ -1,3 +1,3 @@ { "throws": "Unterminated template (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-expression/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-expression/options.json index d73f4a2bec67..640cd6c71b99 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-expression/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-expression/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \";\" (1:20)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-default/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-default/options.json index d84cec7b2d1f..1bc56676810e 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-default/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-default/options.json @@ -1,3 +1,3 @@ { "throws": "yield is not allowed in the parameters of an arrow function inside a generator (1:21)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-parameter/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-parameter/options.json index e354d58b31e7..c9b7ef33bbf2 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-parameter/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-parameter/options.json @@ -1,3 +1,3 @@ { "throws": "yield is not allowed in the parameters of an arrow function inside a generator (1:16)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-parameters/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-parameters/options.json index 2c82a8fe8613..65c34eefb48e 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-parameters/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-parameters/options.json @@ -1,3 +1,3 @@ { "throws": "yield is not allowed in the parameters of an arrow function inside a generator (1:25)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-export-default/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-export-default/options.json index 6583569ead9f..afbed324e92a 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-export-default/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-export-default/options.json @@ -1,3 +1,3 @@ { "throws": "'import' and 'export' may appear only with 'sourceType: \"module\"' (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-name/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-name/options.json index 7c3fd48ca3a3..5dcc4a89231c 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-name/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-name/options.json @@ -1,3 +1,3 @@ { "throws": "yield is a reserved word inside generator functions (1:10)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-parameter/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-parameter/options.json index 4d161ba35ae8..0db4ce4adca9 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-parameter/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-parameter/options.json @@ -1,3 +1,3 @@ { "throws": "yield is a reserved word inside generator functions (1:12)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-rest/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-rest/options.json index 594d686a64d4..c689509a341b 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-rest/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-rest/options.json @@ -1,3 +1,3 @@ { "throws": "yield is a reserved word inside generator functions (1:18)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-member-expression/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-member-expression/options.json index 870f2ec57da7..f3780bda3155 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-member-expression/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-member-expression/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \";\" (1:28)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-parameter/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-parameter/options.json index 4d161ba35ae8..0db4ce4adca9 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-parameter/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-parameter/options.json @@ -1,3 +1,3 @@ { "throws": "yield is a reserved word inside generator functions (1:12)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-rest/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-rest/options.json index 853fd57f2e4d..3d2ca09a6034 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-rest/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-generator-rest/options.json @@ -1,3 +1,3 @@ { "throws": "yield is a reserved word inside generator functions (1:24)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-strict-array-pattern/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-strict-array-pattern/options.json index 6478b65d8dee..a2857a14add7 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-strict-array-pattern/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-strict-array-pattern/options.json @@ -1,3 +1,3 @@ { "throws": "yield is a reserved word in strict mode (1:16)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-default/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-default/options.json index 4a2737b8e98b..1de2e87eff65 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-default/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-default/options.json @@ -1,3 +1,3 @@ { "throws": "yield is a reserved word in strict mode (1:19)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-name/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-name/options.json index 5b44b148280d..05cab66d4e02 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-name/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-name/options.json @@ -1,3 +1,3 @@ { "throws": "yield is a reserved word in strict mode (1:15)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/es2015-yield/yield-generator-arrow-default/options.json b/packages/babel-parser/test/fixtures/esprima/es2015-yield/yield-generator-arrow-default/options.json index d84cec7b2d1f..1bc56676810e 100644 --- a/packages/babel-parser/test/fixtures/esprima/es2015-yield/yield-generator-arrow-default/options.json +++ b/packages/babel-parser/test/fixtures/esprima/es2015-yield/yield-generator-arrow-default/options.json @@ -1,3 +1,3 @@ { "throws": "yield is not allowed in the parameters of an arrow function inside a generator (1:21)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.GH-1106-09/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.GH-1106-09/options.json index 9f7910a41343..27a7b64d71d4 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.GH-1106-09/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.GH-1106-09/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:4)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0033/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0033/options.json index 65ef4a184aeb..9ce9658f7dfa 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0033/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0033/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:8)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0034/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0034/options.json index 65ef4a184aeb..9ce9658f7dfa 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0034/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0034/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:8)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0035/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0035/options.json index f8ff26aba252..3c289784c021 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0035/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0035/options.json @@ -1,3 +1,3 @@ { "throws": "Error parsing regular expression: Invalid regular expression: /(s/: Unterminated group (1:9)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0036/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0036/options.json index 9f7910a41343..27a7b64d71d4 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0036/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0036/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:4)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0037/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0037/options.json index 9f7910a41343..27a7b64d71d4 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0037/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0037/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:4)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0041/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0041/options.json index 2a73699bc238..b8b06c3a03ba 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0041/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0041/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:18)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0042/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0042/options.json index 7ca1e1ffbb1d..98d712379010 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0042/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0042/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:15)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0043/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0043/options.json index 8bb9a5f99b15..e806dd7b3a52 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0043/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0043/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:17)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0044/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0044/options.json index 2a73699bc238..b8b06c3a03ba 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0044/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0044/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:18)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0048/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0048/options.json index 358068a16a5d..9e093bfdcd96 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0048/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0048/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:12)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0049/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0049/options.json index 0ab445fe47b8..91b308200e05 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0049/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0049/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:5)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0050/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0050/options.json index 328b1ddde8fc..89bfc2d73f8a 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0050/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0050/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:10)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0051/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0051/options.json index 65ef4a184aeb..9ce9658f7dfa 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0051/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0051/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:8)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0075/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0075/options.json index 0341c5637c62..e3a1ba7e8296 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0075/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0075/options.json @@ -1,3 +1,3 @@ { "throws": "setter should have exactly one param (1:8)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0137/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0137/options.json index 04b967a2eea9..b5b75f41875c 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0137/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0137/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0163/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0163/options.json index 167116741e8c..c958665c03e2 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0163/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0163/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:7)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0165/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0165/options.json index 167116741e8c..c958665c03e2 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0165/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0165/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:7)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0166/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0166/options.json index 04b967a2eea9..b5b75f41875c 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0166/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0166/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0167/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0167/options.json index 04b967a2eea9..b5b75f41875c 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0167/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0167/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0169/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0169/options.json index 9f7910a41343..27a7b64d71d4 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0169/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0169/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:4)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0277/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0277/options.json index 358068a16a5d..9e093bfdcd96 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0277/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/.migrated_0277/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:12)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/GH-1106-00/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/GH-1106-00/options.json index 143c8be64376..8e0dce66eff8 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/GH-1106-00/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/GH-1106-00/options.json @@ -1,3 +1,3 @@ { "throws": "Bad character escape sequence (1:3)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/GH-1106-01/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/GH-1106-01/options.json index 143c8be64376..8e0dce66eff8 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/GH-1106-01/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/GH-1106-01/options.json @@ -1,3 +1,3 @@ { "throws": "Bad character escape sequence (1:3)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/GH-1106-02/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/GH-1106-02/options.json index 143c8be64376..8e0dce66eff8 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/GH-1106-02/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/GH-1106-02/options.json @@ -1,3 +1,3 @@ { "throws": "Bad character escape sequence (1:3)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/GH-1106-03/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/GH-1106-03/options.json index 143c8be64376..8e0dce66eff8 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/GH-1106-03/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/GH-1106-03/options.json @@ -1,3 +1,3 @@ { "throws": "Bad character escape sequence (1:3)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/GH-1106-04/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/GH-1106-04/options.json index 143c8be64376..8e0dce66eff8 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/GH-1106-04/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/GH-1106-04/options.json @@ -1,3 +1,3 @@ { "throws": "Bad character escape sequence (1:3)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/GH-1106-05/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/GH-1106-05/options.json index 143c8be64376..8e0dce66eff8 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/GH-1106-05/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/GH-1106-05/options.json @@ -1,3 +1,3 @@ { "throws": "Bad character escape sequence (1:3)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/GH-1106-06/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/GH-1106-06/options.json index 143c8be64376..8e0dce66eff8 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/GH-1106-06/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/GH-1106-06/options.json @@ -1,3 +1,3 @@ { "throws": "Bad character escape sequence (1:3)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/GH-1106-07/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/GH-1106-07/options.json index 143c8be64376..8e0dce66eff8 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/GH-1106-07/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/GH-1106-07/options.json @@ -1,3 +1,3 @@ { "throws": "Bad character escape sequence (1:3)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0000/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0000/options.json index 04b967a2eea9..b5b75f41875c 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0000/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0000/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0001/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0001/options.json index 919c05ec8713..ca189c74f69b 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0001/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0001/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0002/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0002/options.json index cf3086295c9b..91bb1eef0c0d 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0002/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0002/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid number (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0003/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0003/options.json index b239abb159a1..c70fa099de79 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0003/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0003/options.json @@ -1,3 +1,3 @@ { "throws": "Identifier directly after number (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0004/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0004/options.json index cf3086295c9b..91bb1eef0c0d 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0004/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0004/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid number (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0005/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0005/options.json index cf3086295c9b..91bb1eef0c0d 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0005/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0005/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid number (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0006/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0006/options.json index cf3086295c9b..91bb1eef0c0d 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0006/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0006/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid number (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0007/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0007/options.json index b239abb159a1..c70fa099de79 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0007/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0007/options.json @@ -1,3 +1,3 @@ { "throws": "Identifier directly after number (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0008/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0008/options.json index b239abb159a1..c70fa099de79 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0008/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0008/options.json @@ -1,3 +1,3 @@ { "throws": "Identifier directly after number (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0009/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0009/options.json index b4716df8c6b7..1a0693338eee 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0009/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0009/options.json @@ -1,3 +1,3 @@ { "throws": "Expected number in radix 16 (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0010/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0010/options.json index aa61ff56c2b3..ee18527964e7 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0010/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0010/options.json @@ -1,3 +1,3 @@ { "throws": "Identifier directly after number (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0011/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0011/options.json index f42de64632d2..dd7623505983 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0011/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0011/options.json @@ -1,3 +1,3 @@ { "throws": "Identifier directly after number (1:3)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0012/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0012/options.json index 5c0ca078e5c3..3f09c36a5f1c 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0012/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0012/options.json @@ -1,3 +1,3 @@ { "throws": "Expected number in radix 8 (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0013/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0013/options.json index 5c0ca078e5c3..3f09c36a5f1c 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0013/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0013/options.json @@ -1,3 +1,3 @@ { "throws": "Expected number in radix 8 (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0014/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0014/options.json index 5c0ca078e5c3..3f09c36a5f1c 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0014/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0014/options.json @@ -1,3 +1,3 @@ { "throws": "Expected number in radix 8 (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0015/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0015/options.json index f313a1ab4442..d52d9cfac4bc 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0015/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0015/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \";\" (1:3)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0016/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0016/options.json index f42de64632d2..dd7623505983 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0016/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0016/options.json @@ -1,3 +1,3 @@ { "throws": "Identifier directly after number (1:3)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0017/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0017/options.json index d00691a13763..40dc3da9a8f4 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0017/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0017/options.json @@ -1,3 +1,3 @@ { "throws": "Expected number in radix 2 (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0018/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0018/options.json index f42de64632d2..dd7623505983 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0018/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0018/options.json @@ -1,3 +1,3 @@ { "throws": "Identifier directly after number (1:3)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0019/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0019/options.json index d00691a13763..40dc3da9a8f4 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0019/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0019/options.json @@ -1,3 +1,3 @@ { "throws": "Expected number in radix 2 (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0020/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0020/options.json index f313a1ab4442..d52d9cfac4bc 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0020/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0020/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \";\" (1:3)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0021/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0021/options.json index f313a1ab4442..d52d9cfac4bc 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0021/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0021/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \";\" (1:3)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0022/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0022/options.json index d00691a13763..40dc3da9a8f4 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0022/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0022/options.json @@ -1,3 +1,3 @@ { "throws": "Expected number in radix 2 (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0023/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0023/options.json index f42de64632d2..dd7623505983 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0023/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0023/options.json @@ -1,3 +1,3 @@ { "throws": "Identifier directly after number (1:3)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0024/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0024/options.json index d00691a13763..40dc3da9a8f4 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0024/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0024/options.json @@ -1,3 +1,3 @@ { "throws": "Expected number in radix 2 (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0025/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0025/options.json index f313a1ab4442..d52d9cfac4bc 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0025/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0025/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \";\" (1:3)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0026/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0026/options.json index f313a1ab4442..d52d9cfac4bc 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0026/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0026/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \";\" (1:3)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0027/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0027/options.json index 5c0ca078e5c3..3f09c36a5f1c 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0027/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0027/options.json @@ -1,3 +1,3 @@ { "throws": "Expected number in radix 8 (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0028/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0028/options.json index f313a1ab4442..d52d9cfac4bc 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0028/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0028/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \";\" (1:3)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0029/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0029/options.json index b239abb159a1..c70fa099de79 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0029/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0029/options.json @@ -1,3 +1,3 @@ { "throws": "Identifier directly after number (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0030/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0030/options.json index f42de64632d2..dd7623505983 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0030/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0030/options.json @@ -1,3 +1,3 @@ { "throws": "Identifier directly after number (1:3)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0031/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0031/options.json index a760565b1bd2..d732a1630991 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0031/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0031/options.json @@ -1,3 +1,3 @@ { "throws": "Unterminated string constant (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0032/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0032/options.json index d08f66903cbf..18c53b997b56 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0032/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0032/options.json @@ -1,3 +1,3 @@ { "throws": "Expecting Unicode escape sequence \\uXXXX (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0038/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0038/options.json index e07b72599f39..66fb1cd63bc6 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0038/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0038/options.json @@ -1,3 +1,3 @@ { "throws": "Unterminated regular expression (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0039/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0039/options.json index e07b72599f39..66fb1cd63bc6 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0039/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0039/options.json @@ -1,3 +1,3 @@ { "throws": "Unterminated regular expression (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0040/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0040/options.json index e07b72599f39..66fb1cd63bc6 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0040/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0040/options.json @@ -1,3 +1,3 @@ { "throws": "Unterminated regular expression (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0045/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0045/options.json index 740de73d851f..6010e96ed144 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0045/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0045/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid left-hand side in assignment expression (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0046/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0046/options.json index 740de73d851f..6010e96ed144 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0046/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0046/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid left-hand side in assignment expression (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0047/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0047/options.json index d8b91465e5ab..7c5f08eb9ba6 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0047/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0047/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid left-hand side in assignment expression (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0052/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0052/options.json index 57f8bee85027..c09dac1301de 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0052/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0052/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid left-hand side in postfix operation (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0053/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0053/options.json index 57f8bee85027..c09dac1301de 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0053/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0053/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid left-hand side in postfix operation (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0054/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0054/options.json index e58c44374546..515e441e8ea7 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0054/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0054/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid left-hand side in prefix operation (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0055/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0055/options.json index e58c44374546..515e441e8ea7 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0055/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0055/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid left-hand side in prefix operation (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0056/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0056/options.json index 83b3a8b5f394..f8560a7de9d6 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0056/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0056/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid left-hand side in for-in statement (1:5)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0057/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0057/options.json index 04b967a2eea9..b5b75f41875c 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0057/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0057/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0058/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0058/options.json index e68fbb6aec4d..10bd5624f0e7 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0058/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0058/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0059/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0059/options.json index 0ab445fe47b8..91b308200e05 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0059/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0059/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:5)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0061/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0061/options.json index 328b1ddde8fc..89bfc2d73f8a 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0061/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0061/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:10)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0062/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0062/options.json index d5e4b52d5c25..2fd762cd6afd 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0062/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0062/options.json @@ -1,3 +1,3 @@ { "throws": "Unterminated regular expression (1:9)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0063/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0063/options.json index 78a668d16d23..9d0cd9237f5b 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0063/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0063/options.json @@ -1,3 +1,3 @@ { "throws": "Unterminated string constant (1:8)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0064/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0064/options.json index 9f7910a41343..27a7b64d71d4 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0064/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0064/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:4)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0065/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0065/options.json index 852d4126115d..895412e4e5f7 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0065/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0065/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected character '#' (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0066/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0066/options.json index 740de73d851f..6010e96ed144 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0066/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0066/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid left-hand side in assignment expression (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0067/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0067/options.json index 740de73d851f..6010e96ed144 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0067/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0067/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid left-hand side in assignment expression (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0068/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0068/options.json index 0ab445fe47b8..91b308200e05 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0068/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0068/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:5)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0069/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0069/options.json index 04b967a2eea9..b5b75f41875c 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0069/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0069/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0070/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0070/options.json index aa8239233c6a..c1ce88e361db 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0070/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0070/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (3:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0071/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0071/options.json index 658860760648..c4c1edaca3c6 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0071/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0071/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \";\" (1:6)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0072/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0072/options.json index 658860760648..c4c1edaca3c6 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0072/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0072/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \";\" (1:6)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0073/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0073/options.json index 328b1ddde8fc..89bfc2d73f8a 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0073/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0073/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:10)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0074/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0074/options.json index 93db7641c75b..2a28555f76db 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0074/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0074/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:9)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0082/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0082/options.json index e68fbb6aec4d..10bd5624f0e7 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0082/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0082/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0085/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0085/options.json index 04b967a2eea9..b5b75f41875c 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0085/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0085/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0086/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0086/options.json index 9f7910a41343..27a7b64d71d4 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0086/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0086/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:4)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0093/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0093/options.json index 8d80c05650ee..6d0445e20eb7 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0093/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0093/options.json @@ -1,3 +1,3 @@ { "throws": "Argument name clash in strict mode (1:18)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0094/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0094/options.json index 2fdbbb1bc8ca..0f2c1bee90b0 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0094/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0094/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid number (1:21)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0095/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0095/options.json index 04b967a2eea9..b5b75f41875c 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0095/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0095/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0096/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0096/options.json index 04b967a2eea9..b5b75f41875c 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0096/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0096/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0097/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0097/options.json index 04b967a2eea9..b5b75f41875c 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0097/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0097/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0098/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0098/options.json index 419e8d307f24..99ffc0de0153 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0098/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0098/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid left-hand side in arrow function parameters (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0099/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0099/options.json index 419e8d307f24..99ffc0de0153 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0099/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0099/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid left-hand side in arrow function parameters (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0103/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0103/options.json index 93db7641c75b..2a28555f76db 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0103/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0103/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:9)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0104/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0104/options.json index 3e33f7730f4b..cb6c66081ebf 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0104/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0104/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:11)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0105/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0105/options.json index 3e33f7730f4b..cb6c66081ebf 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0105/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0105/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:11)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0106/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0106/options.json index 3e33f7730f4b..cb6c66081ebf 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0106/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0106/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:11)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0107/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0107/options.json index 3e33f7730f4b..cb6c66081ebf 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0107/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0107/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:11)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0108/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0108/options.json index 93db7641c75b..2a28555f76db 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0108/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0108/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:9)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0109/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0109/options.json index 93db7641c75b..2a28555f76db 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0109/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0109/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:9)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0110/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0110/options.json index 93db7641c75b..2a28555f76db 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0110/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0110/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:9)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0111/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0111/options.json index 93db7641c75b..2a28555f76db 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0111/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0111/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:9)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0112/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0112/options.json index ff1ac8247e68..a89de70c61e5 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0112/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0112/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \";\" (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0114/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0114/options.json index ff1ac8247e68..a89de70c61e5 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0114/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0114/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \";\" (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0115/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0115/options.json index ff1ac8247e68..a89de70c61e5 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0115/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0115/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \";\" (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0116/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0116/options.json index 6ccbfe923d1c..701f9fe8f27a 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0116/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0116/options.json @@ -1,3 +1,3 @@ { "throws": "Unsyntactic break (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0117/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0117/options.json index 515b9716732d..158f0af7b450 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0117/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0117/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:6)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0118/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0118/options.json index 14a50290d0c9..de66853a7a3d 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0118/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0118/options.json @@ -1,3 +1,3 @@ { "throws": "Unsyntactic continue (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0119/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0119/options.json index 93db7641c75b..2a28555f76db 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0119/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0119/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:9)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0120/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0120/options.json index 0ab445fe47b8..91b308200e05 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0120/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0120/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:5)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0121/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0121/options.json index 0ab445fe47b8..91b308200e05 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0121/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0121/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:5)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0122/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0122/options.json index 0ab445fe47b8..91b308200e05 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0122/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0122/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:5)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0125/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0125/options.json index 83b3a8b5f394..f8560a7de9d6 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0125/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0125/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid left-hand side in for-in statement (1:5)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0126/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0126/options.json index 83b3a8b5f394..f8560a7de9d6 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0126/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0126/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid left-hand side in for-in statement (1:5)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0127/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0127/options.json index 93db7641c75b..2a28555f76db 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0127/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0127/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:9)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0128/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0128/options.json index 0c5f4deed6c3..fa579aa83145 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0128/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0128/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:24)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0129/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0129/options.json index e68fbb6aec4d..10bd5624f0e7 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0129/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0129/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0130/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0130/options.json index 358068a16a5d..9e093bfdcd96 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0130/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0130/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:12)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0131/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0131/options.json index 167116741e8c..c958665c03e2 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0131/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0131/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:7)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0132/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0132/options.json index 167116741e8c..c958665c03e2 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0132/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0132/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:7)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0133/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0133/options.json index 9b3d4185f11a..429d96ca3f9a 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0133/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0133/options.json @@ -1,3 +1,3 @@ { "throws": "Missing catch or finally clause (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0134/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0134/options.json index 51c483f3d3d8..d50e8469b860 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0134/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0134/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:14)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0136/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0136/options.json index 51c483f3d3d8..d50e8469b860 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0136/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0136/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:14)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0138/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0138/options.json index 7ca1e1ffbb1d..98d712379010 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0138/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0138/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:15)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0139/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0139/options.json index 167116741e8c..c958665c03e2 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0139/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0139/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:7)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0140/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0140/options.json index 167116741e8c..c958665c03e2 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0140/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0140/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:7)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0141/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0141/options.json index 93db7641c75b..2a28555f76db 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0141/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0141/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:9)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0142/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0142/options.json index 93db7641c75b..2a28555f76db 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0142/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0142/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:9)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0143/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0143/options.json index 8ded4af443bf..aadfa63716c2 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0143/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0143/options.json @@ -1,3 +1,3 @@ { "throws": "Multiple default clauses (1:22)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0144/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0144/options.json index 65ef4a184aeb..9ce9658f7dfa 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0144/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0144/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:8)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0145/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0145/options.json index 228eff80e8ac..eb40f4f05235 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0145/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0145/options.json @@ -1,3 +1,3 @@ { "throws": "Unterminated comment (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0146/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0146/options.json index 228eff80e8ac..eb40f4f05235 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0146/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0146/options.json @@ -1,3 +1,3 @@ { "throws": "Unterminated comment (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0147/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0147/options.json index 228eff80e8ac..eb40f4f05235 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0147/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0147/options.json @@ -1,3 +1,3 @@ { "throws": "Unterminated comment (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0148/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0148/options.json index 228eff80e8ac..eb40f4f05235 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0148/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0148/options.json @@ -1,3 +1,3 @@ { "throws": "Unterminated comment (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0149/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0149/options.json index 228eff80e8ac..eb40f4f05235 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0149/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0149/options.json @@ -1,3 +1,3 @@ { "throws": "Unterminated comment (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0150/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0150/options.json index 228eff80e8ac..eb40f4f05235 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0150/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0150/options.json @@ -1,3 +1,3 @@ { "throws": "Unterminated comment (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0151/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0151/options.json index 919c05ec8713..ca189c74f69b 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0151/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0151/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0152/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0152/options.json index 919c05ec8713..ca189c74f69b 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0152/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0152/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0153/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0153/options.json index 919c05ec8713..ca189c74f69b 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0153/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0153/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0154/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0154/options.json index 919c05ec8713..ca189c74f69b 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0154/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0154/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0155/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0155/options.json index 0361d7c7d2b2..7d847e99c88e 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0155/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0155/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (2:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0156/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0156/options.json index aa8239233c6a..c1ce88e361db 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0156/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0156/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (3:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0157/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0157/options.json index e07b72599f39..66fb1cd63bc6 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0157/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0157/options.json @@ -1,3 +1,3 @@ { "throws": "Unterminated regular expression (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0158/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0158/options.json index aa8239233c6a..c1ce88e361db 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0158/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0158/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (3:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0159/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0159/options.json index 0b22a698d6b9..a10e365ed5d3 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0159/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0159/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (2:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0160/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0160/options.json index 02c55000837a..913ef7d74a3f 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0160/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0160/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (3:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0161/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0161/options.json index 02c55000837a..913ef7d74a3f 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0161/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0161/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (3:2)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0162/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0162/options.json index c5a8baf2b8ff..381fd12ce2d0 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0162/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0162/options.json @@ -1,3 +1,3 @@ { "throws": "Expecting Unicode escape sequence \\uXXXX (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0164/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0164/options.json index c5a8baf2b8ff..381fd12ce2d0 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0164/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0164/options.json @@ -1,3 +1,3 @@ { "throws": "Expecting Unicode escape sequence \\uXXXX (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0168/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0168/options.json index a760565b1bd2..d732a1630991 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0168/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0168/options.json @@ -1,3 +1,3 @@ { "throws": "Unterminated string constant (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0170/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0170/options.json index 51c483f3d3d8..d50e8469b860 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0170/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0170/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:14)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0171/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0171/options.json index dececd0e835b..f9d29c7f328c 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0171/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0171/options.json @@ -1,3 +1,3 @@ { "throws": "'return' outside of function (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0172/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0172/options.json index 6ccbfe923d1c..701f9fe8f27a 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0172/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0172/options.json @@ -1,3 +1,3 @@ { "throws": "Unsyntactic break (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0173/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0173/options.json index 14a50290d0c9..de66853a7a3d 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0173/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0173/options.json @@ -1,3 +1,3 @@ { "throws": "Unsyntactic continue (1:0)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0174/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0174/options.json index 332366a21ce4..c726e8fa98e4 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0174/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0174/options.json @@ -1,3 +1,3 @@ { "throws": "Unsyntactic continue (1:22)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0176/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0176/options.json index 33bf5f84b806..070e662e80d4 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0176/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0176/options.json @@ -1,3 +1,3 @@ { "throws": "Unsyntactic break (1:15)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0177/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0177/options.json index e75cfed858a7..2a2e15787aa7 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0177/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0177/options.json @@ -1,3 +1,3 @@ { "throws": "Unsyntactic continue (1:15)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0178/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0178/options.json index 8008848be30d..464af80a1561 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0178/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0178/options.json @@ -1,3 +1,3 @@ { "throws": "Unsyntactic break (1:33)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0179/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0179/options.json index f0faa7faaa59..a056cb50e190 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0179/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0179/options.json @@ -1,3 +1,3 @@ { "throws": "Unsyntactic continue (1:33)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0180/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0180/options.json index 8008848be30d..464af80a1561 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0180/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0180/options.json @@ -1,3 +1,3 @@ { "throws": "Unsyntactic break (1:33)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0181/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0181/options.json index f0faa7faaa59..a056cb50e190 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0181/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0181/options.json @@ -1,3 +1,3 @@ { "throws": "Unsyntactic continue (1:33)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0182/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0182/options.json index a430baffb52e..da7f2590db0b 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0182/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0182/options.json @@ -1,3 +1,3 @@ { "throws": "Label 'x' is already declared (1:18)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0183/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0183/options.json index 811247045358..1517e1719333 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0183/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0183/options.json @@ -1,3 +1,3 @@ { "throws": "Deleting local variable in strict mode (1:29)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0184/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0184/options.json index 1b86ef2104e3..31b4c6d2a040 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0184/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0184/options.json @@ -1,3 +1,3 @@ { "throws": "'with' in strict mode (1:29)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0217/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0217/options.json index 11a57d6c56e3..ae2bfab55c68 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0217/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0217/options.json @@ -1,3 +1,3 @@ { "throws": "Octal literal in strict mode (1:35)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0218/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0218/options.json index 3711f38eefa6..ec4ea95dc9cb 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0218/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0218/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid number (1:33)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0219/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0219/options.json index 298495868929..7e50b5f9165e 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0219/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0219/options.json @@ -1,3 +1,3 @@ { "throws": "Octal literal in strict mode (1:38)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0220/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0220/options.json index a864ada0fe6f..dd200e16e5bf 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0220/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0220/options.json @@ -1,3 +1,3 @@ { "throws": "Invalid number (1:36)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0223/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0223/options.json index e92ad336dde1..8389b2c726ca 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0223/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0223/options.json @@ -1,3 +1,3 @@ { "throws": "Octal literal in strict mode (1:69)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0232/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0232/options.json index 22d103a83347..9fa1302689e1 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0232/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0232/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:37)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0238/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0238/options.json index 9f7910a41343..27a7b64d71d4 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0238/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0238/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:4)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0240/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0240/options.json index 421c28bbd6a2..e23388601bb0 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0240/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0240/options.json @@ -1,3 +1,3 @@ { "throws": "Argument name clash in strict mode (1:14)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0243/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0243/options.json index 9db3dfc50c81..660e54ca2a82 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0243/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0243/options.json @@ -1,3 +1,3 @@ { "throws": "Argument name clash in strict mode (1:43)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0244/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0244/options.json index 13e320a98373..28545ded1456 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0244/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0244/options.json @@ -1,3 +1,3 @@ { "throws": "Argument name clash in strict mode (1:15)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0245/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0245/options.json index 0e4f27a823e5..0f592c74a35b 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0245/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0245/options.json @@ -1,3 +1,3 @@ { "throws": "Argument name clash in strict mode (1:44)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0248/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0248/options.json index bb0741872a0a..cb5abd9f7401 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0248/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0248/options.json @@ -1,3 +1,3 @@ { "throws": "Label '__proto__' is already declared (1:11)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0249/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0249/options.json index e887380a58bb..172760cf2cf6 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0249/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0249/options.json @@ -1,3 +1,3 @@ { "throws": "Argument name clash in strict mode (1:36)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0250/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0250/options.json index ae09c6ae4881..8e9b9f585996 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0250/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0250/options.json @@ -1,3 +1,3 @@ { "throws": "Redefinition of __proto__ property (1:21)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0252/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0252/options.json index 3b5e81162843..05dbd26b33ce 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0252/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0252/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:3)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0253/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0253/options.json index 3b5e81162843..05dbd26b33ce 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0253/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0253/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:3)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0254/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0254/options.json index 0ab445fe47b8..91b308200e05 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0254/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0254/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:5)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0255/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0255/options.json index 515b9716732d..158f0af7b450 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0255/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0255/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:6)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0256/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0256/options.json index 1e730e170733..d5583f7bc5ba 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0256/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0256/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:19)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0257/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0257/options.json index 7250ca68489e..715f71e32a2e 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0257/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0257/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \";\" (1:16)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0266/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0266/options.json index 93db7641c75b..2a28555f76db 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0266/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0266/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:9)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0269/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0269/options.json index 51c483f3d3d8..d50e8469b860 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0269/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0269/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:14)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0272/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0272/options.json index cbb8e10c8ded..f4b1d256a4ab 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0272/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0272/options.json @@ -1,3 +1,3 @@ { "throws": "Constructor can't have get/set modifier (1:13)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0273/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0273/options.json index cbb8e10c8ded..f4b1d256a4ab 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0273/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0273/options.json @@ -1,3 +1,3 @@ { "throws": "Constructor can't have get/set modifier (1:13)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0274/options.json b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0274/options.json index cf2d761794c1..4d892adceff9 100644 --- a/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0274/options.json +++ b/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0274/options.json @@ -1,3 +1,3 @@ { "throws": "Duplicate constructor in the same class (1:25)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/esprima/rest-parameter/invalid-setter-rest/options.json b/packages/babel-parser/test/fixtures/esprima/rest-parameter/invalid-setter-rest/options.json index c397e398c82b..0006fbf98e5c 100644 --- a/packages/babel-parser/test/fixtures/esprima/rest-parameter/invalid-setter-rest/options.json +++ b/packages/babel-parser/test/fixtures/esprima/rest-parameter/invalid-setter-rest/options.json @@ -1,3 +1,3 @@ { - "throws": "setter function argument must not be a rest parameter (1:6)" - } + "throws": "setter function argument must not be a rest parameter (1:6)" +} diff --git a/packages/babel-parser/test/fixtures/esprima/statement-variable/complex-pattern-requires-init/options.json b/packages/babel-parser/test/fixtures/esprima/statement-variable/complex-pattern-requires-init/options.json index 8cb567ee7788..57893e4eee56 100644 --- a/packages/babel-parser/test/fixtures/esprima/statement-variable/complex-pattern-requires-init/options.json +++ b/packages/babel-parser/test/fixtures/esprima/statement-variable/complex-pattern-requires-init/options.json @@ -1,3 +1,3 @@ { "throws": "Complex binding patterns require an initialization value (1:6)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/experimental/class-private-methods/combined/options.json b/packages/babel-parser/test/fixtures/experimental/class-private-methods/combined/options.json index 55a2c821d7b6..b69ee0b978f5 100644 --- a/packages/babel-parser/test/fixtures/experimental/class-private-methods/combined/options.json +++ b/packages/babel-parser/test/fixtures/experimental/class-private-methods/combined/options.json @@ -1,3 +1,7 @@ { - "plugins": ["classProperties", "classPrivateProperties", "classPrivateMethods"] + "plugins": [ + "classProperties", + "classPrivateProperties", + "classPrivateMethods" + ] } diff --git a/packages/babel-parser/test/fixtures/experimental/class-private-methods/failure-name-constructor/options.json b/packages/babel-parser/test/fixtures/experimental/class-private-methods/failure-name-constructor/options.json index 1473a4f7a3ff..d702f4db972b 100644 --- a/packages/babel-parser/test/fixtures/experimental/class-private-methods/failure-name-constructor/options.json +++ b/packages/babel-parser/test/fixtures/experimental/class-private-methods/failure-name-constructor/options.json @@ -1,4 +1,4 @@ { "throws": "Classes may not have a private field named '#constructor' (2:2)", - "plugins": [ "classPrivateMethods" ] + "plugins": ["classPrivateMethods"] } diff --git a/packages/babel-parser/test/fixtures/experimental/class-private-methods/failure-spaces/input.js b/packages/babel-parser/test/fixtures/experimental/class-private-methods/failure-spaces/input.js new file mode 100644 index 000000000000..b49e1327f4c0 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/class-private-methods/failure-spaces/input.js @@ -0,0 +1,5 @@ +class Spaces { + # wrongSpaces() { + return fail(); + } +} diff --git a/packages/babel-parser/test/fixtures/experimental/class-private-methods/failure-spaces/options.json b/packages/babel-parser/test/fixtures/experimental/class-private-methods/failure-spaces/options.json new file mode 100644 index 000000000000..f8dba0c322fe --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/class-private-methods/failure-spaces/options.json @@ -0,0 +1,4 @@ +{ + "throws": "Unexpected space between # and identifier (2:5)", + "plugins": ["classPrivateMethods"] +} diff --git a/packages/babel-parser/test/fixtures/experimental/class-private-properties/failure-computed/options.json b/packages/babel-parser/test/fixtures/experimental/class-private-properties/failure-computed/options.json index ef991ca7611a..d740be4d9342 100644 --- a/packages/babel-parser/test/fixtures/experimental/class-private-properties/failure-computed/options.json +++ b/packages/babel-parser/test/fixtures/experimental/class-private-properties/failure-computed/options.json @@ -1,4 +1,4 @@ { "throws": "Unexpected token (3:3)", - "plugins": [ "classPrivateProperties" ] + "plugins": ["classPrivateProperties"] } diff --git a/packages/babel-parser/test/fixtures/experimental/class-private-properties/failure-delete-private-property/options.json b/packages/babel-parser/test/fixtures/experimental/class-private-properties/failure-delete-private-property/options.json index 009e1bf06e0c..e9f18e93d1d5 100644 --- a/packages/babel-parser/test/fixtures/experimental/class-private-properties/failure-delete-private-property/options.json +++ b/packages/babel-parser/test/fixtures/experimental/class-private-properties/failure-delete-private-property/options.json @@ -1,4 +1,4 @@ { "throws": "Deleting a private field is not allowed (4:4)", - "plugins": [ "classPrivateProperties" ] + "plugins": ["classPrivateProperties"] } diff --git a/packages/babel-parser/test/fixtures/experimental/class-private-properties/failure-name-constructor/options.json b/packages/babel-parser/test/fixtures/experimental/class-private-properties/failure-name-constructor/options.json index 3489ed65cb9d..51343aac3b23 100644 --- a/packages/babel-parser/test/fixtures/experimental/class-private-properties/failure-name-constructor/options.json +++ b/packages/babel-parser/test/fixtures/experimental/class-private-properties/failure-name-constructor/options.json @@ -1,4 +1,4 @@ { "throws": "Classes may not have a private field named '#constructor' (2:2)", - "plugins": [ "classPrivateProperties" ] + "plugins": ["classPrivateProperties"] } diff --git a/packages/babel-parser/test/fixtures/experimental/class-private-properties/failure-shorthand/options.json b/packages/babel-parser/test/fixtures/experimental/class-private-properties/failure-shorthand/options.json index ff492563b6aa..1c13dabac28a 100644 --- a/packages/babel-parser/test/fixtures/experimental/class-private-properties/failure-shorthand/options.json +++ b/packages/babel-parser/test/fixtures/experimental/class-private-properties/failure-shorthand/options.json @@ -1,4 +1,4 @@ { "throws": "Unexpected token (4:11)", - "plugins": [ "classPrivateProperties" ] + "plugins": ["classPrivateProperties"] } diff --git a/packages/babel-parser/test/fixtures/experimental/class-private-properties/failure-spaces/input.js b/packages/babel-parser/test/fixtures/experimental/class-private-properties/failure-spaces/input.js new file mode 100644 index 000000000000..023684c53e80 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/class-private-properties/failure-spaces/input.js @@ -0,0 +1,3 @@ +class Spaces { + # wrongSpaces; +} diff --git a/packages/babel-parser/test/fixtures/experimental/class-private-properties/failure-spaces/options.json b/packages/babel-parser/test/fixtures/experimental/class-private-properties/failure-spaces/options.json new file mode 100644 index 000000000000..f8dba0c322fe --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/class-private-properties/failure-spaces/options.json @@ -0,0 +1,4 @@ +{ + "throws": "Unexpected space between # and identifier (2:5)", + "plugins": ["classPrivateMethods"] +} diff --git a/packages/babel-parser/test/fixtures/experimental/class-private-properties/failure-string-literal/options.json b/packages/babel-parser/test/fixtures/experimental/class-private-properties/failure-string-literal/options.json index dfd75111a543..714877566f00 100644 --- a/packages/babel-parser/test/fixtures/experimental/class-private-properties/failure-string-literal/options.json +++ b/packages/babel-parser/test/fixtures/experimental/class-private-properties/failure-string-literal/options.json @@ -1,4 +1,4 @@ { "throws": "Unexpected token (2:3)", - "plugins": [ "classPrivateProperties" ] + "plugins": ["classPrivateProperties"] } diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/class-property/options.json b/packages/babel-parser/test/fixtures/experimental/decorators-2/class-property/options.json index 806b2fc7caca..21fa2f7d9b3b 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators-2/class-property/options.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators-2/class-property/options.json @@ -1,3 +1,7 @@ { - "plugins": ["classProperties", "classPrivateProperties", "decorators"] + "plugins": [ + "classProperties", + "classPrivateProperties", + ["decorators", { "decoratorsBeforeExport": false }] + ] } diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/compued-property/options.json b/packages/babel-parser/test/fixtures/experimental/decorators-2/compued-property/options.json index 49038f416f6d..1ec7ff9a421c 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators-2/compued-property/options.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators-2/compued-property/options.json @@ -1,3 +1,6 @@ { - "plugins": ["decorators", "classProperties"] + "plugins": [ + ["decorators", { "decoratorsBeforeExport": false }], + "classProperties" + ] } diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-boolean/input.js b/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-boolean/input.js new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-boolean/options.json b/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-boolean/options.json new file mode 100644 index 000000000000..2397f70ee665 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-boolean/options.json @@ -0,0 +1,4 @@ +{ + "plugins": [["decorators", { "decoratorsBeforeExport": "yes" }]], + "throws": "'decoratorsBeforeExport' must be a boolean." +} diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-export-default-decorated-expression-with-parens/options.json b/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-export-default-decorated-expression-with-parens/options.json index 8dcb89f00f6b..3d20bee94540 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-export-default-decorated-expression-with-parens/options.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-export-default-decorated-expression-with-parens/options.json @@ -1,6 +1,4 @@ { "sourceType": "module", - "plugins": [ - ["decorators", { "decoratorsBeforeExport": true }] - ] + "plugins": [["decorators", { "decoratorsBeforeExport": true }]] } diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-export-default-decorated-expression-without-parens/options.json b/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-export-default-decorated-expression-without-parens/options.json index 19ed49f04266..39592e4eb294 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-export-default-decorated-expression-without-parens/options.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-export-default-decorated-expression-without-parens/options.json @@ -1,7 +1,5 @@ { "sourceType": "module", - "plugins": [ - ["decorators", { "decoratorsBeforeExport": true }] - ], + "plugins": [["decorators", { "decoratorsBeforeExport": true }]], "throws": "Decorators must be placed *before* the 'export' keyword. You can set the 'decoratorsBeforeExport' option to false to use the 'export @decorator class {}' syntax (1:15)" } diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-export-default/options.json b/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-export-default/options.json index 8dcb89f00f6b..3d20bee94540 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-export-default/options.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-export-default/options.json @@ -1,6 +1,4 @@ { "sourceType": "module", - "plugins": [ - ["decorators", { "decoratorsBeforeExport": true }] - ] + "plugins": [["decorators", { "decoratorsBeforeExport": true }]] } diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-export/options.json b/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-export/options.json index 8dcb89f00f6b..3d20bee94540 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-export/options.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-export/options.json @@ -1,6 +1,4 @@ { "sourceType": "module", - "plugins": [ - ["decorators", { "decoratorsBeforeExport": true }] - ] + "plugins": [["decorators", { "decoratorsBeforeExport": true }]] } diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-required/input.js b/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-required/input.js new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-required/options.json b/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-required/options.json new file mode 100644 index 000000000000..3a1e80661a8f --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-required/options.json @@ -0,0 +1,4 @@ +{ + "plugins": ["decorators"], + "throws": "The 'decorators' plugin requires a 'decoratorsBeforeExport' option, whose value must be a boolean. If you are migrating from Babylon/Babel 6 or want to use the old decorators proposal, you should use the 'decorators-legacy' plugin instead of 'decorators'." +} diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-true-decorator-after-export/options.json b/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-true-decorator-after-export/options.json index 8d1cb160dada..8fc06b1b8c69 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-true-decorator-after-export/options.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-true-decorator-after-export/options.json @@ -1,7 +1,5 @@ { "sourceType": "module", - "plugins": [ - ["decorators", { "decoratorsBeforeExport": true }] - ], + "plugins": [["decorators", { "decoratorsBeforeExport": true }]], "throws": "Decorators must be placed *before* the 'export' keyword. You can set the 'decoratorsBeforeExport' option to false to use the 'export @decorator class {}' syntax (1:7)" } diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/options.json b/packages/babel-parser/test/fixtures/experimental/decorators-2/options.json index d760b0afda2a..6c9cc72327dc 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators-2/options.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators-2/options.json @@ -1,3 +1,3 @@ { - "plugins": ["decorators"] + "plugins": [["decorators", { "decoratorsBeforeExport": false }]] } diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/private-property/options.json b/packages/babel-parser/test/fixtures/experimental/decorators-2/private-property/options.json index 806b2fc7caca..21fa2f7d9b3b 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators-2/private-property/options.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators-2/private-property/options.json @@ -1,3 +1,7 @@ { - "plugins": ["classProperties", "classPrivateProperties", "decorators"] + "plugins": [ + "classProperties", + "classPrivateProperties", + ["decorators", { "decoratorsBeforeExport": false }] + ] } diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/static-property/options.json b/packages/babel-parser/test/fixtures/experimental/decorators-2/static-property/options.json index b508cf45fdf7..4ee4c944603d 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators-2/static-property/options.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators-2/static-property/options.json @@ -1,3 +1,6 @@ { - "plugins": ["classProperties", "decorators"] + "plugins": [ + "classProperties", + ["decorators", { "decoratorsBeforeExport": false }] + ] } diff --git a/packages/babel-parser/test/fixtures/experimental/do-expressions/options.json b/packages/babel-parser/test/fixtures/experimental/do-expressions/options.json index 294598f21523..c3943b1e757c 100644 --- a/packages/babel-parser/test/fixtures/experimental/do-expressions/options.json +++ b/packages/babel-parser/test/fixtures/experimental/do-expressions/options.json @@ -1,3 +1,3 @@ { "plugins": ["doExpressions"] -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/experimental/do-expressions/with-jsx/options.json b/packages/babel-parser/test/fixtures/experimental/do-expressions/with-jsx/options.json index e74b82b101ff..8c6f67aa6afd 100644 --- a/packages/babel-parser/test/fixtures/experimental/do-expressions/with-jsx/options.json +++ b/packages/babel-parser/test/fixtures/experimental/do-expressions/with-jsx/options.json @@ -1,3 +1,3 @@ { "plugins": ["jsx", "doExpressions"] -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/experimental/dynamic-import/direct-calls-only/options.json b/packages/babel-parser/test/fixtures/experimental/dynamic-import/direct-calls-only/options.json index 468132c26a5b..599298db4614 100644 --- a/packages/babel-parser/test/fixtures/experimental/dynamic-import/direct-calls-only/options.json +++ b/packages/babel-parser/test/fixtures/experimental/dynamic-import/direct-calls-only/options.json @@ -1,3 +1,3 @@ { - "throws": "Dynamic imports require a parameter: import('a.js').then (2:9)" + "throws": "Dynamic imports require a parameter: import('a.js') (2:9)" } diff --git a/packages/babel-parser/test/fixtures/experimental/import-meta/without-plugin/options.json b/packages/babel-parser/test/fixtures/experimental/import-meta/without-plugin/options.json index 50ce42c71fb9..5956ed25f3dd 100644 --- a/packages/babel-parser/test/fixtures/experimental/import-meta/without-plugin/options.json +++ b/packages/babel-parser/test/fixtures/experimental/import-meta/without-plugin/options.json @@ -1,4 +1,4 @@ { "throws": "This experimental syntax requires enabling the parser plugin: 'importMeta' (1:7)", "plugins": [] -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/experimental/json-strings/directive-line-separator/output.json b/packages/babel-parser/test/fixtures/experimental/json-strings/directive-line-separator/output.json index 0a597e806399..8bf9f02e8706 100644 --- a/packages/babel-parser/test/fixtures/experimental/json-strings/directive-line-separator/output.json +++ b/packages/babel-parser/test/fixtures/experimental/json-strings/directive-line-separator/output.json @@ -8,7 +8,7 @@ "column": 0 }, "end": { - "line": 2, + "line": 3, "column": 82 } }, @@ -22,7 +22,7 @@ "column": 0 }, "end": { - "line": 2, + "line": 3, "column": 82 } }, @@ -40,7 +40,7 @@ "column": 0 }, "end": { - "line": 1, + "line": 2, "column": 15 } }, @@ -54,7 +54,7 @@ "column": 0 }, "end": { - "line": 1, + "line": 2, "column": 14 } }, @@ -72,11 +72,11 @@ "end": 98, "loc": { "start": { - "line": 2, + "line": 3, "column": 0 }, "end": { - "line": 2, + "line": 3, "column": 82 } } @@ -93,11 +93,11 @@ "end": 98, "loc": { "start": { - "line": 2, + "line": 3, "column": 0 }, "end": { - "line": 2, + "line": 3, "column": 82 } } diff --git a/packages/babel-parser/test/fixtures/experimental/json-strings/directive-paragraph-separator/output.json b/packages/babel-parser/test/fixtures/experimental/json-strings/directive-paragraph-separator/output.json index ad5a48a14c37..f83d867447e7 100644 --- a/packages/babel-parser/test/fixtures/experimental/json-strings/directive-paragraph-separator/output.json +++ b/packages/babel-parser/test/fixtures/experimental/json-strings/directive-paragraph-separator/output.json @@ -8,7 +8,7 @@ "column": 0 }, "end": { - "line": 2, + "line": 3, "column": 87 } }, @@ -22,7 +22,7 @@ "column": 0 }, "end": { - "line": 2, + "line": 3, "column": 87 } }, @@ -40,7 +40,7 @@ "column": 0 }, "end": { - "line": 1, + "line": 2, "column": 15 } }, @@ -54,7 +54,7 @@ "column": 0 }, "end": { - "line": 1, + "line": 2, "column": 14 } }, @@ -72,11 +72,11 @@ "end": 103, "loc": { "start": { - "line": 2, + "line": 3, "column": 0 }, "end": { - "line": 2, + "line": 3, "column": 87 } } @@ -93,11 +93,11 @@ "end": 103, "loc": { "start": { - "line": 2, + "line": 3, "column": 0 }, "end": { - "line": 2, + "line": 3, "column": 87 } } diff --git a/packages/babel-parser/test/fixtures/experimental/json-strings/string-line-separator/output.json b/packages/babel-parser/test/fixtures/experimental/json-strings/string-line-separator/output.json index 7dde2fc8ab29..388733cc206a 100644 --- a/packages/babel-parser/test/fixtures/experimental/json-strings/string-line-separator/output.json +++ b/packages/babel-parser/test/fixtures/experimental/json-strings/string-line-separator/output.json @@ -8,7 +8,7 @@ "column": 0 }, "end": { - "line": 2, + "line": 3, "column": 83 } }, @@ -22,7 +22,7 @@ "column": 0 }, "end": { - "line": 2, + "line": 3, "column": 83 } }, @@ -39,7 +39,7 @@ "column": 0 }, "end": { - "line": 1, + "line": 2, "column": 17 } }, @@ -53,7 +53,7 @@ "column": 1 }, "end": { - "line": 1, + "line": 2, "column": 15 } }, @@ -73,11 +73,11 @@ "end": 101, "loc": { "start": { - "line": 2, + "line": 3, "column": 0 }, "end": { - "line": 2, + "line": 3, "column": 83 } } @@ -95,11 +95,11 @@ "end": 101, "loc": { "start": { - "line": 2, + "line": 3, "column": 0 }, "end": { - "line": 2, + "line": 3, "column": 83 } } diff --git a/packages/babel-parser/test/fixtures/experimental/json-strings/string-paragraph-separator/output.json b/packages/babel-parser/test/fixtures/experimental/json-strings/string-paragraph-separator/output.json index d7dab40405e9..a482ccfb266a 100644 --- a/packages/babel-parser/test/fixtures/experimental/json-strings/string-paragraph-separator/output.json +++ b/packages/babel-parser/test/fixtures/experimental/json-strings/string-paragraph-separator/output.json @@ -8,7 +8,7 @@ "column": 0 }, "end": { - "line": 2, + "line": 3, "column": 88 } }, @@ -22,7 +22,7 @@ "column": 0 }, "end": { - "line": 2, + "line": 3, "column": 88 } }, @@ -39,7 +39,7 @@ "column": 0 }, "end": { - "line": 1, + "line": 2, "column": 17 } }, @@ -53,7 +53,7 @@ "column": 1 }, "end": { - "line": 1, + "line": 2, "column": 15 } }, @@ -73,11 +73,11 @@ "end": 106, "loc": { "start": { - "line": 2, + "line": 3, "column": 0 }, "end": { - "line": 2, + "line": 3, "column": 88 } } @@ -95,11 +95,11 @@ "end": 106, "loc": { "start": { - "line": 2, + "line": 3, "column": 0 }, "end": { - "line": 2, + "line": 3, "column": 88 } } diff --git a/packages/babel-parser/test/fixtures/experimental/nullish-coalescing-operator/and-nullish/options.json b/packages/babel-parser/test/fixtures/experimental/nullish-coalescing-operator/and-nullish/options.json index e70662682b73..1bb4736991a4 100644 --- a/packages/babel-parser/test/fixtures/experimental/nullish-coalescing-operator/and-nullish/options.json +++ b/packages/babel-parser/test/fixtures/experimental/nullish-coalescing-operator/and-nullish/options.json @@ -1,4 +1,3 @@ { "plugins": ["nullishCoalescingOperator"] } - \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/experimental/nullish-coalescing-operator/associativity/options.json b/packages/babel-parser/test/fixtures/experimental/nullish-coalescing-operator/associativity/options.json index e70662682b73..1bb4736991a4 100644 --- a/packages/babel-parser/test/fixtures/experimental/nullish-coalescing-operator/associativity/options.json +++ b/packages/babel-parser/test/fixtures/experimental/nullish-coalescing-operator/associativity/options.json @@ -1,4 +1,3 @@ { "plugins": ["nullishCoalescingOperator"] } - \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/experimental/nullish-coalescing-operator/multiline/options.json b/packages/babel-parser/test/fixtures/experimental/nullish-coalescing-operator/multiline/options.json index e70662682b73..1bb4736991a4 100644 --- a/packages/babel-parser/test/fixtures/experimental/nullish-coalescing-operator/multiline/options.json +++ b/packages/babel-parser/test/fixtures/experimental/nullish-coalescing-operator/multiline/options.json @@ -1,4 +1,3 @@ { "plugins": ["nullishCoalescingOperator"] } - \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/experimental/nullish-coalescing-operator/nullish-and/options.json b/packages/babel-parser/test/fixtures/experimental/nullish-coalescing-operator/nullish-and/options.json index e70662682b73..1bb4736991a4 100644 --- a/packages/babel-parser/test/fixtures/experimental/nullish-coalescing-operator/nullish-and/options.json +++ b/packages/babel-parser/test/fixtures/experimental/nullish-coalescing-operator/nullish-and/options.json @@ -1,4 +1,3 @@ { "plugins": ["nullishCoalescingOperator"] } - \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/experimental/nullish-coalescing-operator/nullish-or/options.json b/packages/babel-parser/test/fixtures/experimental/nullish-coalescing-operator/nullish-or/options.json index e70662682b73..1bb4736991a4 100644 --- a/packages/babel-parser/test/fixtures/experimental/nullish-coalescing-operator/nullish-or/options.json +++ b/packages/babel-parser/test/fixtures/experimental/nullish-coalescing-operator/nullish-or/options.json @@ -1,4 +1,3 @@ { "plugins": ["nullishCoalescingOperator"] } - \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/experimental/nullish-coalescing-operator/or-nullish/options.json b/packages/babel-parser/test/fixtures/experimental/nullish-coalescing-operator/or-nullish/options.json index e70662682b73..1bb4736991a4 100644 --- a/packages/babel-parser/test/fixtures/experimental/nullish-coalescing-operator/or-nullish/options.json +++ b/packages/babel-parser/test/fixtures/experimental/nullish-coalescing-operator/or-nullish/options.json @@ -1,4 +1,3 @@ { "plugins": ["nullishCoalescingOperator"] } - \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/experimental/nullish-coalescing-operator/with-pipeline/options.json b/packages/babel-parser/test/fixtures/experimental/nullish-coalescing-operator/with-pipeline/options.json index 7a167840fb0e..790c3f234b5c 100644 --- a/packages/babel-parser/test/fixtures/experimental/nullish-coalescing-operator/with-pipeline/options.json +++ b/packages/babel-parser/test/fixtures/experimental/nullish-coalescing-operator/with-pipeline/options.json @@ -1,3 +1,6 @@ { - "plugins": ["nullishCoalescingOperator", ["pipelineOperator", { "proposal": "minimal" }]] + "plugins": [ + "nullishCoalescingOperator", + ["pipelineOperator", { "proposal": "minimal" }] + ] } diff --git a/packages/babel-parser/test/fixtures/experimental/object-rest-spread/11/options.json b/packages/babel-parser/test/fixtures/experimental/object-rest-spread/11/options.json index b70f9f128fef..b382a06ac5d7 100644 --- a/packages/babel-parser/test/fixtures/experimental/object-rest-spread/11/options.json +++ b/packages/babel-parser/test/fixtures/experimental/object-rest-spread/11/options.json @@ -2,4 +2,3 @@ "sourceType": "module", "throws": "`foo` has already been exported. Exported identifiers must be unique. (2:23)" } - diff --git a/packages/babel-parser/test/fixtures/experimental/object-rest-spread/12/options.json b/packages/babel-parser/test/fixtures/experimental/object-rest-spread/12/options.json index 21dc6a7cc6b9..d6149ed84502 100644 --- a/packages/babel-parser/test/fixtures/experimental/object-rest-spread/12/options.json +++ b/packages/babel-parser/test/fixtures/experimental/object-rest-spread/12/options.json @@ -2,4 +2,3 @@ "sourceType": "module", "throws": "`bar` has already been exported. Exported identifiers must be unique. (2:13)" } - diff --git a/packages/babel-parser/test/fixtures/experimental/object-rest-spread/13/options.json b/packages/babel-parser/test/fixtures/experimental/object-rest-spread/13/options.json index 4c8f1eb7bd13..8daa306ff731 100644 --- a/packages/babel-parser/test/fixtures/experimental/object-rest-spread/13/options.json +++ b/packages/babel-parser/test/fixtures/experimental/object-rest-spread/13/options.json @@ -2,4 +2,3 @@ "sourceType": "module", "throws": "`foo` has already been exported. Exported identifiers must be unique. (2:30)" } - diff --git a/packages/babel-parser/test/fixtures/experimental/object-rest-spread/14/options.json b/packages/babel-parser/test/fixtures/experimental/object-rest-spread/14/options.json index 4a117168dc78..a87b46d55ac6 100644 --- a/packages/babel-parser/test/fixtures/experimental/object-rest-spread/14/options.json +++ b/packages/babel-parser/test/fixtures/experimental/object-rest-spread/14/options.json @@ -2,4 +2,3 @@ "sourceType": "module", "throws": "`foo` has already been exported. Exported identifiers must be unique. (2:29)" } - diff --git a/packages/babel-parser/test/fixtures/experimental/object-rest-spread/15/options.json b/packages/babel-parser/test/fixtures/experimental/object-rest-spread/15/options.json index 4c8f1eb7bd13..8daa306ff731 100644 --- a/packages/babel-parser/test/fixtures/experimental/object-rest-spread/15/options.json +++ b/packages/babel-parser/test/fixtures/experimental/object-rest-spread/15/options.json @@ -2,4 +2,3 @@ "sourceType": "module", "throws": "`foo` has already been exported. Exported identifiers must be unique. (2:30)" } - diff --git a/packages/babel-parser/test/fixtures/experimental/optional-chaining/optioanl-chain-expression/options.json b/packages/babel-parser/test/fixtures/experimental/optional-chaining/optioanl-chain-expression/options.json index ec2042c93230..fd201c1bdb02 100644 --- a/packages/babel-parser/test/fixtures/experimental/optional-chaining/optioanl-chain-expression/options.json +++ b/packages/babel-parser/test/fixtures/experimental/optional-chaining/optioanl-chain-expression/options.json @@ -1,3 +1,3 @@ { - "plugins": ["optionalChaining"] -} \ No newline at end of file + "plugins": ["optionalChaining"] +} diff --git a/packages/babel-parser/test/fixtures/experimental/optional-chaining/optional-constructor/options.json b/packages/babel-parser/test/fixtures/experimental/optional-chaining/optional-constructor/options.json index ada2df9c6460..10cef4d48073 100644 --- a/packages/babel-parser/test/fixtures/experimental/optional-chaining/optional-constructor/options.json +++ b/packages/babel-parser/test/fixtures/experimental/optional-chaining/optional-constructor/options.json @@ -1,4 +1,4 @@ { - "plugins": ["optionalChaining"], - "throws": "constructors in/after an Optional Chain are not allowed (1:7)" - } + "plugins": ["optionalChaining"], + "throws": "constructors in/after an Optional Chain are not allowed (1:7)" +} diff --git a/packages/babel-parser/test/fixtures/experimental/optional-chaining/optional-super-property-class/options.json b/packages/babel-parser/test/fixtures/experimental/optional-chaining/optional-super-property-class/options.json index 0bbb2f11bae6..86849e8c464a 100644 --- a/packages/babel-parser/test/fixtures/experimental/optional-chaining/optional-super-property-class/options.json +++ b/packages/babel-parser/test/fixtures/experimental/optional-chaining/optional-super-property-class/options.json @@ -1,4 +1,4 @@ { - "plugins":["optionalChaining"], - "throws": "Unexpected token (3:20)" -} \ No newline at end of file + "plugins": ["optionalChaining"], + "throws": "Unexpected token (3:20)" +} diff --git a/packages/babel-parser/test/fixtures/experimental/optional-chaining/optional-super-property/options.json b/packages/babel-parser/test/fixtures/experimental/optional-chaining/optional-super-property/options.json index 0bbb2f11bae6..86849e8c464a 100644 --- a/packages/babel-parser/test/fixtures/experimental/optional-chaining/optional-super-property/options.json +++ b/packages/babel-parser/test/fixtures/experimental/optional-chaining/optional-super-property/options.json @@ -1,4 +1,4 @@ { - "plugins":["optionalChaining"], - "throws": "Unexpected token (3:20)" -} \ No newline at end of file + "plugins": ["optionalChaining"], + "throws": "Unexpected token (3:20)" +} diff --git a/packages/babel-parser/test/fixtures/experimental/optional-chaining/optional-tagged-template-literals/options.json b/packages/babel-parser/test/fixtures/experimental/optional-chaining/optional-tagged-template-literals/options.json index fb1568dfd199..631741b044e0 100644 --- a/packages/babel-parser/test/fixtures/experimental/optional-chaining/optional-tagged-template-literals/options.json +++ b/packages/babel-parser/test/fixtures/experimental/optional-chaining/optional-tagged-template-literals/options.json @@ -1,4 +1,4 @@ { - "plugins" : ["optionalChaining"], - "throws" : "Tagged Template Literals are not allowed in optionalChain (1:0)" -} \ No newline at end of file + "plugins": ["optionalChaining"], + "throws": "Tagged Template Literals are not allowed in optionalChain (1:0)" +} diff --git a/packages/babel-parser/test/fixtures/experimental/optional-chaining/parenthised-chain/options.json b/packages/babel-parser/test/fixtures/experimental/optional-chaining/parenthised-chain/options.json index f19632ef9d4a..fd201c1bdb02 100644 --- a/packages/babel-parser/test/fixtures/experimental/optional-chaining/parenthised-chain/options.json +++ b/packages/babel-parser/test/fixtures/experimental/optional-chaining/parenthised-chain/options.json @@ -1,3 +1,3 @@ { - "plugins": ["optionalChaining"] + "plugins": ["optionalChaining"] } diff --git a/packages/babel-parser/test/fixtures/experimental/optional-chaining/super-method-class/options.json b/packages/babel-parser/test/fixtures/experimental/optional-chaining/super-method-class/options.json index 165583885813..fd201c1bdb02 100644 --- a/packages/babel-parser/test/fixtures/experimental/optional-chaining/super-method-class/options.json +++ b/packages/babel-parser/test/fixtures/experimental/optional-chaining/super-method-class/options.json @@ -1,3 +1,3 @@ { - "plugins":["optionalChaining"] -} \ No newline at end of file + "plugins": ["optionalChaining"] +} diff --git a/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-arrow-requires-parens-with-parend-args/options.json b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-arrow-requires-parens-with-parend-args/options.json index b4e236359dd1..a281f6facee2 100644 --- a/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-arrow-requires-parens-with-parend-args/options.json +++ b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-arrow-requires-parens-with-parend-args/options.json @@ -1,6 +1,4 @@ { - "plugins": [ - ["pipelineOperator", { "proposal": "minimal" }] - ], + "plugins": [["pipelineOperator", { "proposal": "minimal" }]], "throws": "Unexpected token, expected \";\" (1:10)" } diff --git a/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-arrow-requires-parens/options.json b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-arrow-requires-parens/options.json index 551ef0ba6c76..c89b7d0c2519 100644 --- a/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-arrow-requires-parens/options.json +++ b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-arrow-requires-parens/options.json @@ -1,6 +1,4 @@ { - "plugins": [ - ["pipelineOperator", { "proposal": "minimal" }] - ], + "plugins": [["pipelineOperator", { "proposal": "minimal" }]], "throws": "Unexpected token, expected \";\" (1:8)" } diff --git a/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-await-requires-parens/options.json b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-await-requires-parens/options.json index f96a57c74821..a474f3dd5093 100644 --- a/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-await-requires-parens/options.json +++ b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-await-requires-parens/options.json @@ -1,5 +1,3 @@ { - "plugins": [ - ["pipelineOperator", { "proposal": "minimal" }] - ] + "plugins": [["pipelineOperator", { "proposal": "minimal" }]] } diff --git a/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-ban-await-f/options.json b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-ban-await-f/options.json index 126164b9ee52..98b0d71d084e 100644 --- a/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-ban-await-f/options.json +++ b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-ban-await-f/options.json @@ -1,6 +1,4 @@ { - "plugins": [ - ["pipelineOperator", { "proposal": "minimal" }] - ], + "plugins": [["pipelineOperator", { "proposal": "minimal" }]], "throws": "Unexpected \"await\" after pipeline body; await must have parentheses in minimal proposal (2:14)" } diff --git a/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-ban-await/options.json b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-ban-await/options.json index 126164b9ee52..98b0d71d084e 100644 --- a/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-ban-await/options.json +++ b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-ban-await/options.json @@ -1,6 +1,4 @@ { - "plugins": [ - ["pipelineOperator", { "proposal": "minimal" }] - ], + "plugins": [["pipelineOperator", { "proposal": "minimal" }]], "throws": "Unexpected \"await\" after pipeline body; await must have parentheses in minimal proposal (2:14)" } diff --git a/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-base/options.json b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-base/options.json index f96a57c74821..a474f3dd5093 100644 --- a/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-base/options.json +++ b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-base/options.json @@ -1,5 +1,3 @@ { - "plugins": [ - ["pipelineOperator", { "proposal": "minimal" }] - ] + "plugins": [["pipelineOperator", { "proposal": "minimal" }]] } diff --git a/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-chain/options.json b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-chain/options.json index f96a57c74821..a474f3dd5093 100644 --- a/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-chain/options.json +++ b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-chain/options.json @@ -1,5 +1,3 @@ { - "plugins": [ - ["pipelineOperator", { "proposal": "minimal" }] - ] + "plugins": [["pipelineOperator", { "proposal": "minimal" }]] } diff --git a/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-multiline/options.json b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-multiline/options.json index f96a57c74821..a474f3dd5093 100644 --- a/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-multiline/options.json +++ b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-multiline/options.json @@ -1,5 +1,3 @@ { - "plugins": [ - ["pipelineOperator", { "proposal": "minimal" }] - ] + "plugins": [["pipelineOperator", { "proposal": "minimal" }]] } diff --git a/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-precedence/options.json b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-precedence/options.json index f96a57c74821..a474f3dd5093 100644 --- a/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-precedence/options.json +++ b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-precedence/options.json @@ -1,5 +1,3 @@ { - "plugins": [ - ["pipelineOperator", { "proposal": "minimal" }] - ] + "plugins": [["pipelineOperator", { "proposal": "minimal" }]] } diff --git a/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-with-arrow-parend-params/options.json b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-with-arrow-parend-params/options.json index f96a57c74821..a474f3dd5093 100644 --- a/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-with-arrow-parend-params/options.json +++ b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-with-arrow-parend-params/options.json @@ -1,5 +1,3 @@ { - "plugins": [ - ["pipelineOperator", { "proposal": "minimal" }] - ] + "plugins": [["pipelineOperator", { "proposal": "minimal" }]] } diff --git a/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-with-arrow/options.json b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-with-arrow/options.json index f96a57c74821..a474f3dd5093 100644 --- a/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-with-arrow/options.json +++ b/packages/babel-parser/test/fixtures/experimental/pipeline-operator/proposal-minimal-with-arrow/options.json @@ -1,5 +1,3 @@ { - "plugins": [ - ["pipelineOperator", { "proposal": "minimal" }] - ] + "plugins": [["pipelineOperator", { "proposal": "minimal" }]] } diff --git a/packages/babel-parser/test/fixtures/experimental/uncategorised/47/options.json b/packages/babel-parser/test/fixtures/experimental/uncategorised/47/options.json index de6bb29dad70..cbe3cf4d6141 100644 --- a/packages/babel-parser/test/fixtures/experimental/uncategorised/47/options.json +++ b/packages/babel-parser/test/fixtures/experimental/uncategorised/47/options.json @@ -1,6 +1,3 @@ { - "plugins": [ - "classProperties", - "decorators-legacy" - ] + "plugins": ["classProperties", "decorators-legacy"] } diff --git a/packages/babel-parser/test/fixtures/experimental/uncategorised/48/options.json b/packages/babel-parser/test/fixtures/experimental/uncategorised/48/options.json index de6bb29dad70..cbe3cf4d6141 100644 --- a/packages/babel-parser/test/fixtures/experimental/uncategorised/48/options.json +++ b/packages/babel-parser/test/fixtures/experimental/uncategorised/48/options.json @@ -1,6 +1,3 @@ { - "plugins": [ - "classProperties", - "decorators-legacy" - ] + "plugins": ["classProperties", "decorators-legacy"] } diff --git a/packages/babel-parser/test/fixtures/flow/anonymous-function-no-parens-types/good_14/input.js b/packages/babel-parser/test/fixtures/flow/anonymous-function-no-parens-types/good_14/input.js new file mode 100644 index 000000000000..7d3fa382c436 --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/anonymous-function-no-parens-types/good_14/input.js @@ -0,0 +1 @@ +type T = Array<(string) => number> \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/flow/anonymous-function-no-parens-types/good_14/output.json b/packages/babel-parser/test/fixtures/flow/anonymous-function-no-parens-types/good_14/output.json new file mode 100644 index 000000000000..3b566aaa7fc0 --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/anonymous-function-no-parens-types/good_14/output.json @@ -0,0 +1,183 @@ +{ + "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": "TypeAlias", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "id": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + }, + "identifierName": "T" + }, + "name": "T" + }, + "typeParameters": null, + "right": { + "type": "GenericTypeAnnotation", + "start": 9, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "typeParameters": { + "type": "TypeParameterInstantiation", + "start": 14, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "params": [ + { + "type": "FunctionTypeAnnotation", + "start": 15, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "params": [ + { + "type": "FunctionTypeParam", + "start": 16, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "name": null, + "optional": false, + "typeAnnotation": { + "type": "StringTypeAnnotation", + "start": 16, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 22 + } + } + } + } + ], + "rest": null, + "returnType": { + "type": "NumberTypeAnnotation", + "start": 27, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 33 + } + } + }, + "typeParameters": null + } + ] + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + }, + "identifierName": "Array" + }, + "name": "Array" + } + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/flow/anonymous-function-no-parens-types/good_15/input.js b/packages/babel-parser/test/fixtures/flow/anonymous-function-no-parens-types/good_15/input.js new file mode 100644 index 000000000000..f27573896521 --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/anonymous-function-no-parens-types/good_15/input.js @@ -0,0 +1 @@ +let x = (): Array<(string) => number> => [] \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/flow/anonymous-function-no-parens-types/good_15/output.json b/packages/babel-parser/test/fixtures/flow/anonymous-function-no-parens-types/good_15/output.json new file mode 100644 index 000000000000..fb3eb337bc92 --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/anonymous-function-no-parens-types/good_15/output.json @@ -0,0 +1,251 @@ +{ + "type": "File", + "start": 0, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "sourceType": "module", + "interpreter": null, + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + }, + "identifierName": "x" + }, + "name": "x" + }, + "init": { + "type": "ArrowFunctionExpression", + "start": 8, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "predicate": null, + "returnType": { + "type": "TypeAnnotation", + "start": 10, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "typeAnnotation": { + "type": "GenericTypeAnnotation", + "start": 12, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "typeParameters": { + "type": "TypeParameterInstantiation", + "start": 17, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "params": [ + { + "type": "FunctionTypeAnnotation", + "start": 18, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "params": [ + { + "type": "FunctionTypeParam", + "start": 19, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "name": null, + "optional": false, + "typeAnnotation": { + "type": "StringTypeAnnotation", + "start": 19, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 25 + } + } + } + } + ], + "rest": null, + "returnType": { + "type": "NumberTypeAnnotation", + "start": 30, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 30 + }, + "end": { + "line": 1, + "column": 36 + } + } + }, + "typeParameters": null + } + ] + }, + "id": { + "type": "Identifier", + "start": 12, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 17 + }, + "identifierName": "Array" + }, + "name": "Array" + } + } + }, + "id": null, + "generator": false, + "async": false, + "params": [], + "body": { + "type": "ArrayExpression", + "start": 41, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 41 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "elements": [] + } + } + } + ], + "kind": "let" + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/flow/call-properties/1/output.json b/packages/babel-parser/test/fixtures/flow/call-properties/1/output.json index f106eb4dc399..41dbc2be1068 100644 --- a/packages/babel-parser/test/fixtures/flow/call-properties/1/output.json +++ b/packages/babel-parser/test/fixtures/flow/call-properties/1/output.json @@ -156,7 +156,8 @@ "properties": [], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } }, diff --git a/packages/babel-parser/test/fixtures/flow/call-properties/2/output.json b/packages/babel-parser/test/fixtures/flow/call-properties/2/output.json index bdd238b2985d..9b2e1c34ab13 100644 --- a/packages/babel-parser/test/fixtures/flow/call-properties/2/output.json +++ b/packages/babel-parser/test/fixtures/flow/call-properties/2/output.json @@ -156,7 +156,8 @@ "properties": [], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } }, diff --git a/packages/babel-parser/test/fixtures/flow/call-properties/3/output.json b/packages/babel-parser/test/fixtures/flow/call-properties/3/output.json index b37fa6335539..edb622d15e0c 100644 --- a/packages/babel-parser/test/fixtures/flow/call-properties/3/output.json +++ b/packages/babel-parser/test/fixtures/flow/call-properties/3/output.json @@ -308,7 +308,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } }, diff --git a/packages/babel-parser/test/fixtures/flow/call-properties/4/output.json b/packages/babel-parser/test/fixtures/flow/call-properties/4/output.json index 6f1b515556c4..718dab31950f 100644 --- a/packages/babel-parser/test/fixtures/flow/call-properties/4/output.json +++ b/packages/babel-parser/test/fixtures/flow/call-properties/4/output.json @@ -256,7 +256,8 @@ "properties": [], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } }, diff --git a/packages/babel-parser/test/fixtures/flow/class-private-property/1/input.js b/packages/babel-parser/test/fixtures/flow/class-private-property/1/input.js new file mode 100644 index 000000000000..0ad82dd43789 --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/class-private-property/1/input.js @@ -0,0 +1,4 @@ +class A { + #prop1: string; + #prop2: number = value; +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/flow/class-private-property/1/output.json b/packages/babel-parser/test/fixtures/flow/class-private-property/1/output.json new file mode 100644 index 000000000000..a00beeae9dc5 --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/class-private-property/1/output.json @@ -0,0 +1,261 @@ +{ + "type": "File", + "start": 0, + "end": 55, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 4, + "column": 1 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 55, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 4, + "column": 1 + } + }, + "sourceType": "module", + "interpreter": null, + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 55, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 4, + "column": 1 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + }, + "identifierName": "A" + }, + "name": "A" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 8, + "end": 55, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 4, + "column": 1 + } + }, + "body": [ + { + "type": "ClassPrivateProperty", + "start": 12, + "end": 27, + "loc": { + "start": { + "line": 2, + "column": 2 + }, + "end": { + "line": 2, + "column": 17 + } + }, + "static": false, + "key": { + "type": "PrivateName", + "start": 12, + "end": 18, + "loc": { + "start": { + "line": 2, + "column": 2 + }, + "end": { + "line": 2, + "column": 8 + } + }, + "id": { + "type": "Identifier", + "start": 13, + "end": 18, + "loc": { + "start": { + "line": 2, + "column": 3 + }, + "end": { + "line": 2, + "column": 8 + }, + "identifierName": "prop1" + }, + "name": "prop1" + } + }, + "variance": null, + "typeAnnotation": { + "type": "TypeAnnotation", + "start": 18, + "end": 26, + "loc": { + "start": { + "line": 2, + "column": 8 + }, + "end": { + "line": 2, + "column": 16 + } + }, + "typeAnnotation": { + "type": "StringTypeAnnotation", + "start": 20, + "end": 26, + "loc": { + "start": { + "line": 2, + "column": 10 + }, + "end": { + "line": 2, + "column": 16 + } + } + } + }, + "value": null + }, + { + "type": "ClassPrivateProperty", + "start": 30, + "end": 53, + "loc": { + "start": { + "line": 3, + "column": 2 + }, + "end": { + "line": 3, + "column": 25 + } + }, + "static": false, + "key": { + "type": "PrivateName", + "start": 30, + "end": 36, + "loc": { + "start": { + "line": 3, + "column": 2 + }, + "end": { + "line": 3, + "column": 8 + } + }, + "id": { + "type": "Identifier", + "start": 31, + "end": 36, + "loc": { + "start": { + "line": 3, + "column": 3 + }, + "end": { + "line": 3, + "column": 8 + }, + "identifierName": "prop2" + }, + "name": "prop2" + } + }, + "variance": null, + "typeAnnotation": { + "type": "TypeAnnotation", + "start": 36, + "end": 44, + "loc": { + "start": { + "line": 3, + "column": 8 + }, + "end": { + "line": 3, + "column": 16 + } + }, + "typeAnnotation": { + "type": "NumberTypeAnnotation", + "start": 38, + "end": 44, + "loc": { + "start": { + "line": 3, + "column": 10 + }, + "end": { + "line": 3, + "column": 16 + } + } + } + }, + "value": { + "type": "Identifier", + "start": 47, + "end": 52, + "loc": { + "start": { + "line": 3, + "column": 19 + }, + "end": { + "line": 3, + "column": 24 + }, + "identifierName": "value" + }, + "name": "value" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/flow/class-private-property/2/input.js b/packages/babel-parser/test/fixtures/flow/class-private-property/2/input.js new file mode 100644 index 000000000000..1586a6cc4788 --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/class-private-property/2/input.js @@ -0,0 +1,4 @@ +class A { + #prop1: string; + #prop2: number; +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/flow/class-private-property/2/output.json b/packages/babel-parser/test/fixtures/flow/class-private-property/2/output.json new file mode 100644 index 000000000000..ab488ef2168d --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/class-private-property/2/output.json @@ -0,0 +1,245 @@ +{ + "type": "File", + "start": 0, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 4, + "column": 1 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 4, + "column": 1 + } + }, + "sourceType": "module", + "interpreter": null, + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 4, + "column": 1 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + }, + "identifierName": "A" + }, + "name": "A" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 8, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 4, + "column": 1 + } + }, + "body": [ + { + "type": "ClassPrivateProperty", + "start": 12, + "end": 27, + "loc": { + "start": { + "line": 2, + "column": 2 + }, + "end": { + "line": 2, + "column": 17 + } + }, + "static": false, + "key": { + "type": "PrivateName", + "start": 12, + "end": 18, + "loc": { + "start": { + "line": 2, + "column": 2 + }, + "end": { + "line": 2, + "column": 8 + } + }, + "id": { + "type": "Identifier", + "start": 13, + "end": 18, + "loc": { + "start": { + "line": 2, + "column": 3 + }, + "end": { + "line": 2, + "column": 8 + }, + "identifierName": "prop1" + }, + "name": "prop1" + } + }, + "variance": null, + "typeAnnotation": { + "type": "TypeAnnotation", + "start": 18, + "end": 26, + "loc": { + "start": { + "line": 2, + "column": 8 + }, + "end": { + "line": 2, + "column": 16 + } + }, + "typeAnnotation": { + "type": "StringTypeAnnotation", + "start": 20, + "end": 26, + "loc": { + "start": { + "line": 2, + "column": 10 + }, + "end": { + "line": 2, + "column": 16 + } + } + } + }, + "value": null + }, + { + "type": "ClassPrivateProperty", + "start": 30, + "end": 45, + "loc": { + "start": { + "line": 3, + "column": 2 + }, + "end": { + "line": 3, + "column": 17 + } + }, + "static": false, + "key": { + "type": "PrivateName", + "start": 30, + "end": 36, + "loc": { + "start": { + "line": 3, + "column": 2 + }, + "end": { + "line": 3, + "column": 8 + } + }, + "id": { + "type": "Identifier", + "start": 31, + "end": 36, + "loc": { + "start": { + "line": 3, + "column": 3 + }, + "end": { + "line": 3, + "column": 8 + }, + "identifierName": "prop2" + }, + "name": "prop2" + } + }, + "variance": null, + "typeAnnotation": { + "type": "TypeAnnotation", + "start": 36, + "end": 44, + "loc": { + "start": { + "line": 3, + "column": 8 + }, + "end": { + "line": 3, + "column": 16 + } + }, + "typeAnnotation": { + "type": "NumberTypeAnnotation", + "start": 38, + "end": 44, + "loc": { + "start": { + "line": 3, + "column": 10 + }, + "end": { + "line": 3, + "column": 16 + } + } + } + }, + "value": null + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/flow/class-private-property/options.json b/packages/babel-parser/test/fixtures/flow/class-private-property/options.json new file mode 100644 index 000000000000..d533f640ef62 --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/class-private-property/options.json @@ -0,0 +1,4 @@ +{ + "sourceType": "module", + "plugins": ["flow", "classPrivateProperties"] +} diff --git a/packages/babel-parser/test/fixtures/flow/comment/02-type-include/output.json b/packages/babel-parser/test/fixtures/flow/comment/02-type-include/output.json index 81661e9066f7..0eb104082d54 100644 --- a/packages/babel-parser/test/fixtures/flow/comment/02-type-include/output.json +++ b/packages/babel-parser/test/fixtures/flow/comment/02-type-include/output.json @@ -239,7 +239,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } ], diff --git a/packages/babel-parser/test/fixtures/flow/comment/03-type-flow-include/output.json b/packages/babel-parser/test/fixtures/flow/comment/03-type-flow-include/output.json index 3a740e6c1c30..5b41ff77f72a 100644 --- a/packages/babel-parser/test/fixtures/flow/comment/03-type-flow-include/output.json +++ b/packages/babel-parser/test/fixtures/flow/comment/03-type-flow-include/output.json @@ -239,7 +239,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } ], diff --git a/packages/babel-parser/test/fixtures/flow/declare-module/10/output.json b/packages/babel-parser/test/fixtures/flow/declare-module/10/output.json index 563b25f29e43..84347d7d5618 100644 --- a/packages/babel-parser/test/fixtures/flow/declare-module/10/output.json +++ b/packages/babel-parser/test/fixtures/flow/declare-module/10/output.json @@ -146,7 +146,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } } diff --git a/packages/babel-parser/test/fixtures/flow/declare-module/6/output.json b/packages/babel-parser/test/fixtures/flow/declare-module/6/output.json index 33f1898db552..e2a2f288cbb5 100644 --- a/packages/babel-parser/test/fixtures/flow/declare-module/6/output.json +++ b/packages/babel-parser/test/fixtures/flow/declare-module/6/output.json @@ -192,7 +192,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } } diff --git a/packages/babel-parser/test/fixtures/flow/declare-statements/14/output.json b/packages/babel-parser/test/fixtures/flow/declare-statements/14/output.json index b34f2531a1a7..a7b76763db42 100644 --- a/packages/babel-parser/test/fixtures/flow/declare-statements/14/output.json +++ b/packages/babel-parser/test/fixtures/flow/declare-statements/14/output.json @@ -243,7 +243,8 @@ } ], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } ], diff --git a/packages/babel-parser/test/fixtures/flow/declare-statements/class-multiple-extends-invalid/options.json b/packages/babel-parser/test/fixtures/flow/declare-statements/class-multiple-extends-invalid/options.json index 22fd39599487..9cc0ebdae004 100644 --- a/packages/babel-parser/test/fixtures/flow/declare-statements/class-multiple-extends-invalid/options.json +++ b/packages/babel-parser/test/fixtures/flow/declare-statements/class-multiple-extends-invalid/options.json @@ -1,3 +1,3 @@ { - "throws": "Unexpected token, expected \"{\" (1:25)" + "throws": "Unexpected token, expected \"{\" (1:25)" } diff --git a/packages/babel-parser/test/fixtures/flow/def-site-variance/1/output.json b/packages/babel-parser/test/fixtures/flow/def-site-variance/1/output.json index 8455526f655d..938196ebcdb6 100644 --- a/packages/babel-parser/test/fixtures/flow/def-site-variance/1/output.json +++ b/packages/babel-parser/test/fixtures/flow/def-site-variance/1/output.json @@ -422,7 +422,8 @@ "properties": [], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } ], diff --git a/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects1/input.js b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects1/input.js new file mode 100644 index 000000000000..c3ef0ff53256 --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects1/input.js @@ -0,0 +1,4 @@ +//@flow +declare class A { + ...; +} diff --git a/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects1/options.json b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects1/options.json new file mode 100644 index 000000000000..c9188366d4e8 --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects1/options.json @@ -0,0 +1,5 @@ +{ + "sourceType": "module", + "plugins": ["jsx", "flow"], + "throws": "Spread operator cannot appear in class or interface definitions (3:2)" +} diff --git a/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects2/input.js b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects2/input.js new file mode 100644 index 000000000000..fcc33d36c05b --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects2/input.js @@ -0,0 +1,5 @@ +//@flow +declare class B { + foo: number; + ...; +} diff --git a/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects2/options.json b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects2/options.json new file mode 100644 index 000000000000..658f8c434773 --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects2/options.json @@ -0,0 +1,5 @@ +{ + "sourceType": "module", + "plugins": ["jsx", "flow"], + "throws": "Spread operator cannot appear in class or interface definitions (4:2)" +} diff --git a/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects3/input.js b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects3/input.js new file mode 100644 index 000000000000..1f5df6b39ff9 --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects3/input.js @@ -0,0 +1,5 @@ +//@flow +declare class C { + ...; + foo: number; +} diff --git a/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects3/options.json b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects3/options.json new file mode 100644 index 000000000000..c9188366d4e8 --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects3/options.json @@ -0,0 +1,5 @@ +{ + "sourceType": "module", + "plugins": ["jsx", "flow"], + "throws": "Spread operator cannot appear in class or interface definitions (3:2)" +} diff --git a/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects4/input.js b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects4/input.js new file mode 100644 index 000000000000..7d0e44fc00c2 --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects4/input.js @@ -0,0 +1,6 @@ +//@flow +declare class D { + foo: number; + ...; + bar: number; +} diff --git a/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects4/options.json b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects4/options.json new file mode 100644 index 000000000000..658f8c434773 --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects4/options.json @@ -0,0 +1,5 @@ +{ + "sourceType": "module", + "plugins": ["jsx", "flow"], + "throws": "Spread operator cannot appear in class or interface definitions (4:2)" +} diff --git a/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects5/input.js b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects5/input.js new file mode 100644 index 000000000000..938efa8b5797 --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects5/input.js @@ -0,0 +1,5 @@ +//@flow +interface F { + foo: number; + ...; +} diff --git a/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects5/options.json b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects5/options.json new file mode 100644 index 000000000000..658f8c434773 --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects5/options.json @@ -0,0 +1,5 @@ +{ + "sourceType": "module", + "plugins": ["jsx", "flow"], + "throws": "Spread operator cannot appear in class or interface definitions (4:2)" +} diff --git a/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects6/input.js b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects6/input.js new file mode 100644 index 000000000000..59c4a399c358 --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects6/input.js @@ -0,0 +1,5 @@ +//@flow +interface G { + ...; + foo: number; +} diff --git a/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects6/options.json b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects6/options.json new file mode 100644 index 000000000000..c9188366d4e8 --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects6/options.json @@ -0,0 +1,5 @@ +{ + "sourceType": "module", + "plugins": ["jsx", "flow"], + "throws": "Spread operator cannot appear in class or interface definitions (3:2)" +} diff --git a/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects7/input.js b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects7/input.js new file mode 100644 index 000000000000..4dde1fd3b04e --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects7/input.js @@ -0,0 +1,6 @@ +//@flow +interface H { + foo: number; + ...; + bar: number; +} diff --git a/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects7/options.json b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects7/options.json new file mode 100644 index 000000000000..658f8c434773 --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_disallowed_in_non_objects7/options.json @@ -0,0 +1,5 @@ +{ + "sourceType": "module", + "plugins": ["jsx", "flow"], + "throws": "Spread operator cannot appear in class or interface definitions (4:2)" +} diff --git a/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_forbidden_in_exact/input.js b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_forbidden_in_exact/input.js new file mode 100644 index 000000000000..289513d4e480 --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_forbidden_in_exact/input.js @@ -0,0 +1,2 @@ +//@flow +type T = {| foo: number, ... |} diff --git a/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_forbidden_in_exact/options.json b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_forbidden_in_exact/options.json new file mode 100644 index 000000000000..49936ac94990 --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_forbidden_in_exact/options.json @@ -0,0 +1,5 @@ +{ + "sourceType": "module", + "plugins": ["jsx", "flow"], + "throws": "Explicit inexact syntax cannot appear inside an explicit exact object type (2:29)" +} diff --git a/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_must_appear_last/input.js b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_must_appear_last/input.js new file mode 100644 index 000000000000..93c854cac282 --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_must_appear_last/input.js @@ -0,0 +1,2 @@ +//@flow +type T = {..., foo: number}; diff --git a/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_must_appear_last/options.json b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_must_appear_last/options.json new file mode 100644 index 000000000000..ebb74417a527 --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_must_appear_last/options.json @@ -0,0 +1,5 @@ +{ + "sourceType": "module", + "plugins": ["jsx", "flow"], + "throws": "Explicit inexact syntax must appear at the end of an inexact object (2:15)" +} diff --git a/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_object/input.js b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_object/input.js new file mode 100644 index 000000000000..2fb3e7249593 --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_object/input.js @@ -0,0 +1,4 @@ +//@flow +type T = {...}; +type U = {x: number, ...}; +type V = {x: number, ...V, ...U}; diff --git a/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_object/output.json b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_object/output.json new file mode 100644 index 000000000000..7e32ace8159d --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_object/output.json @@ -0,0 +1,437 @@ +{ + "type": "File", + "start": 0, + "end": 84, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 4, + "column": 33 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 84, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 4, + "column": 33 + } + }, + "sourceType": "module", + "interpreter": null, + "body": [ + { + "type": "TypeAlias", + "start": 8, + "end": 23, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 15 + } + }, + "id": { + "type": "Identifier", + "start": 13, + "end": 14, + "loc": { + "start": { + "line": 2, + "column": 5 + }, + "end": { + "line": 2, + "column": 6 + }, + "identifierName": "T" + }, + "name": "T" + }, + "typeParameters": null, + "right": { + "type": "ObjectTypeAnnotation", + "start": 17, + "end": 22, + "loc": { + "start": { + "line": 2, + "column": 9 + }, + "end": { + "line": 2, + "column": 14 + } + }, + "callProperties": [], + "properties": [], + "indexers": [], + "internalSlots": [], + "exact": false, + "inexact": true + }, + "leadingComments": [ + { + "type": "CommentLine", + "value": "@flow", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + } + } + ] + }, + { + "type": "TypeAlias", + "start": 24, + "end": 50, + "loc": { + "start": { + "line": 3, + "column": 0 + }, + "end": { + "line": 3, + "column": 26 + } + }, + "id": { + "type": "Identifier", + "start": 29, + "end": 30, + "loc": { + "start": { + "line": 3, + "column": 5 + }, + "end": { + "line": 3, + "column": 6 + }, + "identifierName": "U" + }, + "name": "U" + }, + "typeParameters": null, + "right": { + "type": "ObjectTypeAnnotation", + "start": 33, + "end": 49, + "loc": { + "start": { + "line": 3, + "column": 9 + }, + "end": { + "line": 3, + "column": 25 + } + }, + "callProperties": [], + "properties": [ + { + "type": "ObjectTypeProperty", + "start": 34, + "end": 43, + "loc": { + "start": { + "line": 3, + "column": 10 + }, + "end": { + "line": 3, + "column": 19 + } + }, + "key": { + "type": "Identifier", + "start": 34, + "end": 35, + "loc": { + "start": { + "line": 3, + "column": 10 + }, + "end": { + "line": 3, + "column": 11 + }, + "identifierName": "x" + }, + "name": "x" + }, + "static": false, + "proto": false, + "kind": "init", + "method": false, + "value": { + "type": "NumberTypeAnnotation", + "start": 37, + "end": 43, + "loc": { + "start": { + "line": 3, + "column": 13 + }, + "end": { + "line": 3, + "column": 19 + } + } + }, + "variance": null, + "optional": false + } + ], + "indexers": [], + "internalSlots": [], + "exact": false, + "inexact": true + } + }, + { + "type": "TypeAlias", + "start": 51, + "end": 84, + "loc": { + "start": { + "line": 4, + "column": 0 + }, + "end": { + "line": 4, + "column": 33 + } + }, + "id": { + "type": "Identifier", + "start": 56, + "end": 57, + "loc": { + "start": { + "line": 4, + "column": 5 + }, + "end": { + "line": 4, + "column": 6 + }, + "identifierName": "V" + }, + "name": "V" + }, + "typeParameters": null, + "right": { + "type": "ObjectTypeAnnotation", + "start": 60, + "end": 83, + "loc": { + "start": { + "line": 4, + "column": 9 + }, + "end": { + "line": 4, + "column": 32 + } + }, + "callProperties": [], + "properties": [ + { + "type": "ObjectTypeProperty", + "start": 61, + "end": 70, + "loc": { + "start": { + "line": 4, + "column": 10 + }, + "end": { + "line": 4, + "column": 19 + } + }, + "key": { + "type": "Identifier", + "start": 61, + "end": 62, + "loc": { + "start": { + "line": 4, + "column": 10 + }, + "end": { + "line": 4, + "column": 11 + }, + "identifierName": "x" + }, + "name": "x" + }, + "static": false, + "proto": false, + "kind": "init", + "method": false, + "value": { + "type": "NumberTypeAnnotation", + "start": 64, + "end": 70, + "loc": { + "start": { + "line": 4, + "column": 13 + }, + "end": { + "line": 4, + "column": 19 + } + } + }, + "variance": null, + "optional": false + }, + { + "type": "ObjectTypeSpreadProperty", + "start": 72, + "end": 76, + "loc": { + "start": { + "line": 4, + "column": 21 + }, + "end": { + "line": 4, + "column": 25 + } + }, + "argument": { + "type": "GenericTypeAnnotation", + "start": 75, + "end": 76, + "loc": { + "start": { + "line": 4, + "column": 24 + }, + "end": { + "line": 4, + "column": 25 + } + }, + "typeParameters": null, + "id": { + "type": "Identifier", + "start": 75, + "end": 76, + "loc": { + "start": { + "line": 4, + "column": 24 + }, + "end": { + "line": 4, + "column": 25 + }, + "identifierName": "V" + }, + "name": "V" + } + } + }, + { + "type": "ObjectTypeSpreadProperty", + "start": 78, + "end": 82, + "loc": { + "start": { + "line": 4, + "column": 27 + }, + "end": { + "line": 4, + "column": 31 + } + }, + "argument": { + "type": "GenericTypeAnnotation", + "start": 81, + "end": 82, + "loc": { + "start": { + "line": 4, + "column": 30 + }, + "end": { + "line": 4, + "column": 31 + } + }, + "typeParameters": null, + "id": { + "type": "Identifier", + "start": 81, + "end": 82, + "loc": { + "start": { + "line": 4, + "column": 30 + }, + "end": { + "line": 4, + "column": 31 + }, + "identifierName": "U" + }, + "name": "U" + } + } + } + ], + "indexers": [], + "internalSlots": [], + "exact": false, + "inexact": false + } + } + ], + "directives": [] + }, + "comments": [ + { + "type": "CommentLine", + "value": "@flow", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + } + } + ] +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_object_invalid1/input.js b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_object_invalid1/input.js new file mode 100644 index 000000000000..84742c465959 --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_object_invalid1/input.js @@ -0,0 +1,2 @@ +//@flow +type T = {x: number, ..., y: number}; diff --git a/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_object_invalid1/options.json b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_object_invalid1/options.json new file mode 100644 index 000000000000..6d703769bf61 --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_object_invalid1/options.json @@ -0,0 +1,5 @@ +{ + "sourceType": "module", + "plugins": ["jsx", "flow"], + "throws": "Explicit inexact syntax must appear at the end of an inexact object (2:26)" +} diff --git a/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_object_invalid2/input.js b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_object_invalid2/input.js new file mode 100644 index 000000000000..15e4d01a74e6 --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_object_invalid2/input.js @@ -0,0 +1,2 @@ +//@flow +type U = {x: number, ..., ...}; diff --git a/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_object_invalid2/options.json b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_object_invalid2/options.json new file mode 100644 index 000000000000..6d703769bf61 --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_object_invalid2/options.json @@ -0,0 +1,5 @@ +{ + "sourceType": "module", + "plugins": ["jsx", "flow"], + "throws": "Explicit inexact syntax must appear at the end of an inexact object (2:26)" +} diff --git a/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_object_invalid3/input.js b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_object_invalid3/input.js new file mode 100644 index 000000000000..d9037ecf24a3 --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_object_invalid3/input.js @@ -0,0 +1,2 @@ +//@flow +type V = {x: number, ..., ...X}; diff --git a/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_object_invalid3/options.json b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_object_invalid3/options.json new file mode 100644 index 000000000000..6d703769bf61 --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_object_invalid3/options.json @@ -0,0 +1,5 @@ +{ + "sourceType": "module", + "plugins": ["jsx", "flow"], + "throws": "Explicit inexact syntax must appear at the end of an inexact object (2:26)" +} diff --git a/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_trailing_comma/input.js b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_trailing_comma/input.js new file mode 100644 index 000000000000..2b439cf934f8 --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_trailing_comma/input.js @@ -0,0 +1,11 @@ +//@flow +type T = { ..., }; +type U = { ...; }; +type V = { + x: number, + ..., +}; +type W = { + x: number; + ...; +}; diff --git a/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_trailing_comma/output.json b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_trailing_comma/output.json new file mode 100644 index 000000000000..3c39bdc107f5 --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/explicit-inexact-object/explicit_inexact_trailing_comma/output.json @@ -0,0 +1,395 @@ +{ + "type": "File", + "start": 0, + "end": 113, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 11, + "column": 2 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 113, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 11, + "column": 2 + } + }, + "sourceType": "module", + "interpreter": null, + "body": [ + { + "type": "TypeAlias", + "start": 8, + "end": 26, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 18 + } + }, + "id": { + "type": "Identifier", + "start": 13, + "end": 14, + "loc": { + "start": { + "line": 2, + "column": 5 + }, + "end": { + "line": 2, + "column": 6 + }, + "identifierName": "T" + }, + "name": "T" + }, + "typeParameters": null, + "right": { + "type": "ObjectTypeAnnotation", + "start": 17, + "end": 25, + "loc": { + "start": { + "line": 2, + "column": 9 + }, + "end": { + "line": 2, + "column": 17 + } + }, + "callProperties": [], + "properties": [], + "indexers": [], + "internalSlots": [], + "exact": false, + "inexact": true + }, + "leadingComments": [ + { + "type": "CommentLine", + "value": "@flow", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + } + } + ] + }, + { + "type": "TypeAlias", + "start": 27, + "end": 45, + "loc": { + "start": { + "line": 3, + "column": 0 + }, + "end": { + "line": 3, + "column": 18 + } + }, + "id": { + "type": "Identifier", + "start": 32, + "end": 33, + "loc": { + "start": { + "line": 3, + "column": 5 + }, + "end": { + "line": 3, + "column": 6 + }, + "identifierName": "U" + }, + "name": "U" + }, + "typeParameters": null, + "right": { + "type": "ObjectTypeAnnotation", + "start": 36, + "end": 44, + "loc": { + "start": { + "line": 3, + "column": 9 + }, + "end": { + "line": 3, + "column": 17 + } + }, + "callProperties": [], + "properties": [], + "indexers": [], + "internalSlots": [], + "exact": false, + "inexact": true + } + }, + { + "type": "TypeAlias", + "start": 46, + "end": 79, + "loc": { + "start": { + "line": 4, + "column": 0 + }, + "end": { + "line": 7, + "column": 2 + } + }, + "id": { + "type": "Identifier", + "start": 51, + "end": 52, + "loc": { + "start": { + "line": 4, + "column": 5 + }, + "end": { + "line": 4, + "column": 6 + }, + "identifierName": "V" + }, + "name": "V" + }, + "typeParameters": null, + "right": { + "type": "ObjectTypeAnnotation", + "start": 55, + "end": 78, + "loc": { + "start": { + "line": 4, + "column": 9 + }, + "end": { + "line": 7, + "column": 1 + } + }, + "callProperties": [], + "properties": [ + { + "type": "ObjectTypeProperty", + "start": 59, + "end": 68, + "loc": { + "start": { + "line": 5, + "column": 2 + }, + "end": { + "line": 5, + "column": 11 + } + }, + "key": { + "type": "Identifier", + "start": 59, + "end": 60, + "loc": { + "start": { + "line": 5, + "column": 2 + }, + "end": { + "line": 5, + "column": 3 + }, + "identifierName": "x" + }, + "name": "x" + }, + "static": false, + "proto": false, + "kind": "init", + "method": false, + "value": { + "type": "NumberTypeAnnotation", + "start": 62, + "end": 68, + "loc": { + "start": { + "line": 5, + "column": 5 + }, + "end": { + "line": 5, + "column": 11 + } + } + }, + "variance": null, + "optional": false + } + ], + "indexers": [], + "internalSlots": [], + "exact": false, + "inexact": true + } + }, + { + "type": "TypeAlias", + "start": 80, + "end": 113, + "loc": { + "start": { + "line": 8, + "column": 0 + }, + "end": { + "line": 11, + "column": 2 + } + }, + "id": { + "type": "Identifier", + "start": 85, + "end": 86, + "loc": { + "start": { + "line": 8, + "column": 5 + }, + "end": { + "line": 8, + "column": 6 + }, + "identifierName": "W" + }, + "name": "W" + }, + "typeParameters": null, + "right": { + "type": "ObjectTypeAnnotation", + "start": 89, + "end": 112, + "loc": { + "start": { + "line": 8, + "column": 9 + }, + "end": { + "line": 11, + "column": 1 + } + }, + "callProperties": [], + "properties": [ + { + "type": "ObjectTypeProperty", + "start": 93, + "end": 102, + "loc": { + "start": { + "line": 9, + "column": 2 + }, + "end": { + "line": 9, + "column": 11 + } + }, + "key": { + "type": "Identifier", + "start": 93, + "end": 94, + "loc": { + "start": { + "line": 9, + "column": 2 + }, + "end": { + "line": 9, + "column": 3 + }, + "identifierName": "x" + }, + "name": "x" + }, + "static": false, + "proto": false, + "kind": "init", + "method": false, + "value": { + "type": "NumberTypeAnnotation", + "start": 96, + "end": 102, + "loc": { + "start": { + "line": 9, + "column": 5 + }, + "end": { + "line": 9, + "column": 11 + } + } + }, + "variance": null, + "optional": false + } + ], + "indexers": [], + "internalSlots": [], + "exact": false, + "inexact": true + } + } + ], + "directives": [] + }, + "comments": [ + { + "type": "CommentLine", + "value": "@flow", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + } + } + ] +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/flow/interface-types/identifier-named-static-method/input.js b/packages/babel-parser/test/fixtures/flow/interface-types/identifier-named-static-method/input.js new file mode 100644 index 000000000000..cac2ca368ba9 --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/interface-types/identifier-named-static-method/input.js @@ -0,0 +1 @@ +type T = interface { static(): number } diff --git a/packages/babel-parser/test/fixtures/flow/interface-types/identifier-named-static-method/output.json b/packages/babel-parser/test/fixtures/flow/interface-types/identifier-named-static-method/output.json new file mode 100644 index 000000000000..73f418d338aa --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/interface-types/identifier-named-static-method/output.json @@ -0,0 +1,175 @@ +{ + "type": "File", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "sourceType": "module", + "interpreter": null, + "body": [ + { + "type": "TypeAlias", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "id": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + }, + "identifierName": "T" + }, + "name": "T" + }, + "typeParameters": null, + "right": { + "type": "InterfaceTypeAnnotation", + "start": 9, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "extends": [], + "body": { + "type": "ObjectTypeAnnotation", + "start": 19, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "callProperties": [], + "properties": [ + { + "type": "ObjectTypeProperty", + "start": 21, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "key": { + "type": "Identifier", + "start": 21, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 27 + }, + "identifierName": "static" + }, + "name": "static" + }, + "static": false, + "proto": false, + "kind": "init", + "method": true, + "value": { + "type": "FunctionTypeAnnotation", + "start": 21, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "params": [], + "rest": null, + "typeParameters": null, + "returnType": { + "type": "NumberTypeAnnotation", + "start": 31, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 31 + }, + "end": { + "line": 1, + "column": 37 + } + } + } + }, + "optional": false + } + ], + "indexers": [], + "internalSlots": [], + "exact": false + } + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/flow/interfaces-module-and-script/10/input.js b/packages/babel-parser/test/fixtures/flow/interfaces-module-and-script/10/input.js index c12feec022bb..6e53bcc6a84f 100644 --- a/packages/babel-parser/test/fixtures/flow/interfaces-module-and-script/10/input.js +++ b/packages/babel-parser/test/fixtures/flow/interfaces-module-and-script/10/input.js @@ -1,5 +1,4 @@ interface IFoo { x: boolean; static (): void; - static y: boolean; } diff --git a/packages/babel-parser/test/fixtures/flow/interfaces-module-and-script/10/output.json b/packages/babel-parser/test/fixtures/flow/interfaces-module-and-script/10/output.json index c582203ef120..32bec330e537 100644 --- a/packages/babel-parser/test/fixtures/flow/interfaces-module-and-script/10/output.json +++ b/packages/babel-parser/test/fixtures/flow/interfaces-module-and-script/10/output.json @@ -1,28 +1,28 @@ { "type": "File", "start": 0, - "end": 72, + "end": 51, "loc": { "start": { "line": 1, "column": 0 }, "end": { - "line": 5, + "line": 4, "column": 1 } }, "program": { "type": "Program", "start": 0, - "end": 72, + "end": 51, "loc": { "start": { "line": 1, "column": 0 }, "end": { - "line": 5, + "line": 4, "column": 1 } }, @@ -32,14 +32,14 @@ { "type": "InterfaceDeclaration", "start": 0, - "end": 72, + "end": 51, "loc": { "start": { "line": 1, "column": 0 }, "end": { - "line": 5, + "line": 4, "column": 1 } }, @@ -67,68 +67,18 @@ "body": { "type": "ObjectTypeAnnotation", "start": 15, - "end": 72, + "end": 51, "loc": { "start": { "line": 1, "column": 15 }, "end": { - "line": 5, + "line": 4, "column": 1 } }, - "callProperties": [ - { - "type": "ObjectTypeCallProperty", - "start": 33, - "end": 48, - "loc": { - "start": { - "line": 3, - "column": 2 - }, - "end": { - "line": 3, - "column": 17 - } - }, - "static": true, - "value": { - "type": "FunctionTypeAnnotation", - "start": 40, - "end": 48, - "loc": { - "start": { - "line": 3, - "column": 9 - }, - "end": { - "line": 3, - "column": 17 - } - }, - "params": [], - "rest": null, - "typeParameters": null, - "returnType": { - "type": "VoidTypeAnnotation", - "start": 44, - "end": 48, - "loc": { - "start": { - "line": 3, - "column": 13 - }, - "end": { - "line": 3, - "column": 17 - } - } - } - } - } - ], + "callProperties": [], "properties": [ { "type": "ObjectTypeProperty", @@ -185,55 +135,72 @@ }, { "type": "ObjectTypeProperty", - "start": 52, - "end": 69, + "start": 33, + "end": 48, "loc": { "start": { - "line": 4, + "line": 3, "column": 2 }, "end": { - "line": 4, - "column": 19 + "line": 3, + "column": 17 } }, "key": { "type": "Identifier", - "start": 59, - "end": 60, + "start": 33, + "end": 39, "loc": { "start": { - "line": 4, - "column": 9 + "line": 3, + "column": 2 }, "end": { - "line": 4, - "column": 10 + "line": 3, + "column": 8 }, - "identifierName": "y" + "identifierName": "static" }, - "name": "y" + "name": "static" }, - "static": true, + "static": false, "proto": false, "kind": "init", - "method": false, + "method": true, "value": { - "type": "BooleanTypeAnnotation", - "start": 62, - "end": 69, + "type": "FunctionTypeAnnotation", + "start": 33, + "end": 48, "loc": { "start": { - "line": 4, - "column": 12 + "line": 3, + "column": 2 }, "end": { - "line": 4, - "column": 19 + "line": 3, + "column": 17 + } + }, + "params": [], + "rest": null, + "typeParameters": null, + "returnType": { + "type": "VoidTypeAnnotation", + "start": 44, + "end": 48, + "loc": { + "start": { + "line": 3, + "column": 13 + }, + "end": { + "line": 3, + "column": 17 + } } } }, - "variance": null, "optional": false } ], diff --git a/packages/babel-parser/test/fixtures/flow/interfaces-module-and-script/id-reserved-type-invalid/options.json b/packages/babel-parser/test/fixtures/flow/interfaces-module-and-script/id-reserved-type-invalid/options.json index 293efb5d9d07..b67b9224d4c0 100644 --- a/packages/babel-parser/test/fixtures/flow/interfaces-module-and-script/id-reserved-type-invalid/options.json +++ b/packages/babel-parser/test/fixtures/flow/interfaces-module-and-script/id-reserved-type-invalid/options.json @@ -1,3 +1,3 @@ { - "throws": "Cannot overwrite primitive type string (1:10)" + "throws": "Cannot overwrite primitive type string (1:10)" } diff --git a/packages/babel-parser/test/fixtures/flow/interfaces-module-and-script/identifier-named-static-method/input.js b/packages/babel-parser/test/fixtures/flow/interfaces-module-and-script/identifier-named-static-method/input.js new file mode 100644 index 000000000000..65af58e63689 --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/interfaces-module-and-script/identifier-named-static-method/input.js @@ -0,0 +1 @@ +interface A { static(): number } diff --git a/packages/babel-parser/test/fixtures/flow/interfaces-module-and-script/identifier-named-static-method/output.json b/packages/babel-parser/test/fixtures/flow/interfaces-module-and-script/identifier-named-static-method/output.json new file mode 100644 index 000000000000..3ec979ff2b1d --- /dev/null +++ b/packages/babel-parser/test/fixtures/flow/interfaces-module-and-script/identifier-named-static-method/output.json @@ -0,0 +1,162 @@ +{ + "type": "File", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "sourceType": "module", + "interpreter": null, + "body": [ + { + "type": "InterfaceDeclaration", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + }, + "identifierName": "A" + }, + "name": "A" + }, + "typeParameters": null, + "extends": [], + "implements": [], + "mixins": [], + "body": { + "type": "ObjectTypeAnnotation", + "start": 12, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "callProperties": [], + "properties": [ + { + "type": "ObjectTypeProperty", + "start": 14, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "key": { + "type": "Identifier", + "start": 14, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 20 + }, + "identifierName": "static" + }, + "name": "static" + }, + "static": false, + "proto": false, + "kind": "init", + "method": true, + "value": { + "type": "FunctionTypeAnnotation", + "start": 14, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "params": [], + "rest": null, + "typeParameters": null, + "returnType": { + "type": "NumberTypeAnnotation", + "start": 24, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 30 + } + } + } + }, + "optional": false + } + ], + "indexers": [], + "internalSlots": [], + "exact": false + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/flow/interfaces-module-and-script/implements-reserved-type-invalid/options.json b/packages/babel-parser/test/fixtures/flow/interfaces-module-and-script/implements-reserved-type-invalid/options.json index 976b966edc23..3eddc82b13a2 100644 --- a/packages/babel-parser/test/fixtures/flow/interfaces-module-and-script/implements-reserved-type-invalid/options.json +++ b/packages/babel-parser/test/fixtures/flow/interfaces-module-and-script/implements-reserved-type-invalid/options.json @@ -1,3 +1,3 @@ { - "throws": "Cannot overwrite primitive type string (1:21)" + "throws": "Cannot overwrite primitive type string (1:21)" } diff --git a/packages/babel-parser/test/fixtures/flow/internal-slot/object-method/output.json b/packages/babel-parser/test/fixtures/flow/internal-slot/object-method/output.json index 2be1cc35f8ee..b42f9eacce91 100644 --- a/packages/babel-parser/test/fixtures/flow/internal-slot/object-method/output.json +++ b/packages/babel-parser/test/fixtures/flow/internal-slot/object-method/output.json @@ -166,7 +166,8 @@ } } ], - "exact": false + "exact": false, + "inexact": false } } ], diff --git a/packages/babel-parser/test/fixtures/flow/internal-slot/object-optional/output.json b/packages/babel-parser/test/fixtures/flow/internal-slot/object-optional/output.json index 9a422ace0dab..605db54c850a 100644 --- a/packages/babel-parser/test/fixtures/flow/internal-slot/object-optional/output.json +++ b/packages/babel-parser/test/fixtures/flow/internal-slot/object-optional/output.json @@ -148,7 +148,8 @@ } } ], - "exact": false + "exact": false, + "inexact": false } } ], diff --git a/packages/babel-parser/test/fixtures/flow/internal-slot/object/output.json b/packages/babel-parser/test/fixtures/flow/internal-slot/object/output.json index dd474f9d3903..6ff31113bc57 100644 --- a/packages/babel-parser/test/fixtures/flow/internal-slot/object/output.json +++ b/packages/babel-parser/test/fixtures/flow/internal-slot/object/output.json @@ -147,7 +147,8 @@ } } ], - "exact": false + "exact": false, + "inexact": false } } ], diff --git a/packages/babel-parser/test/fixtures/flow/iterator/12/output.json b/packages/babel-parser/test/fixtures/flow/iterator/12/output.json index 523dd9f5cbe4..865bb503288f 100644 --- a/packages/babel-parser/test/fixtures/flow/iterator/12/output.json +++ b/packages/babel-parser/test/fixtures/flow/iterator/12/output.json @@ -168,7 +168,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } }, "body": { diff --git a/packages/babel-parser/test/fixtures/flow/iterator/13/output.json b/packages/babel-parser/test/fixtures/flow/iterator/13/output.json index 7162d07e7f7e..a21fcad31e10 100644 --- a/packages/babel-parser/test/fixtures/flow/iterator/13/output.json +++ b/packages/babel-parser/test/fixtures/flow/iterator/13/output.json @@ -168,7 +168,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } }, "body": { diff --git a/packages/babel-parser/test/fixtures/flow/object-types/complex-param-types/output.json b/packages/babel-parser/test/fixtures/flow/object-types/complex-param-types/output.json index 4bd3e696e5d6..c6357989dc29 100644 --- a/packages/babel-parser/test/fixtures/flow/object-types/complex-param-types/output.json +++ b/packages/babel-parser/test/fixtures/flow/object-types/complex-param-types/output.json @@ -233,7 +233,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } ], diff --git a/packages/babel-parser/test/fixtures/flow/opaque-type-alias/reserved-type-invalid/options.json b/packages/babel-parser/test/fixtures/flow/opaque-type-alias/reserved-type-invalid/options.json index 55b6b62222b5..6bf62df4a991 100644 --- a/packages/babel-parser/test/fixtures/flow/opaque-type-alias/reserved-type-invalid/options.json +++ b/packages/babel-parser/test/fixtures/flow/opaque-type-alias/reserved-type-invalid/options.json @@ -1,3 +1,3 @@ { - "throws": "Cannot overwrite primitive type string (1:12)" + "throws": "Cannot overwrite primitive type string (1:12)" } diff --git a/packages/babel-parser/test/fixtures/flow/regression/issue-58-ambiguous/options.json b/packages/babel-parser/test/fixtures/flow/regression/issue-58-ambiguous/options.json index b1f344213dad..49dc6c3d5a6a 100644 --- a/packages/babel-parser/test/fixtures/flow/regression/issue-58-ambiguous/options.json +++ b/packages/babel-parser/test/fixtures/flow/regression/issue-58-ambiguous/options.json @@ -1,3 +1,3 @@ { - "throws": "Ambiguous expression: wrap the arrow functions in parentheses to disambiguate. (4:4)" -} \ No newline at end of file + "throws": "Ambiguous expression: wrap the arrow functions in parentheses to disambiguate. (4:4)" +} diff --git a/packages/babel-parser/test/fixtures/flow/regression/issue-58-failing-1/options.json b/packages/babel-parser/test/fixtures/flow/regression/issue-58-failing-1/options.json index fcc81471caa8..215199590424 100644 --- a/packages/babel-parser/test/fixtures/flow/regression/issue-58-failing-1/options.json +++ b/packages/babel-parser/test/fixtures/flow/regression/issue-58-failing-1/options.json @@ -1,3 +1,3 @@ { - "throws": "Invalid left-hand side in arrow function parameters (2:11)" -} \ No newline at end of file + "throws": "Invalid left-hand side in arrow function parameters (2:11)" +} diff --git a/packages/babel-parser/test/fixtures/flow/regression/issue-58-failing-2/options.json b/packages/babel-parser/test/fixtures/flow/regression/issue-58-failing-2/options.json index 26b1d53e8dc7..36a678e0e538 100644 --- a/packages/babel-parser/test/fixtures/flow/regression/issue-58-failing-2/options.json +++ b/packages/babel-parser/test/fixtures/flow/regression/issue-58-failing-2/options.json @@ -1,3 +1,3 @@ { - "throws": "Invalid left-hand side in arrow function parameters (2:8)" -} \ No newline at end of file + "throws": "Invalid left-hand side in arrow function parameters (2:8)" +} diff --git a/packages/babel-parser/test/fixtures/flow/regression/issue-58-failing-3/options.json b/packages/babel-parser/test/fixtures/flow/regression/issue-58-failing-3/options.json index 830b8f6bc79e..2fc0696df35a 100644 --- a/packages/babel-parser/test/fixtures/flow/regression/issue-58-failing-3/options.json +++ b/packages/babel-parser/test/fixtures/flow/regression/issue-58-failing-3/options.json @@ -1,3 +1,3 @@ { - "throws": "Invalid left-hand side in arrow function parameters (2:5)" -} \ No newline at end of file + "throws": "Invalid left-hand side in arrow function parameters (2:5)" +} diff --git a/packages/babel-parser/test/fixtures/flow/regression/issue-58-failing-4/options.json b/packages/babel-parser/test/fixtures/flow/regression/issue-58-failing-4/options.json index fcc81471caa8..215199590424 100644 --- a/packages/babel-parser/test/fixtures/flow/regression/issue-58-failing-4/options.json +++ b/packages/babel-parser/test/fixtures/flow/regression/issue-58-failing-4/options.json @@ -1,3 +1,3 @@ { - "throws": "Invalid left-hand side in arrow function parameters (2:11)" -} \ No newline at end of file + "throws": "Invalid left-hand side in arrow function parameters (2:11)" +} diff --git a/packages/babel-parser/test/fixtures/flow/type-alias/4/output.json b/packages/babel-parser/test/fixtures/flow/type-alias/4/output.json index c7bc62245446..a1ff7e2786c1 100644 --- a/packages/babel-parser/test/fixtures/flow/type-alias/4/output.json +++ b/packages/babel-parser/test/fixtures/flow/type-alias/4/output.json @@ -153,7 +153,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false }, { "type": "ObjectTypeAnnotation", @@ -232,7 +233,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } ] } @@ -626,7 +628,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false }, { "type": "ObjectTypeAnnotation", @@ -705,7 +708,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } ] }, @@ -715,7 +719,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } }, { @@ -893,7 +898,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false }, { "type": "ObjectTypeAnnotation", @@ -972,7 +978,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } ] }, @@ -982,7 +989,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } ], diff --git a/packages/babel-parser/test/fixtures/flow/type-annotations/108/output.json b/packages/babel-parser/test/fixtures/flow/type-annotations/108/output.json index 59d32d37d0fb..a3e8ba642bf2 100644 --- a/packages/babel-parser/test/fixtures/flow/type-annotations/108/output.json +++ b/packages/babel-parser/test/fixtures/flow/type-annotations/108/output.json @@ -213,7 +213,8 @@ ], "indexers": [], "internalSlots": [], - "exact": true + "exact": true, + "inexact": false } } }, @@ -532,7 +533,8 @@ ], "indexers": [], "internalSlots": [], - "exact": true + "exact": true, + "inexact": false } } }, @@ -744,7 +746,8 @@ "properties": [], "indexers": [], "internalSlots": [], - "exact": true + "exact": true, + "inexact": false } } }, @@ -1003,7 +1006,8 @@ ], "indexers": [], "internalSlots": [], - "exact": true + "exact": true, + "inexact": false }, "variance": null, "optional": false @@ -1064,7 +1068,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } }, @@ -1537,7 +1542,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false }, "variance": null, "optional": false @@ -1598,7 +1604,8 @@ ], "indexers": [], "internalSlots": [], - "exact": true + "exact": true, + "inexact": false } } }, diff --git a/packages/babel-parser/test/fixtures/flow/type-annotations/110/output.json b/packages/babel-parser/test/fixtures/flow/type-annotations/110/output.json index 4929bc3d478f..4b3587d4c8a8 100644 --- a/packages/babel-parser/test/fixtures/flow/type-annotations/110/output.json +++ b/packages/babel-parser/test/fixtures/flow/type-annotations/110/output.json @@ -166,7 +166,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } ], diff --git a/packages/babel-parser/test/fixtures/flow/type-annotations/111/output.json b/packages/babel-parser/test/fixtures/flow/type-annotations/111/output.json index afb693e33614..ec02ec57394d 100644 --- a/packages/babel-parser/test/fixtures/flow/type-annotations/111/output.json +++ b/packages/babel-parser/test/fixtures/flow/type-annotations/111/output.json @@ -166,7 +166,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } ], diff --git a/packages/babel-parser/test/fixtures/flow/type-annotations/114/output.json b/packages/babel-parser/test/fixtures/flow/type-annotations/114/output.json index 0cb28d6e0fd3..ed6301370237 100644 --- a/packages/babel-parser/test/fixtures/flow/type-annotations/114/output.json +++ b/packages/babel-parser/test/fixtures/flow/type-annotations/114/output.json @@ -195,7 +195,8 @@ } ], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } ], diff --git a/packages/babel-parser/test/fixtures/flow/type-annotations/115/output.json b/packages/babel-parser/test/fixtures/flow/type-annotations/115/output.json index da040897ade4..df1f40c30646 100644 --- a/packages/babel-parser/test/fixtures/flow/type-annotations/115/output.json +++ b/packages/babel-parser/test/fixtures/flow/type-annotations/115/output.json @@ -195,7 +195,8 @@ } ], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } ], diff --git a/packages/babel-parser/test/fixtures/flow/type-annotations/127/output.json b/packages/babel-parser/test/fixtures/flow/type-annotations/127/output.json index 4d08cf624407..165aac2e4caa 100644 --- a/packages/babel-parser/test/fixtures/flow/type-annotations/127/output.json +++ b/packages/babel-parser/test/fixtures/flow/type-annotations/127/output.json @@ -128,7 +128,8 @@ } ], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } ], diff --git a/packages/babel-parser/test/fixtures/flow/type-annotations/128/output.json b/packages/babel-parser/test/fixtures/flow/type-annotations/128/output.json index cf23e569d27c..345675c7e135 100644 --- a/packages/babel-parser/test/fixtures/flow/type-annotations/128/output.json +++ b/packages/babel-parser/test/fixtures/flow/type-annotations/128/output.json @@ -160,7 +160,8 @@ } ], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } ], diff --git a/packages/babel-parser/test/fixtures/flow/type-annotations/135/output.json b/packages/babel-parser/test/fixtures/flow/type-annotations/135/output.json index aa8891c0b701..ce7e04fe7836 100644 --- a/packages/babel-parser/test/fixtures/flow/type-annotations/135/output.json +++ b/packages/babel-parser/test/fixtures/flow/type-annotations/135/output.json @@ -110,7 +110,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } ], diff --git a/packages/babel-parser/test/fixtures/flow/type-annotations/136/output.json b/packages/babel-parser/test/fixtures/flow/type-annotations/136/output.json index f2a1f069cffc..bdd81eaa2c09 100644 --- a/packages/babel-parser/test/fixtures/flow/type-annotations/136/output.json +++ b/packages/babel-parser/test/fixtures/flow/type-annotations/136/output.json @@ -130,7 +130,8 @@ "properties": [], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false }, "variance": null, "optional": false @@ -167,13 +168,15 @@ "properties": [], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } ], diff --git a/packages/babel-parser/test/fixtures/flow/type-annotations/138/output.json b/packages/babel-parser/test/fixtures/flow/type-annotations/138/output.json index 1987550217b1..6e48beeb05dc 100644 --- a/packages/babel-parser/test/fixtures/flow/type-annotations/138/output.json +++ b/packages/babel-parser/test/fixtures/flow/type-annotations/138/output.json @@ -276,7 +276,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } ], diff --git a/packages/babel-parser/test/fixtures/flow/type-annotations/139/options.json b/packages/babel-parser/test/fixtures/flow/type-annotations/139/options.json index 835e923674fd..2b0782bcbc3e 100644 --- a/packages/babel-parser/test/fixtures/flow/type-annotations/139/options.json +++ b/packages/babel-parser/test/fixtures/flow/type-annotations/139/options.json @@ -1,3 +1,3 @@ { - "throws": "Spread properties cannot have variance (3:1)" -} \ No newline at end of file + "throws": "Spread properties cannot have variance (3:1)" +} diff --git a/packages/babel-parser/test/fixtures/flow/type-annotations/16/output.json b/packages/babel-parser/test/fixtures/flow/type-annotations/16/output.json index 4db03aa8f5aa..59fe3a8d364e 100644 --- a/packages/babel-parser/test/fixtures/flow/type-annotations/16/output.json +++ b/packages/babel-parser/test/fixtures/flow/type-annotations/16/output.json @@ -96,7 +96,8 @@ "properties": [], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } }, "body": { diff --git a/packages/babel-parser/test/fixtures/flow/type-annotations/32/output.json b/packages/babel-parser/test/fixtures/flow/type-annotations/32/output.json index 6e85ab61db4e..70cbbd4fef08 100644 --- a/packages/babel-parser/test/fixtures/flow/type-annotations/32/output.json +++ b/packages/babel-parser/test/fixtures/flow/type-annotations/32/output.json @@ -160,7 +160,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } }, diff --git a/packages/babel-parser/test/fixtures/flow/type-annotations/33/output.json b/packages/babel-parser/test/fixtures/flow/type-annotations/33/output.json index 5b4664821d6c..1ef29b3b8bb6 100644 --- a/packages/babel-parser/test/fixtures/flow/type-annotations/33/output.json +++ b/packages/babel-parser/test/fixtures/flow/type-annotations/33/output.json @@ -160,7 +160,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } }, diff --git a/packages/babel-parser/test/fixtures/flow/type-annotations/34/output.json b/packages/babel-parser/test/fixtures/flow/type-annotations/34/output.json index e0cef862f368..b389c49201ad 100644 --- a/packages/babel-parser/test/fixtures/flow/type-annotations/34/output.json +++ b/packages/babel-parser/test/fixtures/flow/type-annotations/34/output.json @@ -225,7 +225,8 @@ } ], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } }, diff --git a/packages/babel-parser/test/fixtures/flow/type-annotations/35/output.json b/packages/babel-parser/test/fixtures/flow/type-annotations/35/output.json index 42d9e07ef5fd..cc227490d30a 100644 --- a/packages/babel-parser/test/fixtures/flow/type-annotations/35/output.json +++ b/packages/babel-parser/test/fixtures/flow/type-annotations/35/output.json @@ -174,7 +174,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } } diff --git a/packages/babel-parser/test/fixtures/flow/type-annotations/36/output.json b/packages/babel-parser/test/fixtures/flow/type-annotations/36/output.json index fee4f6be4559..431aa501bc4d 100644 --- a/packages/babel-parser/test/fixtures/flow/type-annotations/36/output.json +++ b/packages/babel-parser/test/fixtures/flow/type-annotations/36/output.json @@ -213,7 +213,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } }, diff --git a/packages/babel-parser/test/fixtures/flow/type-annotations/37/output.json b/packages/babel-parser/test/fixtures/flow/type-annotations/37/output.json index 24897a890d17..428bb08cb9aa 100644 --- a/packages/babel-parser/test/fixtures/flow/type-annotations/37/output.json +++ b/packages/babel-parser/test/fixtures/flow/type-annotations/37/output.json @@ -211,7 +211,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false }, "variance": null, "optional": false @@ -219,7 +220,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } }, diff --git a/packages/babel-parser/test/fixtures/flow/type-annotations/38/output.json b/packages/babel-parser/test/fixtures/flow/type-annotations/38/output.json index 537525fd5058..0e133ba1cfbc 100644 --- a/packages/babel-parser/test/fixtures/flow/type-annotations/38/output.json +++ b/packages/babel-parser/test/fixtures/flow/type-annotations/38/output.json @@ -225,7 +225,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } }, "variance": null, @@ -234,7 +235,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } }, diff --git a/packages/babel-parser/test/fixtures/flow/type-annotations/39/output.json b/packages/babel-parser/test/fixtures/flow/type-annotations/39/output.json index fe3cbacc4b91..03cc703ab871 100644 --- a/packages/babel-parser/test/fixtures/flow/type-annotations/39/output.json +++ b/packages/babel-parser/test/fixtures/flow/type-annotations/39/output.json @@ -213,7 +213,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } }, diff --git a/packages/babel-parser/test/fixtures/flow/type-annotations/40/output.json b/packages/babel-parser/test/fixtures/flow/type-annotations/40/output.json index ed33244fe9cb..2cfc8de95973 100644 --- a/packages/babel-parser/test/fixtures/flow/type-annotations/40/output.json +++ b/packages/babel-parser/test/fixtures/flow/type-annotations/40/output.json @@ -213,7 +213,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } }, diff --git a/packages/babel-parser/test/fixtures/flow/type-annotations/41/output.json b/packages/babel-parser/test/fixtures/flow/type-annotations/41/output.json index 9e2c759153b9..2f073e822eff 100644 --- a/packages/babel-parser/test/fixtures/flow/type-annotations/41/output.json +++ b/packages/babel-parser/test/fixtures/flow/type-annotations/41/output.json @@ -235,7 +235,8 @@ } ], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } }, diff --git a/packages/babel-parser/test/fixtures/flow/type-annotations/42/output.json b/packages/babel-parser/test/fixtures/flow/type-annotations/42/output.json index 446275326eff..b918a1e51b0a 100644 --- a/packages/babel-parser/test/fixtures/flow/type-annotations/42/output.json +++ b/packages/babel-parser/test/fixtures/flow/type-annotations/42/output.json @@ -322,7 +322,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } }, diff --git a/packages/babel-parser/test/fixtures/flow/type-annotations/43/output.json b/packages/babel-parser/test/fixtures/flow/type-annotations/43/output.json index 027091719c88..05ff2466b98b 100644 --- a/packages/babel-parser/test/fixtures/flow/type-annotations/43/output.json +++ b/packages/babel-parser/test/fixtures/flow/type-annotations/43/output.json @@ -295,7 +295,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } }, diff --git a/packages/babel-parser/test/fixtures/flow/type-annotations/60/output.json b/packages/babel-parser/test/fixtures/flow/type-annotations/60/output.json index 1f013f7840a1..cfa5f6db54cc 100644 --- a/packages/babel-parser/test/fixtures/flow/type-annotations/60/output.json +++ b/packages/babel-parser/test/fixtures/flow/type-annotations/60/output.json @@ -215,7 +215,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } }, diff --git a/packages/babel-parser/test/fixtures/flow/type-annotations/61/output.json b/packages/babel-parser/test/fixtures/flow/type-annotations/61/output.json index c26e02abf8ad..25d46071b872 100644 --- a/packages/babel-parser/test/fixtures/flow/type-annotations/61/output.json +++ b/packages/babel-parser/test/fixtures/flow/type-annotations/61/output.json @@ -215,7 +215,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } }, diff --git a/packages/babel-parser/test/fixtures/flow/type-annotations/63/output.json b/packages/babel-parser/test/fixtures/flow/type-annotations/63/output.json index 7311b8c2411e..e9fb827b5b7d 100644 --- a/packages/babel-parser/test/fixtures/flow/type-annotations/63/output.json +++ b/packages/babel-parser/test/fixtures/flow/type-annotations/63/output.json @@ -220,7 +220,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } } diff --git a/packages/babel-parser/test/fixtures/flow/type-annotations/98/output.json b/packages/babel-parser/test/fixtures/flow/type-annotations/98/output.json index 669cab2fd5e9..6a24cf2f1e35 100644 --- a/packages/babel-parser/test/fixtures/flow/type-annotations/98/output.json +++ b/packages/babel-parser/test/fixtures/flow/type-annotations/98/output.json @@ -266,7 +266,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } }, diff --git a/packages/babel-parser/test/fixtures/flow/type-annotations/invalid-line-terminator-arrow/options.json b/packages/babel-parser/test/fixtures/flow/type-annotations/invalid-line-terminator-arrow/options.json index a659adb24dd4..b5b75f41875c 100644 --- a/packages/babel-parser/test/fixtures/flow/type-annotations/invalid-line-terminator-arrow/options.json +++ b/packages/babel-parser/test/fixtures/flow/type-annotations/invalid-line-terminator-arrow/options.json @@ -1,3 +1,3 @@ { - "throws": "Unexpected token (1:1)" + "throws": "Unexpected token (1:1)" } diff --git a/packages/babel-parser/test/fixtures/flow/type-annotations/object-type-method/output.json b/packages/babel-parser/test/fixtures/flow/type-annotations/object-type-method/output.json index 61c974a71802..f72e8ff175f2 100644 --- a/packages/babel-parser/test/fixtures/flow/type-annotations/object-type-method/output.json +++ b/packages/babel-parser/test/fixtures/flow/type-annotations/object-type-method/output.json @@ -151,7 +151,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } }, { @@ -309,7 +310,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } }, { @@ -433,7 +435,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } }, { @@ -590,7 +593,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } }, { @@ -693,7 +697,8 @@ "properties": [], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } }, { @@ -896,7 +901,8 @@ "properties": [], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } }, { diff --git a/packages/babel-parser/test/fixtures/flow/type-annotations/with-default-invalid/options.json b/packages/babel-parser/test/fixtures/flow/type-annotations/with-default-invalid/options.json index 95ca28398b65..24792311b3e9 100644 --- a/packages/babel-parser/test/fixtures/flow/type-annotations/with-default-invalid/options.json +++ b/packages/babel-parser/test/fixtures/flow/type-annotations/with-default-invalid/options.json @@ -1,3 +1,3 @@ { - "throws": "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25` (1:20)" -} \ No newline at end of file + "throws": "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25` (1:20)" +} diff --git a/packages/babel-parser/test/fixtures/flow/type-parameter-declaration/arrow_without_jsx/options.json b/packages/babel-parser/test/fixtures/flow/type-parameter-declaration/arrow_without_jsx/options.json index ccabc4fdd614..66dd3748d6ea 100644 --- a/packages/babel-parser/test/fixtures/flow/type-parameter-declaration/arrow_without_jsx/options.json +++ b/packages/babel-parser/test/fixtures/flow/type-parameter-declaration/arrow_without_jsx/options.json @@ -1,4 +1,3 @@ { "plugins": ["flow"] } - diff --git a/packages/babel-parser/test/fixtures/flow/type-parameter-declaration/invalid-getter/options.json b/packages/babel-parser/test/fixtures/flow/type-parameter-declaration/invalid-getter/options.json index fee1459767aa..0123986cbe34 100644 --- a/packages/babel-parser/test/fixtures/flow/type-parameter-declaration/invalid-getter/options.json +++ b/packages/babel-parser/test/fixtures/flow/type-parameter-declaration/invalid-getter/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \"(\" (2:10)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/flow/type-parameter-declaration/invalid-setter/options.json b/packages/babel-parser/test/fixtures/flow/type-parameter-declaration/invalid-setter/options.json index fee1459767aa..0123986cbe34 100644 --- a/packages/babel-parser/test/fixtures/flow/type-parameter-declaration/invalid-setter/options.json +++ b/packages/babel-parser/test/fixtures/flow/type-parameter-declaration/invalid-setter/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \"(\" (2:10)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/flow/type-parameter-declaration/type-object-reserved-word/output.json b/packages/babel-parser/test/fixtures/flow/type-parameter-declaration/type-object-reserved-word/output.json index 0b9e5fd724bd..d817f6ed4713 100644 --- a/packages/babel-parser/test/fixtures/flow/type-parameter-declaration/type-object-reserved-word/output.json +++ b/packages/babel-parser/test/fixtures/flow/type-parameter-declaration/type-object-reserved-word/output.json @@ -492,7 +492,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } } ], diff --git a/packages/babel-parser/test/fixtures/flow/typecasts/2/output.json b/packages/babel-parser/test/fixtures/flow/typecasts/2/output.json index 45638f476d7a..4d9f9da74bf5 100644 --- a/packages/babel-parser/test/fixtures/flow/typecasts/2/output.json +++ b/packages/babel-parser/test/fixtures/flow/typecasts/2/output.json @@ -323,7 +323,8 @@ ], "indexers": [], "internalSlots": [], - "exact": false + "exact": false, + "inexact": false } }, "extra": { diff --git a/packages/babel-parser/test/fixtures/jsx/errors/unicode-escape-in-identifier/options.json b/packages/babel-parser/test/fixtures/jsx/errors/unicode-escape-in-identifier/options.json index 04b967a2eea9..b5b75f41875c 100644 --- a/packages/babel-parser/test/fixtures/jsx/errors/unicode-escape-in-identifier/options.json +++ b/packages/babel-parser/test/fixtures/jsx/errors/unicode-escape-in-identifier/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token (1:1)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/typescript/arrow-function/generic-tsx/options.json b/packages/babel-parser/test/fixtures/typescript/arrow-function/generic-tsx/options.json index 6e5bbd52f85a..aa8780ac5180 100644 --- a/packages/babel-parser/test/fixtures/typescript/arrow-function/generic-tsx/options.json +++ b/packages/babel-parser/test/fixtures/typescript/arrow-function/generic-tsx/options.json @@ -1,3 +1,3 @@ { - "plugins": ["jsx", "typescript"] -} \ No newline at end of file + "plugins": ["jsx", "typescript"] +} diff --git a/packages/babel-parser/test/fixtures/typescript/class/property-optional-definite-assignment-not-allowed/options.json b/packages/babel-parser/test/fixtures/typescript/class/property-optional-definite-assignment-not-allowed/options.json index 626e94c744f1..cd6a9c1b1a0a 100644 --- a/packages/babel-parser/test/fixtures/typescript/class/property-optional-definite-assignment-not-allowed/options.json +++ b/packages/babel-parser/test/fixtures/typescript/class/property-optional-definite-assignment-not-allowed/options.json @@ -1,3 +1,3 @@ { "throws": "Unexpected token, expected \";\" (2:4)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/typescript/decorators/type-arguments-invalid/input.js b/packages/babel-parser/test/fixtures/typescript/decorators/type-arguments-invalid/input.js new file mode 100644 index 000000000000..5a4b902e4d80 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/decorators/type-arguments-invalid/input.js @@ -0,0 +1,2 @@ +@decorator +class Test {} diff --git a/packages/babel-parser/test/fixtures/typescript/decorators/type-arguments-invalid/options.json b/packages/babel-parser/test/fixtures/typescript/decorators/type-arguments-invalid/options.json new file mode 100644 index 000000000000..02d8a1c26f30 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/decorators/type-arguments-invalid/options.json @@ -0,0 +1,7 @@ +{ + "plugins": [ + "typescript", + ["decorators", { "decoratorsBeforeExport": true }] + ], + "throws": "Unexpected token, expected \"(\" (2:0)" +} diff --git a/packages/babel-parser/test/fixtures/typescript/decorators/type-arguments/input.js b/packages/babel-parser/test/fixtures/typescript/decorators/type-arguments/input.js new file mode 100644 index 000000000000..cb1c5dd44784 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/decorators/type-arguments/input.js @@ -0,0 +1,2 @@ +@decorator() +class Test {} diff --git a/packages/babel-parser/test/fixtures/typescript/decorators/type-arguments/options.json b/packages/babel-parser/test/fixtures/typescript/decorators/type-arguments/options.json new file mode 100644 index 000000000000..714918723f91 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/decorators/type-arguments/options.json @@ -0,0 +1,6 @@ +{ + "plugins": [ + "typescript", + ["decorators", { "decoratorsBeforeExport": true }] + ] +} diff --git a/packages/babel-parser/test/fixtures/typescript/decorators/type-arguments/output.json b/packages/babel-parser/test/fixtures/typescript/decorators/type-arguments/output.json new file mode 100644 index 000000000000..91add31ed156 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/decorators/type-arguments/output.json @@ -0,0 +1,166 @@ +{ + "type": "File", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 13 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 13 + } + }, + "sourceType": "module", + "interpreter": null, + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 13 + } + }, + "decorators": [ + { + "type": "Decorator", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "expression": { + "type": "CallExpression", + "start": 1, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "callee": { + "type": "Identifier", + "start": 1, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 10 + }, + "identifierName": "decorator" + }, + "name": "decorator" + }, + "arguments": [], + "typeParameters": { + "type": "TSTypeParameterInstantiation", + "start": 10, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "params": [ + { + "type": "TSStringKeyword", + "start": 11, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 17 + } + } + } + ] + } + } + } + ], + "id": { + "type": "Identifier", + "start": 27, + "end": 31, + "loc": { + "start": { + "line": 2, + "column": 6 + }, + "end": { + "line": 2, + "column": 10 + }, + "identifierName": "Test" + }, + "name": "Test" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 32, + "end": 34, + "loc": { + "start": { + "line": 2, + "column": 11 + }, + "end": { + "line": 2, + "column": 13 + } + }, + "body": [] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/typescript/interface/export/input.js b/packages/babel-parser/test/fixtures/typescript/interface/export/input.js index 509789ea6fbe..7049da8742da 100644 --- a/packages/babel-parser/test/fixtures/typescript/interface/export/input.js +++ b/packages/babel-parser/test/fixtures/typescript/interface/export/input.js @@ -1,2 +1,2 @@ export interface I {} -// `export default` does not work with interfaces +export default interface A {} diff --git a/packages/babel-parser/test/fixtures/typescript/interface/export/output.json b/packages/babel-parser/test/fixtures/typescript/interface/export/output.json index 5d74c7681757..1ad5c8ab4df6 100644 --- a/packages/babel-parser/test/fixtures/typescript/interface/export/output.json +++ b/packages/babel-parser/test/fixtures/typescript/interface/export/output.json @@ -1,7 +1,7 @@ { "type": "File", "start": 0, - "end": 71, + "end": 51, "loc": { "start": { "line": 1, @@ -9,13 +9,13 @@ }, "end": { "line": 2, - "column": 49 + "column": 29 } }, "program": { "type": "Program", "start": 0, - "end": 71, + "end": 51, "loc": { "start": { "line": 1, @@ -23,7 +23,7 @@ }, "end": { "line": 2, - "column": 49 + "column": 29 } }, "sourceType": "module", @@ -92,45 +92,72 @@ }, "body": [] } + } + }, + { + "type": "ExportDefaultDeclaration", + "start": 22, + "end": 51, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 29 + } }, - "trailingComments": [ - { - "type": "CommentLine", - "value": " `export default` does not work with interfaces", - "start": 22, - "end": 71, + "declaration": { + "type": "TSInterfaceDeclaration", + "start": 37, + "end": 51, + "loc": { + "start": { + "line": 2, + "column": 15 + }, + "end": { + "line": 2, + "column": 29 + } + }, + "id": { + "type": "Identifier", + "start": 47, + "end": 48, "loc": { "start": { "line": 2, - "column": 0 + "column": 25 }, "end": { "line": 2, - "column": 49 + "column": 26 + }, + "identifierName": "A" + }, + "name": "A" + }, + "body": { + "type": "TSInterfaceBody", + "start": 49, + "end": 51, + "loc": { + "start": { + "line": 2, + "column": 27 + }, + "end": { + "line": 2, + "column": 29 } - } + }, + "body": [] } - ] + } } ], "directives": [] - }, - "comments": [ - { - "type": "CommentLine", - "value": " `export default` does not work with interfaces", - "start": 22, - "end": 71, - "loc": { - "start": { - "line": 2, - "column": 0 - }, - "end": { - "line": 2, - "column": 49 - } - } - } - ] + } } \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/typescript/decorators/abstract-class/input.js b/packages/babel-parser/test/fixtures/typescript/legacy-decorators/abstract-class/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/typescript/decorators/abstract-class/input.js rename to packages/babel-parser/test/fixtures/typescript/legacy-decorators/abstract-class/input.js diff --git a/packages/babel-parser/test/fixtures/typescript/decorators/abstract-class/options.json b/packages/babel-parser/test/fixtures/typescript/legacy-decorators/abstract-class/options.json similarity index 100% rename from packages/babel-parser/test/fixtures/typescript/decorators/abstract-class/options.json rename to packages/babel-parser/test/fixtures/typescript/legacy-decorators/abstract-class/options.json diff --git a/packages/babel-parser/test/fixtures/typescript/decorators/abstract-class/output.json b/packages/babel-parser/test/fixtures/typescript/legacy-decorators/abstract-class/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/typescript/decorators/abstract-class/output.json rename to packages/babel-parser/test/fixtures/typescript/legacy-decorators/abstract-class/output.json diff --git a/packages/babel-parser/test/fixtures/typescript/legacy-decorators/type-arguments/input.js b/packages/babel-parser/test/fixtures/typescript/legacy-decorators/type-arguments/input.js new file mode 100644 index 000000000000..cb1c5dd44784 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/legacy-decorators/type-arguments/input.js @@ -0,0 +1,2 @@ +@decorator() +class Test {} diff --git a/packages/babel-parser/test/fixtures/typescript/legacy-decorators/type-arguments/options.json b/packages/babel-parser/test/fixtures/typescript/legacy-decorators/type-arguments/options.json new file mode 100644 index 000000000000..b95c143bc24f --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/legacy-decorators/type-arguments/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["typescript", "decorators-legacy"] +} diff --git a/packages/babel-parser/test/fixtures/typescript/legacy-decorators/type-arguments/output.json b/packages/babel-parser/test/fixtures/typescript/legacy-decorators/type-arguments/output.json new file mode 100644 index 000000000000..91add31ed156 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/legacy-decorators/type-arguments/output.json @@ -0,0 +1,166 @@ +{ + "type": "File", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 13 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 13 + } + }, + "sourceType": "module", + "interpreter": null, + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 13 + } + }, + "decorators": [ + { + "type": "Decorator", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "expression": { + "type": "CallExpression", + "start": 1, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "callee": { + "type": "Identifier", + "start": 1, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 10 + }, + "identifierName": "decorator" + }, + "name": "decorator" + }, + "arguments": [], + "typeParameters": { + "type": "TSTypeParameterInstantiation", + "start": 10, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "params": [ + { + "type": "TSStringKeyword", + "start": 11, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 17 + } + } + } + ] + } + } + } + ], + "id": { + "type": "Identifier", + "start": 27, + "end": 31, + "loc": { + "start": { + "line": 2, + "column": 6 + }, + "end": { + "line": 2, + "column": 10 + }, + "identifierName": "Test" + }, + "name": "Test" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 32, + "end": 34, + "loc": { + "start": { + "line": 2, + "column": 11 + }, + "end": { + "line": 2, + "column": 13 + } + }, + "body": [] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/typescript/regression/is-default-export/options.json b/packages/babel-parser/test/fixtures/typescript/regression/is-default-export/options.json index 21e26c84a8f9..009c01f8ac9c 100644 --- a/packages/babel-parser/test/fixtures/typescript/regression/is-default-export/options.json +++ b/packages/babel-parser/test/fixtures/typescript/regression/is-default-export/options.json @@ -1,3 +1,3 @@ { - "plugins": ["exportDefaultFrom", "typescript"] + "plugins": ["exportDefaultFrom", "typescript"] } diff --git a/packages/babel-parser/test/fixtures/typescript/type-arguments/new-false-positive-2/options.json b/packages/babel-parser/test/fixtures/typescript/type-arguments/new-false-positive-2/options.json index 07d136e20339..9ce9658f7dfa 100644 --- a/packages/babel-parser/test/fixtures/typescript/type-arguments/new-false-positive-2/options.json +++ b/packages/babel-parser/test/fixtures/typescript/type-arguments/new-false-positive-2/options.json @@ -1,3 +1,3 @@ { - "throws": "Unexpected token (1:8)" -} \ No newline at end of file + "throws": "Unexpected token (1:8)" +} diff --git a/packages/babel-parser/test/fixtures/typescript/type-arguments/tagged-template-no-asi/input.js b/packages/babel-parser/test/fixtures/typescript/type-arguments/tagged-template-no-asi/input.js new file mode 100644 index 000000000000..b540adf24f6e --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/type-arguments/tagged-template-no-asi/input.js @@ -0,0 +1,2 @@ +new C +`` diff --git a/packages/babel-parser/test/fixtures/typescript/type-arguments/tagged-template-no-asi/output.json b/packages/babel-parser/test/fixtures/typescript/type-arguments/tagged-template-no-asi/output.json new file mode 100644 index 000000000000..8721061b7f18 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/type-arguments/tagged-template-no-asi/output.json @@ -0,0 +1,185 @@ +{ + "type": "File", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 2 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 2 + } + }, + "sourceType": "module", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 2 + } + }, + "expression": { + "type": "NewExpression", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 2 + } + }, + "callee": { + "type": "TaggedTemplateExpression", + "start": 4, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 2, + "column": 2 + } + }, + "tag": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + }, + "identifierName": "C" + }, + "name": "C" + }, + "quasi": { + "type": "TemplateLiteral", + "start": 9, + "end": 11, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 2 + } + }, + "expressions": [], + "quasis": [ + { + "type": "TemplateElement", + "start": 10, + "end": 10, + "loc": { + "start": { + "line": 2, + "column": 1 + }, + "end": { + "line": 2, + "column": 1 + } + }, + "value": { + "raw": "", + "cooked": "" + }, + "tail": true + } + ] + }, + "typeParameters": { + "type": "TSTypeParameterInstantiation", + "start": 5, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "params": [ + { + "type": "TSTypeReference", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "typeName": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + }, + "identifierName": "T" + }, + "name": "T" + } + } + ] + } + }, + "arguments": [] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/typescript/type-arguments/tagged-template/input.js b/packages/babel-parser/test/fixtures/typescript/type-arguments/tagged-template/input.js new file mode 100644 index 000000000000..53bbc3e3edbe --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/type-arguments/tagged-template/input.js @@ -0,0 +1 @@ +f``; diff --git a/packages/babel-parser/test/fixtures/typescript/type-arguments/tagged-template/output.json b/packages/babel-parser/test/fixtures/typescript/type-arguments/tagged-template/output.json new file mode 100644 index 000000000000..c8b549d70049 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/type-arguments/tagged-template/output.json @@ -0,0 +1,169 @@ +{ + "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": "module", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "expression": { + "type": "TaggedTemplateExpression", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "tag": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + }, + "identifierName": "f" + }, + "name": "f" + }, + "quasi": { + "type": "TemplateLiteral", + "start": 4, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "expressions": [], + "quasis": [ + { + "type": "TemplateElement", + "start": 5, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "value": { + "raw": "", + "cooked": "" + }, + "tail": true + } + ] + }, + "typeParameters": { + "type": "TSTypeParameterInstantiation", + "start": 1, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "params": [ + { + "type": "TSTypeReference", + "start": 2, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "typeName": { + "type": "Identifier", + "start": 2, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 3 + }, + "identifierName": "T" + }, + "name": "T" + } + } + ] + } + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/typescript/type-arguments/tsx/input.js b/packages/babel-parser/test/fixtures/typescript/type-arguments/tsx/input.js new file mode 100644 index 000000000000..520e35ee9097 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/type-arguments/tsx/input.js @@ -0,0 +1,2 @@ +>; +/>; diff --git a/packages/babel-parser/test/fixtures/typescript/type-arguments/tsx/options.json b/packages/babel-parser/test/fixtures/typescript/type-arguments/tsx/options.json new file mode 100644 index 000000000000..aa8780ac5180 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/type-arguments/tsx/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["jsx", "typescript"] +} diff --git a/packages/babel-parser/test/fixtures/typescript/type-arguments/tsx/output.json b/packages/babel-parser/test/fixtures/typescript/type-arguments/tsx/output.json new file mode 100644 index 000000000000..15f1e7ebdee1 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/type-arguments/tsx/output.json @@ -0,0 +1,259 @@ +{ + "type": "File", + "start": 0, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 13 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 13 + } + }, + "sourceType": "module", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "expression": { + "type": "JSXElement", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "openingElement": { + "type": "JSXOpeningElement", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": { + "type": "JSXIdentifier", + "start": 1, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "name": "C" + }, + "typeParameters": { + "type": "TSTypeParameterInstantiation", + "start": 2, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "params": [ + { + "type": "TSNumberKeyword", + "start": 3, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 9 + } + } + } + ] + }, + "attributes": [], + "selfClosing": false + }, + "closingElement": { + "type": "JSXClosingElement", + "start": 11, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": { + "type": "JSXIdentifier", + "start": 13, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "C" + } + }, + "children": [] + } + }, + { + "type": "ExpressionStatement", + "start": 17, + "end": 30, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 13 + } + }, + "expression": { + "type": "JSXElement", + "start": 17, + "end": 29, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 12 + } + }, + "openingElement": { + "type": "JSXOpeningElement", + "start": 17, + "end": 29, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 12 + } + }, + "name": { + "type": "JSXIdentifier", + "start": 18, + "end": 19, + "loc": { + "start": { + "line": 2, + "column": 1 + }, + "end": { + "line": 2, + "column": 2 + } + }, + "name": "C" + }, + "typeParameters": { + "type": "TSTypeParameterInstantiation", + "start": 19, + "end": 27, + "loc": { + "start": { + "line": 2, + "column": 2 + }, + "end": { + "line": 2, + "column": 10 + } + }, + "params": [ + { + "type": "TSNumberKeyword", + "start": 20, + "end": 26, + "loc": { + "start": { + "line": 2, + "column": 3 + }, + "end": { + "line": 2, + "column": 9 + } + } + } + ] + }, + "attributes": [], + "selfClosing": true + }, + "closingElement": null, + "children": [] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/typescript/types/keywords/input.js b/packages/babel-parser/test/fixtures/typescript/types/keywords/input.js index d2ddfb94bbc6..0fec8f608a1c 100644 --- a/packages/babel-parser/test/fixtures/typescript/types/keywords/input.js +++ b/packages/babel-parser/test/fixtures/typescript/types/keywords/input.js @@ -1,4 +1,5 @@ let a: any; +let un: unknown; let b: boolean; let ne: never; let nul: null; diff --git a/packages/babel-parser/test/fixtures/typescript/types/keywords/output.json b/packages/babel-parser/test/fixtures/typescript/types/keywords/output.json index 3057fdf2b2a8..b223120ab536 100644 --- a/packages/babel-parser/test/fixtures/typescript/types/keywords/output.json +++ b/packages/babel-parser/test/fixtures/typescript/types/keywords/output.json @@ -1,28 +1,28 @@ { "type": "File", "start": 0, - "end": 152, + "end": 169, "loc": { "start": { "line": 1, "column": 0 }, "end": { - "line": 10, + "line": 11, "column": 12 } }, "program": { "type": "Program", "start": 0, - "end": 152, + "end": 169, "loc": { "start": { "line": 1, "column": 0 }, "end": { - "line": 10, + "line": 11, "column": 12 } }, @@ -113,7 +113,7 @@ { "type": "VariableDeclaration", "start": 12, - "end": 27, + "end": 28, "loc": { "start": { "line": 2, @@ -121,14 +121,14 @@ }, "end": { "line": 2, - "column": 15 + "column": 16 } }, "declarations": [ { "type": "VariableDeclarator", "start": 16, - "end": 26, + "end": 27, "loc": { "start": { "line": 2, @@ -136,13 +136,13 @@ }, "end": { "line": 2, - "column": 14 + "column": 15 } }, "id": { "type": "Identifier", "start": 16, - "end": 26, + "end": 27, "loc": { "start": { "line": 2, @@ -150,37 +150,37 @@ }, "end": { "line": 2, - "column": 14 + "column": 15 }, - "identifierName": "b" + "identifierName": "un" }, - "name": "b", + "name": "un", "typeAnnotation": { "type": "TSTypeAnnotation", - "start": 17, - "end": 26, + "start": 18, + "end": 27, "loc": { "start": { "line": 2, - "column": 5 + "column": 6 }, "end": { "line": 2, - "column": 14 + "column": 15 } }, "typeAnnotation": { - "type": "TSBooleanKeyword", - "start": 19, - "end": 26, + "type": "TSUnknownKeyword", + "start": 20, + "end": 27, "loc": { "start": { "line": 2, - "column": 7 + "column": 8 }, "end": { "line": 2, - "column": 14 + "column": 15 } } } @@ -193,8 +193,8 @@ }, { "type": "VariableDeclaration", - "start": 28, - "end": 42, + "start": 29, + "end": 44, "loc": { "start": { "line": 3, @@ -202,14 +202,14 @@ }, "end": { "line": 3, - "column": 14 + "column": 15 } }, "declarations": [ { "type": "VariableDeclarator", - "start": 32, - "end": 41, + "start": 33, + "end": 43, "loc": { "start": { "line": 3, @@ -217,13 +217,13 @@ }, "end": { "line": 3, - "column": 13 + "column": 14 } }, "id": { "type": "Identifier", - "start": 32, - "end": 41, + "start": 33, + "end": 43, "loc": { "start": { "line": 3, @@ -231,37 +231,37 @@ }, "end": { "line": 3, - "column": 13 + "column": 14 }, - "identifierName": "ne" + "identifierName": "b" }, - "name": "ne", + "name": "b", "typeAnnotation": { "type": "TSTypeAnnotation", "start": 34, - "end": 41, + "end": 43, "loc": { "start": { "line": 3, - "column": 6 + "column": 5 }, "end": { "line": 3, - "column": 13 + "column": 14 } }, "typeAnnotation": { - "type": "TSNeverKeyword", + "type": "TSBooleanKeyword", "start": 36, - "end": 41, + "end": 43, "loc": { "start": { "line": 3, - "column": 8 + "column": 7 }, "end": { "line": 3, - "column": 13 + "column": 14 } } } @@ -274,8 +274,8 @@ }, { "type": "VariableDeclaration", - "start": 43, - "end": 57, + "start": 45, + "end": 59, "loc": { "start": { "line": 4, @@ -289,8 +289,8 @@ "declarations": [ { "type": "VariableDeclarator", - "start": 47, - "end": 56, + "start": 49, + "end": 58, "loc": { "start": { "line": 4, @@ -303,8 +303,8 @@ }, "id": { "type": "Identifier", - "start": 47, - "end": 56, + "start": 49, + "end": 58, "loc": { "start": { "line": 4, @@ -314,17 +314,17 @@ "line": 4, "column": 13 }, - "identifierName": "nul" + "identifierName": "ne" }, - "name": "nul", + "name": "ne", "typeAnnotation": { "type": "TSTypeAnnotation", - "start": 50, - "end": 56, + "start": 51, + "end": 58, "loc": { "start": { "line": 4, - "column": 7 + "column": 6 }, "end": { "line": 4, @@ -332,13 +332,13 @@ } }, "typeAnnotation": { - "type": "TSNullKeyword", - "start": 52, - "end": 56, + "type": "TSNeverKeyword", + "start": 53, + "end": 58, "loc": { "start": { "line": 4, - "column": 9 + "column": 8 }, "end": { "line": 4, @@ -355,7 +355,7 @@ }, { "type": "VariableDeclaration", - "start": 58, + "start": 60, "end": 74, "loc": { "start": { @@ -364,13 +364,13 @@ }, "end": { "line": 5, - "column": 16 + "column": 14 } }, "declarations": [ { "type": "VariableDeclarator", - "start": 62, + "start": 64, "end": 73, "loc": { "start": { @@ -379,12 +379,12 @@ }, "end": { "line": 5, - "column": 15 + "column": 13 } }, "id": { "type": "Identifier", - "start": 62, + "start": 64, "end": 73, "loc": { "start": { @@ -393,14 +393,14 @@ }, "end": { "line": 5, - "column": 15 + "column": 13 }, - "identifierName": "num" + "identifierName": "nul" }, - "name": "num", + "name": "nul", "typeAnnotation": { "type": "TSTypeAnnotation", - "start": 65, + "start": 67, "end": 73, "loc": { "start": { @@ -409,12 +409,12 @@ }, "end": { "line": 5, - "column": 15 + "column": 13 } }, "typeAnnotation": { - "type": "TSNumberKeyword", - "start": 67, + "type": "TSNullKeyword", + "start": 69, "end": 73, "loc": { "start": { @@ -423,7 +423,7 @@ }, "end": { "line": 5, - "column": 15 + "column": 13 } } } @@ -437,7 +437,7 @@ { "type": "VariableDeclaration", "start": 75, - "end": 89, + "end": 91, "loc": { "start": { "line": 6, @@ -445,14 +445,14 @@ }, "end": { "line": 6, - "column": 14 + "column": 16 } }, "declarations": [ { "type": "VariableDeclarator", "start": 79, - "end": 88, + "end": 90, "loc": { "start": { "line": 6, @@ -460,13 +460,13 @@ }, "end": { "line": 6, - "column": 13 + "column": 15 } }, "id": { "type": "Identifier", "start": 79, - "end": 88, + "end": 90, "loc": { "start": { "line": 6, @@ -474,37 +474,37 @@ }, "end": { "line": 6, - "column": 13 + "column": 15 }, - "identifierName": "o" + "identifierName": "num" }, - "name": "o", + "name": "num", "typeAnnotation": { "type": "TSTypeAnnotation", - "start": 80, - "end": 88, + "start": 82, + "end": 90, "loc": { "start": { "line": 6, - "column": 5 + "column": 7 }, "end": { "line": 6, - "column": 13 + "column": 15 } }, "typeAnnotation": { - "type": "TSObjectKeyword", - "start": 82, - "end": 88, + "type": "TSNumberKeyword", + "start": 84, + "end": 90, "loc": { "start": { "line": 6, - "column": 7 + "column": 9 }, "end": { "line": 6, - "column": 13 + "column": 15 } } } @@ -517,8 +517,8 @@ }, { "type": "VariableDeclaration", - "start": 90, - "end": 105, + "start": 92, + "end": 106, "loc": { "start": { "line": 7, @@ -526,14 +526,14 @@ }, "end": { "line": 7, - "column": 15 + "column": 14 } }, "declarations": [ { "type": "VariableDeclarator", - "start": 94, - "end": 104, + "start": 96, + "end": 105, "loc": { "start": { "line": 7, @@ -541,13 +541,13 @@ }, "end": { "line": 7, - "column": 14 + "column": 13 } }, "id": { "type": "Identifier", - "start": 94, - "end": 104, + "start": 96, + "end": 105, "loc": { "start": { "line": 7, @@ -555,37 +555,37 @@ }, "end": { "line": 7, - "column": 14 + "column": 13 }, - "identifierName": "st" + "identifierName": "o" }, - "name": "st", + "name": "o", "typeAnnotation": { "type": "TSTypeAnnotation", - "start": 96, - "end": 104, + "start": 97, + "end": 105, "loc": { "start": { "line": 7, - "column": 6 + "column": 5 }, "end": { "line": 7, - "column": 14 + "column": 13 } }, "typeAnnotation": { - "type": "TSStringKeyword", - "start": 98, - "end": 104, + "type": "TSObjectKeyword", + "start": 99, + "end": 105, "loc": { "start": { "line": 7, - "column": 8 + "column": 7 }, "end": { "line": 7, - "column": 14 + "column": 13 } } } @@ -598,8 +598,8 @@ }, { "type": "VariableDeclaration", - "start": 106, - "end": 121, + "start": 107, + "end": 122, "loc": { "start": { "line": 8, @@ -613,8 +613,8 @@ "declarations": [ { "type": "VariableDeclarator", - "start": 110, - "end": 120, + "start": 111, + "end": 121, "loc": { "start": { "line": 8, @@ -627,8 +627,8 @@ }, "id": { "type": "Identifier", - "start": 110, - "end": 120, + "start": 111, + "end": 121, "loc": { "start": { "line": 8, @@ -638,13 +638,13 @@ "line": 8, "column": 14 }, - "identifierName": "sy" + "identifierName": "st" }, - "name": "sy", + "name": "st", "typeAnnotation": { "type": "TSTypeAnnotation", - "start": 112, - "end": 120, + "start": 113, + "end": 121, "loc": { "start": { "line": 8, @@ -656,9 +656,9 @@ } }, "typeAnnotation": { - "type": "TSSymbolKeyword", - "start": 114, - "end": 120, + "type": "TSStringKeyword", + "start": 115, + "end": 121, "loc": { "start": { "line": 8, @@ -679,8 +679,8 @@ }, { "type": "VariableDeclaration", - "start": 122, - "end": 139, + "start": 123, + "end": 138, "loc": { "start": { "line": 9, @@ -688,14 +688,14 @@ }, "end": { "line": 9, - "column": 17 + "column": 15 } }, "declarations": [ { "type": "VariableDeclarator", - "start": 126, - "end": 138, + "start": 127, + "end": 137, "loc": { "start": { "line": 9, @@ -703,13 +703,13 @@ }, "end": { "line": 9, - "column": 16 + "column": 14 } }, "id": { "type": "Identifier", - "start": 126, - "end": 138, + "start": 127, + "end": 137, "loc": { "start": { "line": 9, @@ -717,37 +717,37 @@ }, "end": { "line": 9, - "column": 16 + "column": 14 }, - "identifierName": "u" + "identifierName": "sy" }, - "name": "u", + "name": "sy", "typeAnnotation": { "type": "TSTypeAnnotation", - "start": 127, - "end": 138, + "start": 129, + "end": 137, "loc": { "start": { "line": 9, - "column": 5 + "column": 6 }, "end": { "line": 9, - "column": 16 + "column": 14 } }, "typeAnnotation": { - "type": "TSUndefinedKeyword", - "start": 129, - "end": 138, + "type": "TSSymbolKeyword", + "start": 131, + "end": 137, "loc": { "start": { "line": 9, - "column": 7 + "column": 8 }, "end": { "line": 9, - "column": 16 + "column": 14 } } } @@ -760,8 +760,8 @@ }, { "type": "VariableDeclaration", - "start": 140, - "end": 152, + "start": 139, + "end": 156, "loc": { "start": { "line": 10, @@ -769,14 +769,14 @@ }, "end": { "line": 10, - "column": 12 + "column": 17 } }, "declarations": [ { "type": "VariableDeclarator", - "start": 144, - "end": 151, + "start": 143, + "end": 155, "loc": { "start": { "line": 10, @@ -784,13 +784,13 @@ }, "end": { "line": 10, - "column": 11 + "column": 16 } }, "id": { "type": "Identifier", - "start": 144, - "end": 151, + "start": 143, + "end": 155, "loc": { "start": { "line": 10, @@ -798,6 +798,87 @@ }, "end": { "line": 10, + "column": 16 + }, + "identifierName": "u" + }, + "name": "u", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "start": 144, + "end": 155, + "loc": { + "start": { + "line": 10, + "column": 5 + }, + "end": { + "line": 10, + "column": 16 + } + }, + "typeAnnotation": { + "type": "TSUndefinedKeyword", + "start": 146, + "end": 155, + "loc": { + "start": { + "line": 10, + "column": 7 + }, + "end": { + "line": 10, + "column": 16 + } + } + } + } + }, + "init": null + } + ], + "kind": "let" + }, + { + "type": "VariableDeclaration", + "start": 157, + "end": 169, + "loc": { + "start": { + "line": 11, + "column": 0 + }, + "end": { + "line": 11, + "column": 12 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 161, + "end": 168, + "loc": { + "start": { + "line": 11, + "column": 4 + }, + "end": { + "line": 11, + "column": 11 + } + }, + "id": { + "type": "Identifier", + "start": 161, + "end": 168, + "loc": { + "start": { + "line": 11, + "column": 4 + }, + "end": { + "line": 11, "column": 11 }, "identifierName": "v" @@ -805,29 +886,29 @@ "name": "v", "typeAnnotation": { "type": "TSTypeAnnotation", - "start": 145, - "end": 151, + "start": 162, + "end": 168, "loc": { "start": { - "line": 10, + "line": 11, "column": 5 }, "end": { - "line": 10, + "line": 11, "column": 11 } }, "typeAnnotation": { "type": "TSVoidKeyword", - "start": 147, - "end": 151, + "start": 164, + "end": 168, "loc": { "start": { - "line": 10, + "line": 11, "column": 7 }, "end": { - "line": 10, + "line": 11, "column": 11 } } diff --git a/packages/babel-parser/test/fixtures/typescript/types/object-shorthand/input.js b/packages/babel-parser/test/fixtures/typescript/types/object-shorthand/input.js new file mode 100644 index 000000000000..62012de4ebac --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/types/object-shorthand/input.js @@ -0,0 +1,5 @@ +const table = { + put(value: T) { + // actually put. + } +}; diff --git a/packages/babel-parser/test/fixtures/typescript/types/object-shorthand/output.json b/packages/babel-parser/test/fixtures/typescript/types/object-shorthand/output.json new file mode 100644 index 000000000000..875a3e53d002 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/types/object-shorthand/output.json @@ -0,0 +1,372 @@ +{ + "type": "File", + "start": 0, + "end": 87, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 5, + "column": 2 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 87, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 5, + "column": 2 + } + }, + "sourceType": "module", + "interpreter": null, + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 87, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 5, + "column": 2 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 6, + "end": 86, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 5, + "column": 1 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 11 + }, + "identifierName": "table" + }, + "name": "table" + }, + "init": { + "type": "ObjectExpression", + "start": 14, + "end": 86, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 5, + "column": 1 + } + }, + "properties": [ + { + "type": "ObjectMethod", + "start": 18, + "end": 84, + "loc": { + "start": { + "line": 2, + "column": 2 + }, + "end": { + "line": 4, + "column": 3 + } + }, + "method": true, + "key": { + "type": "Identifier", + "start": 18, + "end": 21, + "loc": { + "start": { + "line": 2, + "column": 2 + }, + "end": { + "line": 2, + "column": 5 + }, + "identifierName": "put" + }, + "name": "put" + }, + "computed": false, + "typeParameters": { + "type": "TSTypeParameterDeclaration", + "start": 21, + "end": 47, + "loc": { + "start": { + "line": 2, + "column": 5 + }, + "end": { + "line": 2, + "column": 31 + } + }, + "params": [ + { + "type": "TSTypeParameter", + "start": 22, + "end": 46, + "loc": { + "start": { + "line": 2, + "column": 6 + }, + "end": { + "line": 2, + "column": 30 + } + }, + "name": "T", + "constraint": { + "type": "TSTypeLiteral", + "start": 32, + "end": 46, + "loc": { + "start": { + "line": 2, + "column": 16 + }, + "end": { + "line": 2, + "column": 30 + } + }, + "members": [ + { + "type": "TSPropertySignature", + "start": 34, + "end": 44, + "loc": { + "start": { + "line": 2, + "column": 18 + }, + "end": { + "line": 2, + "column": 28 + } + }, + "key": { + "type": "Identifier", + "start": 34, + "end": 36, + "loc": { + "start": { + "line": 2, + "column": 18 + }, + "end": { + "line": 2, + "column": 20 + }, + "identifierName": "id" + }, + "name": "id" + }, + "computed": false, + "typeAnnotation": { + "type": "TSTypeAnnotation", + "start": 36, + "end": 44, + "loc": { + "start": { + "line": 2, + "column": 20 + }, + "end": { + "line": 2, + "column": 28 + } + }, + "typeAnnotation": { + "type": "TSStringKeyword", + "start": 38, + "end": 44, + "loc": { + "start": { + "line": 2, + "column": 22 + }, + "end": { + "line": 2, + "column": 28 + } + } + } + } + } + ] + } + } + ] + }, + "kind": "method", + "id": null, + "generator": false, + "async": false, + "params": [ + { + "type": "Identifier", + "start": 48, + "end": 56, + "loc": { + "start": { + "line": 2, + "column": 32 + }, + "end": { + "line": 2, + "column": 40 + }, + "identifierName": "value" + }, + "name": "value", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "start": 53, + "end": 56, + "loc": { + "start": { + "line": 2, + "column": 37 + }, + "end": { + "line": 2, + "column": 40 + } + }, + "typeAnnotation": { + "type": "TSTypeReference", + "start": 55, + "end": 56, + "loc": { + "start": { + "line": 2, + "column": 39 + }, + "end": { + "line": 2, + "column": 40 + } + }, + "typeName": { + "type": "Identifier", + "start": 55, + "end": 56, + "loc": { + "start": { + "line": 2, + "column": 39 + }, + "end": { + "line": 2, + "column": 40 + }, + "identifierName": "T" + }, + "name": "T" + } + } + } + } + ], + "body": { + "type": "BlockStatement", + "start": 58, + "end": 84, + "loc": { + "start": { + "line": 2, + "column": 42 + }, + "end": { + "line": 4, + "column": 3 + } + }, + "body": [], + "directives": [], + "innerComments": [ + { + "type": "CommentLine", + "value": " actually put.", + "start": 64, + "end": 80, + "loc": { + "start": { + "line": 3, + "column": 4 + }, + "end": { + "line": 3, + "column": 20 + } + } + } + ] + } + } + ] + } + } + ], + "kind": "const" + } + ], + "directives": [] + }, + "comments": [ + { + "type": "CommentLine", + "value": " actually put.", + "start": 64, + "end": 80, + "loc": { + "start": { + "line": 3, + "column": 4 + }, + "end": { + "line": 3, + "column": 20 + } + } + } + ] +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/typescript/types/tuple-empty/input.js b/packages/babel-parser/test/fixtures/typescript/types/tuple-empty/input.js new file mode 100644 index 000000000000..f7cd7b5a0e25 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/types/tuple-empty/input.js @@ -0,0 +1 @@ +let x: []; diff --git a/packages/babel-parser/test/fixtures/typescript/types/tuple-empty/output.json b/packages/babel-parser/test/fixtures/typescript/types/tuple-empty/output.json new file mode 100644 index 000000000000..667ffcb301f5 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/types/tuple-empty/output.json @@ -0,0 +1,117 @@ +{ + "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": "module", + "interpreter": null, + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 9 + }, + "identifierName": "x" + }, + "name": "x", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "start": 5, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "typeAnnotation": { + "type": "TSTupleType", + "start": 7, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "elementTypes": [] + } + } + }, + "init": null + } + ], + "kind": "let" + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/typescript/types/tuple-optional/input.js b/packages/babel-parser/test/fixtures/typescript/types/tuple-optional/input.js new file mode 100644 index 000000000000..3b8d21ba958c --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/types/tuple-optional/input.js @@ -0,0 +1 @@ +let x: [string, number?, (string | number)?] diff --git a/packages/babel-parser/test/fixtures/typescript/types/tuple-optional/output.json b/packages/babel-parser/test/fixtures/typescript/types/tuple-optional/output.json new file mode 100644 index 000000000000..90aaa9bc8aac --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/types/tuple-optional/output.json @@ -0,0 +1,240 @@ +{ + "type": "File", + "start": 0, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "sourceType": "module", + "interpreter": null, + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 44 + }, + "identifierName": "x" + }, + "name": "x", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "start": 5, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "typeAnnotation": { + "type": "TSTupleType", + "start": 7, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "elementTypes": [ + { + "type": "TSStringKeyword", + "start": 8, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 14 + } + } + }, + { + "type": "TSOptionalType", + "start": 16, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "typeAnnotation": { + "type": "TSNumberKeyword", + "start": 16, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 22 + } + } + } + }, + { + "type": "TSOptionalType", + "start": 25, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "typeAnnotation": { + "type": "TSParenthesizedType", + "start": 25, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "typeAnnotation": { + "type": "TSUnionType", + "start": 26, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 26 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "types": [ + { + "type": "TSStringKeyword", + "start": 26, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 26 + }, + "end": { + "line": 1, + "column": 32 + } + } + }, + { + "type": "TSNumberKeyword", + "start": 35, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 35 + }, + "end": { + "line": 1, + "column": 41 + } + } + } + ] + } + } + } + ] + } + } + }, + "init": null + } + ], + "kind": "let" + } + ], + "directives": [] + } +} diff --git a/packages/babel-parser/test/fixtures/typescript/types/tuple-rest/input.js b/packages/babel-parser/test/fixtures/typescript/types/tuple-rest/input.js new file mode 100644 index 000000000000..d7719b2cb4e6 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/types/tuple-rest/input.js @@ -0,0 +1 @@ +let x: [string, ...number[]] diff --git a/packages/babel-parser/test/fixtures/typescript/types/tuple-rest/output.json b/packages/babel-parser/test/fixtures/typescript/types/tuple-rest/output.json new file mode 100644 index 000000000000..fd5b5999c51a --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/types/tuple-rest/output.json @@ -0,0 +1,178 @@ +{ + "type": "File", + "start": 0, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "sourceType": "module", + "interpreter": null, + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 28 + }, + "identifierName": "x" + }, + "name": "x", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "start": 5, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "typeAnnotation": { + "type": "TSTupleType", + "start": 7, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "elementTypes": [ + { + "type": "TSStringKeyword", + "start": 8, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 14 + } + } + }, + { + "type": "TSRestType", + "start": 16, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "typeAnnotation": { + "type": "TSArrayType", + "start": 19, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "elementType": { + "type": "TSNumberKeyword", + "start": 19, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 25 + } + } + } + } + } + ] + } + } + }, + "init": null + } + ], + "kind": "let" + } + ], + "directives": [] + } +} diff --git a/packages/babel-parser/test/fixtures/typescript/types/tuple/input.js b/packages/babel-parser/test/fixtures/typescript/types/tuple/input.js new file mode 100644 index 000000000000..53c8e72ec952 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/types/tuple/input.js @@ -0,0 +1 @@ +let x: [number, number, number]; diff --git a/packages/babel-parser/test/fixtures/typescript/types/tuple/output.json b/packages/babel-parser/test/fixtures/typescript/types/tuple/output.json new file mode 100644 index 000000000000..5b6c0e2cffd7 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/types/tuple/output.json @@ -0,0 +1,163 @@ +{ + "type": "File", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "sourceType": "module", + "interpreter": null, + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 31 + }, + "identifierName": "x" + }, + "name": "x", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "start": 5, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "typeAnnotation": { + "type": "TSTupleType", + "start": 7, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "elementTypes": [ + { + "type": "TSNumberKeyword", + "start": 8, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 14 + } + } + }, + { + "type": "TSNumberKeyword", + "start": 16, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 22 + } + } + }, + { + "type": "TSNumberKeyword", + "start": 24, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 30 + } + } + } + ] + } + } + }, + "init": null + } + ], + "kind": "let" + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/typescript/variable-declarator/definite-assignment-not-allowed/options.json b/packages/babel-parser/test/fixtures/typescript/variable-declarator/definite-assignment-not-allowed/options.json index 8cb567ee7788..57893e4eee56 100644 --- a/packages/babel-parser/test/fixtures/typescript/variable-declarator/definite-assignment-not-allowed/options.json +++ b/packages/babel-parser/test/fixtures/typescript/variable-declarator/definite-assignment-not-allowed/options.json @@ -1,3 +1,3 @@ { "throws": "Complex binding patterns require an initialization value (1:6)" -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/plugin-options.js b/packages/babel-parser/test/plugin-options.js index a2f29026b68c..44e6cb26aef3 100644 --- a/packages/babel-parser/test/plugin-options.js +++ b/packages/babel-parser/test/plugin-options.js @@ -9,19 +9,56 @@ describe("plugin options", function() { // NOTE: This test is not specific about decorators, it can be applied // to any plugin with options. - const NAME = "decorators"; - const OPT_1 = [NAME, { decoratorsBeforeExport: true }]; - const OPT_2 = [NAME, { decoratorsBeforeExport: false }]; - const SYNTAX_1 = "@dec export class C {}"; - const SYNTAX_2 = "export @dec class C {}"; - const SYNTAX_DEFAULT = "export @dec class C {}"; - it("when they aren't specified", function() { - expect(getParser(SYNTAX_DEFAULT, [NAME, OPT_1])).not.toThrow(); - expect(getParser(SYNTAX_DEFAULT, [NAME, OPT_2])).not.toThrow(); + const WITHOUT_FLAG = "flow"; + const WITH_FLAG = ["flow", { all: true }]; + + const CODE = "new Foo(y)"; + + const AST_WITHOUT_FLAG = { + type: "BinaryExpression", + operator: ">", + left: { + type: "BinaryExpression", + operator: "<", + left: { type: "NewExpression" }, + right: { type: "Identifier" }, + }, + right: { type: "Identifier", extra: { parenthesized: true } }, + }; + + const AST_WITH_FLAG = { + type: "NewExpression", + callee: { type: "Identifier" }, + arguments: [{ type: "Identifier" }], + typeArguments: { + type: "TypeParameterInstantiation", + params: [ + { type: "GenericTypeAnnotation", id: { type: "Identifier" } }, + ], + }, + }; + + expect( + getParser(CODE, [WITHOUT_FLAG, WITH_FLAG])().program.body[0].expression, + ).toMatchObject(AST_WITHOUT_FLAG); + + expect( + getParser(CODE, [WITHOUT_FLAG])().program.body[0].expression, + ).toMatchObject(AST_WITHOUT_FLAG); + + expect( + getParser(CODE, [WITH_FLAG])().program.body[0].expression, + ).toMatchObject(AST_WITH_FLAG); }); it("when they are specified", function() { + const NAME = "decorators"; + const OPT_1 = [NAME, { decoratorsBeforeExport: true }]; + const OPT_2 = [NAME, { decoratorsBeforeExport: false }]; + const SYNTAX_1 = "@dec export class C {}"; + const SYNTAX_2 = "export @dec class C {}"; + expect(getParser(SYNTAX_1, [OPT_1, OPT_2])).not.toThrow(); expect(getParser(SYNTAX_2, [OPT_2, OPT_1])).not.toThrow(); expect(getParser(SYNTAX_1, [OPT_2, OPT_1])).toThrow(); diff --git a/packages/babel-parser/typings/babel-parser.d.ts b/packages/babel-parser/typings/babel-parser.d.ts new file mode 100644 index 000000000000..752fc365f010 --- /dev/null +++ b/packages/babel-parser/typings/babel-parser.d.ts @@ -0,0 +1,109 @@ +// Type definitions for @babel/parser +// Project: https://github.com/babel/babel/tree/master/packages/babel-parser +// Definitions by: Troy Gerwien +// Marvin Hagemeister +// Avi Vahl +// TypeScript Version: 2.9 + +/** + * Parse the provided code as an entire ECMAScript program. + */ +export function parse(input: string, options?: ParserOptions): import('@babel/types').File; + +/** + * Parse the provided code as a single expression. + */ +export function parseExpression(input: string, options?: ParserOptions): import('@babel/types').Expression; + +export interface ParserOptions { + /** + * By default, import and export declarations can only appear at a program's top level. + * Setting this option to true allows them anywhere where a statement is allowed. + */ + allowImportExportEverywhere?: boolean; + + /** + * By default, await use is not allowed outside of an async function. + * Set this to true to accept such code. + */ + allowAwaitOutsideFunction?: boolean; + + /** + * By default, a return statement at the top level raises an error. + * Set this to true to accept such code. + */ + allowReturnOutsideFunction?: boolean; + + allowSuperOutsideMethod?: boolean; + + /** + * Indicate the mode the code should be parsed in. + * Can be one of "script", "module", or "unambiguous". Defaults to "script". + * "unambiguous" will make @babel/parser attempt to guess, based on the presence + * of ES6 import or export statements. + * Files with ES6 imports and exports are considered "module" and are otherwise "script". + */ + sourceType?: 'script' | 'module' | 'unambiguous'; + + /** + * Correlate output AST nodes with their source filename. + * Useful when generating code and source maps from the ASTs of multiple input files. + */ + sourceFilename?: string; + + /** + * By default, the first line of code parsed is treated as line 1. + * You can provide a line number to alternatively start with. + * Useful for integration with other source tools. + */ + startLine?: number; + + /** + * Array containing the plugins that you want to enable. + */ + plugins?: ParserPlugin[]; + + /** + * Should the parser work in strict mode. + * Defaults to true if sourceType === 'module'. Otherwise, false. + */ + strictMode?: boolean; + + /** + * Adds a ranges property to each node: [node.start, node.end] + */ + ranges?: boolean; + + /** + * Adds all parsed tokens to a tokens property on the File node. + */ + tokens?: boolean; +} + +export type ParserPlugin = + 'estree' | + 'jsx' | + 'flow' | + 'flowComments' | + 'typescript' | + 'doExpressions' | + 'objectRestSpread' | + 'decorators' | + 'decorators-legacy' | + 'classProperties' | + 'classPrivateProperties' | + 'classPrivateMethods' | + 'exportDefaultFrom' | + 'exportNamespaceFrom' | + 'asyncGenerators' | + 'functionBind' | + 'functionSent' | + 'dynamicImport' | + 'numericSeparator' | + 'optionalChaining' | + 'importMeta' | + 'bigInt' | + 'optionalCatchBinding' | + 'throwExpressions' | + 'pipelineOperator' | + 'nullishCoalescingOperator'; diff --git a/packages/babel-plugin-external-helpers/package.json b/packages/babel-plugin-external-helpers/package.json index bef5a893dcbe..ab266e231cc0 100644 --- a/packages/babel-plugin-external-helpers/package.json +++ b/packages/babel-plugin-external-helpers/package.json @@ -1,21 +1,24 @@ { "name": "@babel/plugin-external-helpers", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "This plugin contains helper functions that’ll be placed at the top of the generated code", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-external-helpers", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-external-helpers/src/index.js b/packages/babel-plugin-external-helpers/src/index.js index 219da24f9b35..089986cd248e 100644 --- a/packages/babel-plugin-external-helpers/src/index.js +++ b/packages/babel-plugin-external-helpers/src/index.js @@ -1,12 +1,46 @@ import { declare } from "@babel/helper-plugin-utils"; import { types as t } from "@babel/core"; -export default declare(api => { +export default declare((api, options) => { api.assertVersion(7); + const { helperVersion = "7.0.0-beta.0", whitelist = false } = options; + + if ( + whitelist !== false && + (!Array.isArray(whitelist) || whitelist.some(w => typeof w !== "string")) + ) { + throw new Error( + ".whitelist must be undefined, false, or an array of strings", + ); + } + + const helperWhitelist = whitelist ? new Set(whitelist) : null; + return { pre(file) { - file.set("helpersNamespace", t.identifier("babelHelpers")); + file.set("helperGenerator", name => { + // If the helper didn't exist yet at the version given, we bail + // out and let Babel either insert it directly, or throw an error + // so that plugins can handle that case properly. + if ( + file.availableHelper && + !file.availableHelper(name, helperVersion) + ) { + return; + } + + // babelCore.buildExternalHelpers() allows a whitelist of helpers that + // will be inserted into the external helpers list. That same whitelist + // should be passed into the plugin here in that case, so that we can + // avoid referencing 'babelHelpers.XX' when the helper does not exist. + if (helperWhitelist && !helperWhitelist.has(name)) return; + + return t.memberExpression( + t.identifier("babelHelpers"), + t.identifier(name), + ); + }); }, }; }); diff --git a/packages/babel-plugin-external-helpers/test/fixtures/opts/whitelist/input.js b/packages/babel-plugin-external-helpers/test/fixtures/opts/whitelist/input.js new file mode 100644 index 000000000000..e7d671375fe4 --- /dev/null +++ b/packages/babel-plugin-external-helpers/test/fixtures/opts/whitelist/input.js @@ -0,0 +1,3 @@ +class Foo { + method(){} +} diff --git a/packages/babel-plugin-external-helpers/test/fixtures/opts/whitelist/options.json b/packages/babel-plugin-external-helpers/test/fixtures/opts/whitelist/options.json new file mode 100644 index 000000000000..9b2aa21198f1 --- /dev/null +++ b/packages/babel-plugin-external-helpers/test/fixtures/opts/whitelist/options.json @@ -0,0 +1,11 @@ +{ + "plugins": [ + [ + "external-helpers", + { + "whitelist": ["createClass"] + } + ], + "transform-classes" + ] +} diff --git a/packages/babel-plugin-external-helpers/test/fixtures/opts/whitelist/output.js b/packages/babel-plugin-external-helpers/test/fixtures/opts/whitelist/output.js new file mode 100644 index 000000000000..34a0d30fb1c0 --- /dev/null +++ b/packages/babel-plugin-external-helpers/test/fixtures/opts/whitelist/output.js @@ -0,0 +1,17 @@ +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +let Foo = +/*#__PURE__*/ +function () { + "use strict"; + + function Foo() { + _classCallCheck(this, Foo); + } + + babelHelpers.createClass(Foo, [{ + key: "method", + value: function method() {} + }]); + return Foo; +}(); diff --git a/packages/babel-plugin-external-helpers/test/index.js b/packages/babel-plugin-external-helpers/test/index.js new file mode 100644 index 000000000000..1b534b8fc64a --- /dev/null +++ b/packages/babel-plugin-external-helpers/test/index.js @@ -0,0 +1,3 @@ +import runner from "@babel/helper-plugin-test-runner"; + +runner(__dirname); diff --git a/packages/babel-plugin-proposal-async-generator-functions/package.json b/packages/babel-plugin-proposal-async-generator-functions/package.json index 4dbc2746d25b..a83971f738cd 100644 --- a/packages/babel-plugin-proposal-async-generator-functions/package.json +++ b/packages/babel-plugin-proposal-async-generator-functions/package.json @@ -1,23 +1,26 @@ { "name": "@babel/plugin-proposal-async-generator-functions", - "version": "7.0.0-beta.52", + "version": "7.1.0", "description": "Turn async generator functions into ES2015 generators", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-proposal-async-generator-functions", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/helper-remap-async-to-generator": "7.0.0-beta.52", - "@babel/plugin-syntax-async-generators": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.1.0", + "@babel/plugin-syntax-async-generators": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-proposal-async-generator-functions/test/fixtures/for-await/async-function-no-transform/options.json b/packages/babel-plugin-proposal-async-generator-functions/test/fixtures/for-await/async-function-no-transform/options.json index 5adee4863d3d..7812af170d9a 100644 --- a/packages/babel-plugin-proposal-async-generator-functions/test/fixtures/for-await/async-function-no-transform/options.json +++ b/packages/babel-plugin-proposal-async-generator-functions/test/fixtures/for-await/async-function-no-transform/options.json @@ -1,6 +1,3 @@ { - "plugins": [ - "external-helpers", - "proposal-async-generator-functions" - ] + "plugins": ["external-helpers", "proposal-async-generator-functions"] } diff --git a/packages/babel-plugin-proposal-class-properties/package.json b/packages/babel-plugin-proposal-class-properties/package.json index 42734fef06d6..02d1fe8f257e 100644 --- a/packages/babel-plugin-proposal-class-properties/package.json +++ b/packages/babel-plugin-proposal-class-properties/package.json @@ -1,26 +1,29 @@ { "name": "@babel/plugin-proposal-class-properties", - "version": "7.0.0-beta.52", + "version": "7.1.0", "description": "This plugin transforms static class properties as well as properties declared with the property initializer syntax", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-proposal-class-properties", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-function-name": "7.0.0-beta.52", - "@babel/helper-member-expression-to-functions": "7.0.0-beta.52", - "@babel/helper-optimise-call-expression": "7.0.0-beta.52", - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/helper-replace-supers": "7.0.0-beta.52", - "@babel/plugin-syntax-class-properties": "7.0.0-beta.52" + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-member-expression-to-functions": "^7.0.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.1.0", + "@babel/plugin-syntax-class-properties": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-proposal-class-properties/src/index.js b/packages/babel-plugin-proposal-class-properties/src/index.js index d3c833c5e580..70a21da85416 100644 --- a/packages/babel-plugin-proposal-class-properties/src/index.js +++ b/packages/babel-plugin-proposal-class-properties/src/index.js @@ -39,7 +39,10 @@ export default declare((api, options) => { const classFieldDefinitionEvaluationTDZVisitor = traverse.visitors.merge([ { ReferencedIdentifier(path) { - if (this.classRef === path.scope.getBinding(path.node.name)) { + if ( + this.classBinding && + this.classBinding === path.scope.getBinding(path.node.name) + ) { const classNameTDZError = this.file.addHelper("classNameTDZError"); const throwNode = t.callExpression(classNameTDZError, [ t.stringLiteral(path.node.name), @@ -157,6 +160,33 @@ export default declare((api, options) => { }, }; + const staticPrivatePropertyHandlerSpec = { + ...privateNameHandlerSpec, + + get(member) { + const { file, privateId, classRef } = this; + + return t.callExpression( + file.addHelper("classStaticPrivateFieldSpecGet"), + [this.receiver(member), t.cloneNode(classRef), t.cloneNode(privateId)], + ); + }, + + set(member, value) { + const { file, privateId, classRef } = this; + + return t.callExpression( + file.addHelper("classStaticPrivateFieldSpecSet"), + [ + this.receiver(member), + t.cloneNode(classRef), + t.cloneNode(privateId), + value, + ], + ); + }, + }; + function buildClassPropertySpec(ref, path, state) { const { scope } = path; const { key, value, computed } = path.node; @@ -201,14 +231,21 @@ export default declare((api, options) => { // Must be late evaluated in case it references another private field. return () => - template.statement`MAP.set(REF, VALUE);`({ + template.statement` + MAP.set(REF, { + // configurable is always false for private elements + // enumerable is always false for private elements + writable: true, + value: VALUE + }); + `({ MAP: map, REF: ref, VALUE: path.node.value || scope.buildUndefinedNode(), }); } - function buildClassPrivatePropertyLoose(ref, path, initNodes, state) { + function buildClassPrivatePropertyLooseHelper(ref, path, state) { const { parentPath, scope } = path; const { name } = path.node.key.id; @@ -221,28 +258,69 @@ export default declare((api, options) => { ...privateNameHandlerLoose, }); - initNodes.push( - template.statement`var PROP = HELPER(NAME);`({ + return { + keyDecl: template.statement`var PROP = HELPER(NAME);`({ PROP: prop, HELPER: state.addHelper("classPrivateFieldLooseKey"), NAME: t.stringLiteral(name), }), + // Must be late evaluated in case it references another private field. + buildInit: () => + template.statement.ast` + Object.defineProperty(${ref}, ${prop}, { + // configurable is false by default + // enumerable is false by default + writable: true, + value: ${path.node.value || scope.buildUndefinedNode()} + }); + `, + }; + } + + function buildClassInstancePrivatePropertyLoose(ref, path, initNodes, state) { + const { keyDecl, buildInit } = buildClassPrivatePropertyLooseHelper( + ref, + path, + state, ); - // Must be late evaluated in case it references another private field. - return () => - template.statement` - Object.defineProperty(REF, PROP, { - // configurable is false by default - // enumerable is false by default - writable: true, - value: VALUE - }); - `({ - REF: ref, - PROP: prop, - VALUE: path.node.value || scope.buildUndefinedNode(), - }); + initNodes.push(keyDecl); + return buildInit; + } + + function buildClassStaticPrivatePropertyLoose(ref, path, state) { + const { keyDecl, buildInit } = buildClassPrivatePropertyLooseHelper( + ref, + path, + state, + ); + + return [keyDecl, buildInit()]; + } + + function buildClassStaticPrivatePropertySpec(ref, path, state) { + const { parentPath, scope } = path; + const { name } = path.node.key.id; + + const privateId = scope.generateUidIdentifier(name); + memberExpressionToFunctions(parentPath, privateNameVisitor, { + name, + privateId, + classRef: ref, + file: state, + ...staticPrivatePropertyHandlerSpec, + }); + + return [ + template.statement.ast` + var ${privateId} = { + // configurable is always false for private elements + // enumerable is always false for private elements + writable: true, + value: ${path.node.value || scope.buildUndefinedNode()} + } + `, + ]; } const buildClassProperty = loose @@ -250,9 +328,13 @@ export default declare((api, options) => { : buildClassPropertySpec; const buildClassPrivateProperty = loose - ? buildClassPrivatePropertyLoose + ? buildClassInstancePrivatePropertyLoose : buildClassPrivatePropertySpec; + const buildClassStaticPrivateProperty = loose + ? buildClassStaticPrivatePropertyLoose + : buildClassStaticPrivatePropertySpec; + return { inherits: syntaxClassProperties, @@ -278,17 +360,11 @@ export default declare((api, options) => { if (path.isClassPrivateProperty()) { const { - static: isStatic, key: { id: { name }, }, } = path.node; - if (isStatic) { - throw path.buildCodeFrameError( - "Static class fields are not spec'ed yet.", - ); - } if (privateNames.has(name)) { throw path.buildCodeFrameError("Duplicate private field"); } @@ -305,7 +381,6 @@ export default declare((api, options) => { if (!props.length) return; let ref; - if (path.isClassExpression() || !path.node.id) { nameFunction(path); ref = path.scope.generateUidIdentifier("class"); @@ -320,7 +395,8 @@ export default declare((api, options) => { for (const computedPath of computedPaths) { computedPath.traverse(classFieldDefinitionEvaluationTDZVisitor, { - classRef: path.scope.getBinding(ref.name), + classBinding: + path.node.id && path.scope.getBinding(path.node.id.name), file: this.file, }); @@ -344,7 +420,7 @@ export default declare((api, options) => { const privateMaps = []; const privateMapInits = []; for (const prop of props) { - if (prop.isPrivate()) { + if (prop.isPrivate() && !prop.node.static) { const inits = []; privateMapInits.push(inits); @@ -353,11 +429,22 @@ export default declare((api, options) => { ); } } - let p = 0; for (const prop of props) { if (prop.node.static) { - staticNodes.push(buildClassProperty(t.cloneNode(ref), prop, state)); + if (prop.isPrivate()) { + staticNodes.push( + ...buildClassStaticPrivateProperty( + t.cloneNode(ref), + prop, + state, + ), + ); + } else { + staticNodes.push( + buildClassProperty(t.cloneNode(ref), prop, state), + ); + } } else if (prop.isPrivate()) { instanceBody.push(privateMaps[p]()); staticNodes.push(...privateMapInits[p]); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/compile-to-class/constructor-collision-ignores-types-loose/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/compile-to-class/constructor-collision-ignores-types-loose/options.json index 9b2fcd6e2187..8dcbd709288b 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/compile-to-class/constructor-collision-ignores-types-loose/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/compile-to-class/constructor-collision-ignores-types-loose/options.json @@ -1,3 +1,6 @@ { - "plugins": ["transform-typescript", ["proposal-class-properties", {"loose": true }]] + "plugins": [ + "transform-typescript", + ["proposal-class-properties", { "loose": true }] + ] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/nested-class/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/nested-class/options.json index e0264b98ba8b..0326c24fae36 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/nested-class/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/nested-class/options.json @@ -1,3 +1,7 @@ { - "plugins": ["external-helpers", "proposal-class-properties", "transform-classes"] + "plugins": [ + "external-helpers", + "proposal-class-properties", + "transform-classes" + ] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/foobar/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/foobar/options.json index 7968f50cf1c5..002b4aa0d58e 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/foobar/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/foobar/options.json @@ -1,6 +1,3 @@ { - "presets": [ - ["stage-0", { "decoratorsLegacy": true, "pipelineProposal": "minimal" }], - "env" - ] + "presets": ["env"] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/native-classes/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/native-classes/options.json index 03872554afb3..a9b6f71fec95 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/native-classes/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/native-classes/options.json @@ -1,3 +1,13 @@ { - "throws": "Static class fields are not spec'ed yet." + "plugins": [ + [ + "external-helpers", + { + "helperVersion": "7.0.2" + } + ], + ["proposal-class-properties", { "loose": true }], + "transform-block-scoping", + "syntax-class-properties" + ] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/native-classes/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/native-classes/output.js new file mode 100644 index 000000000000..33bfbfeff1b6 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/native-classes/output.js @@ -0,0 +1,32 @@ +class Foo { + constructor() { + Object.defineProperty(this, _bar, { + writable: true, + value: "bar" + }); + } + + static test() { + return babelHelpers.classPrivateFieldLooseBase(Foo, _foo)[_foo]; + } + + test() { + return babelHelpers.classPrivateFieldLooseBase(this, _bar)[_bar]; + } + +} + +var _foo = babelHelpers.classPrivateFieldLooseKey("foo"); + +Object.defineProperty(Foo, _foo, { + writable: true, + value: "foo" +}); + +var _bar = babelHelpers.classPrivateFieldLooseKey("bar"); + +var f = new Foo(); +expect("foo" in Foo).toBe(false); +expect("bar" in f).toBe(false); +expect(Foo.test()).toBe("foo"); +expect(f.test()).toBe("bar"); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/non-block-arrow-func/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/non-block-arrow-func/options.json index 03872554afb3..a9b6f71fec95 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/non-block-arrow-func/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/non-block-arrow-func/options.json @@ -1,3 +1,13 @@ { - "throws": "Static class fields are not spec'ed yet." + "plugins": [ + [ + "external-helpers", + { + "helperVersion": "7.0.2" + } + ], + ["proposal-class-properties", { "loose": true }], + "transform-block-scoping", + "syntax-class-properties" + ] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/non-block-arrow-func/output.mjs b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/non-block-arrow-func/output.mjs new file mode 100644 index 000000000000..ba8c7b5fab6d --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/non-block-arrow-func/output.mjs @@ -0,0 +1,16 @@ +export default (param => { + var _class, _temp, _props; + + return _temp = _class = class App { + getParam() { + return param; + } + + }, _props = babelHelpers.classPrivateFieldLooseKey("props"), Object.defineProperty(_class, _props, { + writable: true, + value: { + prop1: 'prop1', + prop2: 'prop2' + } + }), _temp; +}); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/options.json index 38f1a44c5522..5e00622446a2 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/options.json @@ -1,3 +1,14 @@ { - "plugins": ["external-helpers",["proposal-class-properties", { "loose": true }], "transform-classes", "transform-block-scoping", "syntax-class-properties"] + "plugins": [ + [ + "external-helpers", + { + "helperVersion": "7.0.2" + } + ], + ["proposal-class-properties", { "loose": true }], + "transform-classes", + "transform-block-scoping", + "syntax-class-properties" + ] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/reevaluated/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/reevaluated/options.json index 03872554afb3..a9b6f71fec95 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/reevaluated/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/reevaluated/options.json @@ -1,3 +1,13 @@ { - "throws": "Static class fields are not spec'ed yet." + "plugins": [ + [ + "external-helpers", + { + "helperVersion": "7.0.2" + } + ], + ["proposal-class-properties", { "loose": true }], + "transform-block-scoping", + "syntax-class-properties" + ] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/reevaluated/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/reevaluated/output.js new file mode 100644 index 000000000000..2324c4ee3e2d --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/reevaluated/output.js @@ -0,0 +1,49 @@ +function classFactory() { + var _class, _temp, _foo, _bar; + + return _temp = _class = class Foo { + constructor() { + Object.defineProperty(this, _foo, { + writable: true, + value: "foo" + }); + } + + instance() { + return babelHelpers.classPrivateFieldLooseBase(this, _foo)[_foo]; + } + + static() { + return babelHelpers.classPrivateFieldLooseBase(Foo, _bar)[_bar]; + } + + static instance(inst) { + return babelHelpers.classPrivateFieldLooseBase(inst, _foo)[_foo]; + } + + static static() { + return babelHelpers.classPrivateFieldLooseBase(Foo, _bar)[_bar]; + } + + }, _foo = babelHelpers.classPrivateFieldLooseKey("foo"), _bar = babelHelpers.classPrivateFieldLooseKey("bar"), Object.defineProperty(_class, _bar, { + writable: true, + value: "bar" + }), _temp; +} + +var Foo1 = classFactory(); +var Foo2 = classFactory(); +var f1 = new Foo1(); +var f2 = new Foo2(); +expect(f1.instance()).toBe("foo"); +expect(f1.static()).toBe("bar"); +expect(f2.instance()).toBe("foo"); +expect(f2.static()).toBe("bar"); +expect(Foo1.instance(f1)).toBe("foo"); +expect(Foo1.static()).toBe("bar"); +expect(Foo2.instance(f2)).toBe("foo"); +expect(Foo2.static()).toBe("bar"); +assert.throws(() => f1.instance.call(f2)); +assert.throws(() => f2.instance.call(f1)); +assert.throws(() => Foo1.instance(f2)); +assert.throws(() => Foo2.instance(f1)); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-call/exec.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-call/exec.js new file mode 100644 index 000000000000..a35aa6ade8e3 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-call/exec.js @@ -0,0 +1,13 @@ +class Foo { + static #foo = function(x) { + return x; + } + + test(x) { + return Foo.#foo(x); + } +} + +const f = new Foo; +const test = f.test(); +expect(f.test("bar")).toBe("bar"); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-call/input.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-call/input.js new file mode 100644 index 000000000000..9c6e3a2872a7 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-call/input.js @@ -0,0 +1,10 @@ +class Foo { + static #foo = function(x) { + return x; + } + + test(x) { + return Foo.#foo(x); + } +} + diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-call/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-call/output.js new file mode 100644 index 000000000000..e130e89295ce --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-call/output.js @@ -0,0 +1,26 @@ +var Foo = +/*#__PURE__*/ +function () { + "use strict"; + + function Foo() { + babelHelpers.classCallCheck(this, Foo); + } + + babelHelpers.createClass(Foo, [{ + key: "test", + value: function test(x) { + return babelHelpers.classPrivateFieldLooseBase(Foo, _foo)[_foo](x); + } + }]); + return Foo; +}(); + +var _foo = babelHelpers.classPrivateFieldLooseKey("foo"); + +Object.defineProperty(Foo, _foo, { + writable: true, + value: function (x) { + return x; + } +}); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-export/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-export/options.json index 03872554afb3..a9b6f71fec95 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-export/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-export/options.json @@ -1,3 +1,13 @@ { - "throws": "Static class fields are not spec'ed yet." + "plugins": [ + [ + "external-helpers", + { + "helperVersion": "7.0.2" + } + ], + ["proposal-class-properties", { "loose": true }], + "transform-block-scoping", + "syntax-class-properties" + ] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-export/output.mjs b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-export/output.mjs new file mode 100644 index 000000000000..53baaa40d136 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-export/output.mjs @@ -0,0 +1,16 @@ +export class MyClass {} + +var _property = babelHelpers.classPrivateFieldLooseKey("property"); + +Object.defineProperty(MyClass, _property, { + writable: true, + value: value +}); +export default class MyClass2 {} + +var _property2 = babelHelpers.classPrivateFieldLooseKey("property"); + +Object.defineProperty(MyClass2, _property2, { + writable: true, + value: value +}); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-infer-name/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-infer-name/options.json index 03872554afb3..a9b6f71fec95 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-infer-name/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-infer-name/options.json @@ -1,3 +1,13 @@ { - "throws": "Static class fields are not spec'ed yet." + "plugins": [ + [ + "external-helpers", + { + "helperVersion": "7.0.2" + } + ], + ["proposal-class-properties", { "loose": true }], + "transform-block-scoping", + "syntax-class-properties" + ] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-infer-name/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-infer-name/output.js new file mode 100644 index 000000000000..1728effa5292 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-infer-name/output.js @@ -0,0 +1,6 @@ +var _class, _temp, _num; + +var Foo = (_temp = _class = class Foo {}, _num = babelHelpers.classPrivateFieldLooseKey("num"), Object.defineProperty(_class, _num, { + writable: true, + value: 0 +}), _temp); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-inherited/exec.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-inherited/exec.js new file mode 100644 index 000000000000..11fa8ce2946f --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-inherited/exec.js @@ -0,0 +1,69 @@ +class Base { + static #foo = 1; + + static getThis() { + return this.#foo; + } + + static updateThis(val) { + return (this.#foo = val); + } + + static getClass() { + return Base.#foo; + } + + static updateClass(val) { + return (Base.#foo = val); + } +} + +class Sub1 extends Base { + static #foo = 2; + + static update(val) { + return (this.#foo = val); + } +} + +class Sub2 extends Base {} + +expect(Base.getThis()).toBe(1); +expect(Base.getClass()).toBe(1); +expect(() => Sub1.getThis()).toThrow(); +expect(Sub1.getClass()).toBe(1); +expect(() => Sub2.getThis()).toThrow(); +expect(Sub2.getClass()).toBe(1); + +expect(Sub1.update(3)).toBe(3); +expect(Base.getThis()).toBe(1); +expect(Base.getClass()).toBe(1); +expect(() => Sub1.getThis()).toThrow(); +expect(Sub1.getClass()).toBe(1); +expect(() => Sub2.getThis()).toThrow(); +expect(Sub2.getClass()).toBe(1); + +expect(Base.updateThis(4)).toBe(4); +expect(Base.getThis()).toBe(4); +expect(Base.getClass()).toBe(4); +expect(() => Sub1.getThis()).toThrow(); +expect(Sub1.getClass()).toBe(4); +expect(() => Sub2.getThis()).toThrow(); +expect(Sub2.getClass()).toBe(4); + +expect(Base.updateClass(5)).toBe(5); +expect(Base.getThis()).toBe(5); +expect(Base.getClass()).toBe(5); +expect(() => Sub1.getThis()).toThrow(); +expect(Sub1.getClass()).toBe(5); +expect(() => Sub2.getThis()).toThrow(); +expect(Sub2.getClass()).toBe(5); + +expect(() => Sub2.updateThis(6)).toThrow(); +expect(Sub2.updateClass(7)).toBe(7); +expect(Base.getThis()).toBe(7); +expect(Base.getClass()).toBe(7); +expect(() => Sub1.getThis()).toThrow(); +expect(Sub1.getClass()).toBe(7); +expect(() => Sub2.getThis()).toThrow(); +expect(Sub2.getClass()).toBe(7); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-inherited/input.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-inherited/input.js index 66202d9f9d4f..d20e16609835 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-inherited/input.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-inherited/input.js @@ -6,7 +6,7 @@ class Base { } static updateThis(val) { - return this.#foo = val; + return (this.#foo = val); } static getClass() { @@ -14,7 +14,7 @@ class Base { } static updateClass(val) { - return Base.#foo = val; + return (Base.#foo = val); } } @@ -22,49 +22,8 @@ class Sub1 extends Base { static #foo = 2; static update(val) { - return this.#foo = val; + return (this.#foo = val); } } -class Sub2 extends Base { -} - -expect(Base.getThis()).toBe(1); -expect(Base.getClass()).toBe(1); -assert.throws(() => Sub1.getThis()); -expect(Sub1.getClass()).toBe(1); -assert.throws(() => Sub2.getThis()); -expect(Sub2.getClass()).toBe(1); - -expect(Sub1.update(3)).toBe(3); -expect(Base.getThis()).toBe(1); -expect(Base.getClass()).toBe(1); -assert.throws(() => Sub1.getThis()); -expect(Sub1.getClass()).toBe(1); -assert.throws(() => Sub2.getThis()); -expect(Sub2.getClass()).toBe(1); - -expect(Base.updateThis(4)).toBe(4); -expect(Base.getThis()).toBe(4); -expect(Base.getClass()).toBe(4); -assert.throws(() => Sub1.getThis()); -expect(Sub1.getClass()).toBe(4); -assert.throws(() => Sub2.getThis()); -expect(Sub2.getClass()).toBe(4); - -expect(Base.updateClass(5)).toBe(5); -expect(Base.getThis()).toBe(5); -expect(Base.getClass()).toBe(5); -assert.throws(() => Sub1.getThis()); -expect(Sub1.getClass()).toBe(5); -assert.throws(() => Sub2.getThis()); -expect(Sub2.getClass()).toBe(5); - -assert.throws(() => Sub2.updateThis(6)); -expect(Sub2.updateClass(7)).toBe(7); -expect(Base.getThis()).toBe(7); -expect(Base.getClass()).toBe(7); -assert.throws(() => Sub1.getThis()); -expect(Sub1.getClass()).toBe(7); -assert.throws(() => Sub2.getThis()); -expect(Sub2.getClass()).toBe(7); +class Sub2 extends Base {} diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-inherited/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-inherited/options.json index 03872554afb3..a9b6f71fec95 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-inherited/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-inherited/options.json @@ -1,3 +1,13 @@ { - "throws": "Static class fields are not spec'ed yet." + "plugins": [ + [ + "external-helpers", + { + "helperVersion": "7.0.2" + } + ], + ["proposal-class-properties", { "loose": true }], + "transform-block-scoping", + "syntax-class-properties" + ] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-inherited/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-inherited/output.js new file mode 100644 index 000000000000..0dbe51081fdf --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-inherited/output.js @@ -0,0 +1,41 @@ +class Base { + static getThis() { + return babelHelpers.classPrivateFieldLooseBase(this, _foo)[_foo]; + } + + static updateThis(val) { + return babelHelpers.classPrivateFieldLooseBase(this, _foo)[_foo] = val; + } + + static getClass() { + return babelHelpers.classPrivateFieldLooseBase(Base, _foo)[_foo]; + } + + static updateClass(val) { + return babelHelpers.classPrivateFieldLooseBase(Base, _foo)[_foo] = val; + } + +} + +var _foo = babelHelpers.classPrivateFieldLooseKey("foo"); + +Object.defineProperty(Base, _foo, { + writable: true, + value: 1 +}); + +class Sub1 extends Base { + static update(val) { + return babelHelpers.classPrivateFieldLooseBase(this, _foo2)[_foo2] = val; + } + +} + +var _foo2 = babelHelpers.classPrivateFieldLooseKey("foo"); + +Object.defineProperty(Sub1, _foo2, { + writable: true, + value: 2 +}); + +class Sub2 extends Base {} diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-undefined/exec.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-undefined/exec.js new file mode 100644 index 000000000000..e607ac72e7c7 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-undefined/exec.js @@ -0,0 +1,15 @@ +class Foo { + static #bar; + + static test() { + return Foo.#bar; + } + + test() { + return Foo.#bar; + } +} + +expect("bar" in Foo).toBe(false); +expect(Foo.test()).toBe(undefined); +expect(Foo.test()).toBe(undefined); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-undefined/input.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-undefined/input.js index d63968889855..1f475fcdab1e 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-undefined/input.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-undefined/input.js @@ -9,7 +9,3 @@ class Foo { return Foo.#bar; } } - -expect("bar" in Foo).toBe(false) -expect(Foo.test()).toBe(undefined) -expect(Foo.test()).toBe(undefined) diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-undefined/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-undefined/options.json index 03872554afb3..a9b6f71fec95 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-undefined/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-undefined/options.json @@ -1,3 +1,13 @@ { - "throws": "Static class fields are not spec'ed yet." + "plugins": [ + [ + "external-helpers", + { + "helperVersion": "7.0.2" + } + ], + ["proposal-class-properties", { "loose": true }], + "transform-block-scoping", + "syntax-class-properties" + ] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-undefined/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-undefined/output.js new file mode 100644 index 000000000000..7f147ae78e11 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static-undefined/output.js @@ -0,0 +1,17 @@ +class Foo { + static test() { + return babelHelpers.classPrivateFieldLooseBase(Foo, _bar)[_bar]; + } + + test() { + return babelHelpers.classPrivateFieldLooseBase(Foo, _bar)[_bar]; + } + +} + +var _bar = babelHelpers.classPrivateFieldLooseKey("bar"); + +Object.defineProperty(Foo, _bar, { + writable: true, + value: void 0 +}); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static/exec.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static/exec.js new file mode 100644 index 000000000000..e7ceb271af54 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static/exec.js @@ -0,0 +1,15 @@ +class Foo { + static #bar = "foo"; + + static test() { + return Foo.#bar; + } + + test() { + return Foo.#bar; + } +} + +expect("bar" in Foo).toBe(false); +expect(Foo.test()).toBe("foo"); +expect(Foo.test()).toBe("foo"); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static/input.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static/input.js index c905fa85d589..3497e0c62cda 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static/input.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static/input.js @@ -9,7 +9,3 @@ class Foo { return Foo.#bar; } } - -expect("bar" in Foo).toBe(false) -expect(Foo.test()).toBe("foo") -expect(Foo.test()).toBe("foo") diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static/options.json index 03872554afb3..a9b6f71fec95 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static/options.json @@ -1,3 +1,13 @@ { - "throws": "Static class fields are not spec'ed yet." + "plugins": [ + [ + "external-helpers", + { + "helperVersion": "7.0.2" + } + ], + ["proposal-class-properties", { "loose": true }], + "transform-block-scoping", + "syntax-class-properties" + ] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static/output.js new file mode 100644 index 000000000000..18bcaf0c42bb --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/static/output.js @@ -0,0 +1,17 @@ +class Foo { + static test() { + return babelHelpers.classPrivateFieldLooseBase(Foo, _bar)[_bar]; + } + + test() { + return babelHelpers.classPrivateFieldLooseBase(Foo, _bar)[_bar]; + } + +} + +var _bar = babelHelpers.classPrivateFieldLooseKey("bar"); + +Object.defineProperty(Foo, _bar, { + writable: true, + value: "foo" +}); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/assignment/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/assignment/output.js index bf56ee4e3443..09f9f0b622a5 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/assignment/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/assignment/output.js @@ -6,7 +6,10 @@ function () { function Foo() { babelHelpers.classCallCheck(this, Foo); - _foo.set(this, 0); + _foo.set(this, { + writable: true, + value: 0 + }); } babelHelpers.createClass(Foo, [{ diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/call/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/call/output.js index cc609c1f7378..575d880c79dd 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/call/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/call/output.js @@ -6,8 +6,11 @@ function () { function Foo() { babelHelpers.classCallCheck(this, Foo); - _foo.set(this, function () { - return this; + _foo.set(this, { + writable: true, + value: function () { + return this; + } }); } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/canonical/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/canonical/output.js index 1075fa4c4487..4c9d083cefdc 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/canonical/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/canonical/output.js @@ -6,9 +6,15 @@ function () { function Point(_x2 = 0, _y2 = 0) { babelHelpers.classCallCheck(this, Point); - _x.set(this, void 0); + _x.set(this, { + writable: true, + value: void 0 + }); - _y.set(this, void 0); + _y.set(this, { + writable: true, + value: void 0 + }); babelHelpers.classPrivateFieldSet(this, _x, +_x2); babelHelpers.classPrivateFieldSet(this, _y, +_y2); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/constructor-collision/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/constructor-collision/output.js index 2bdbd6dd6ba7..c77f5b8f7499 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/constructor-collision/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/constructor-collision/output.js @@ -5,7 +5,10 @@ var Foo = function Foo() { babelHelpers.classCallCheck(this, Foo); - _bar.set(this, foo); + _bar.set(this, { + writable: true, + value: foo + }); var _foo = "foo"; }; diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/declaration-order/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/declaration-order/output.js index 641d0e537031..06b09aad3289 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/declaration-order/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/declaration-order/output.js @@ -4,7 +4,10 @@ var C = function C() { babelHelpers.classCallCheck(this, C); babelHelpers.defineProperty(this, "y", babelHelpers.classPrivateFieldGet(this, _x)); - _x.set(this, void 0); + _x.set(this, { + writable: true, + value: void 0 + }); }; var _x = new WeakMap(); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/derived-multiple-supers/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/derived-multiple-supers/output.js index 3b8c665873ae..9b46f9b9e4b1 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/derived-multiple-supers/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/derived-multiple-supers/output.js @@ -13,11 +13,17 @@ function (_Bar) { if (condition) { _this = babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(Foo).call(this)); - _bar.set(babelHelpers.assertThisInitialized(babelHelpers.assertThisInitialized(babelHelpers.assertThisInitialized(_this))), "foo"); + _bar.set(babelHelpers.assertThisInitialized(babelHelpers.assertThisInitialized(babelHelpers.assertThisInitialized(_this))), { + writable: true, + value: "foo" + }); } else { _this = babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(Foo).call(this)); - _bar.set(babelHelpers.assertThisInitialized(babelHelpers.assertThisInitialized(babelHelpers.assertThisInitialized(_this))), "foo"); + _bar.set(babelHelpers.assertThisInitialized(babelHelpers.assertThisInitialized(babelHelpers.assertThisInitialized(_this))), { + writable: true, + value: "foo" + }); } return babelHelpers.possibleConstructorReturn(_this); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/derived/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/derived/output.js index 3fa6186f61e6..c21d6c318652 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/derived/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/derived/output.js @@ -3,7 +3,10 @@ var Foo = function Foo() { babelHelpers.classCallCheck(this, Foo); - _prop.set(this, "foo"); + _prop.set(this, { + writable: true, + value: "foo" + }); }; var _prop = new WeakMap(); @@ -21,7 +24,10 @@ function (_Foo) { babelHelpers.classCallCheck(this, Bar); _this = babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(Bar).call(this, ...args)); - _prop2.set(babelHelpers.assertThisInitialized(babelHelpers.assertThisInitialized(_this)), "bar"); + _prop2.set(babelHelpers.assertThisInitialized(babelHelpers.assertThisInitialized(_this)), { + writable: true, + value: "bar" + }); return _this; } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/extracted-this/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/extracted-this/output.js index 1da67d41c1ef..6d741a859b22 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/extracted-this/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/extracted-this/output.js @@ -5,9 +5,15 @@ var Foo = function Foo(_foo) { babelHelpers.classCallCheck(this, Foo); - _bar.set(this, this); + _bar.set(this, { + writable: true, + value: this + }); - _baz.set(this, foo); + _baz.set(this, { + writable: true, + value: foo + }); }; var _bar = new WeakMap(); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/foobar/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/foobar/output.js index efe70074ffe7..f5185121331b 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/foobar/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/foobar/output.js @@ -11,8 +11,11 @@ function (_Parent) { babelHelpers.classCallCheck(this, Child); _this = babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(Child).call(this)); - _scopedFunctionWithThis.set(babelHelpers.assertThisInitialized(babelHelpers.assertThisInitialized(_this)), () => { - _this.name = {}; + _scopedFunctionWithThis.set(babelHelpers.assertThisInitialized(babelHelpers.assertThisInitialized(_this)), { + writable: true, + value: () => { + _this.name = {}; + } }); return _this; diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/instance-undefined/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/instance-undefined/output.js index 883eae5647f7..935e466d2ab1 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/instance-undefined/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/instance-undefined/output.js @@ -3,7 +3,10 @@ var Foo = function Foo() { babelHelpers.classCallCheck(this, Foo); - _bar.set(this, void 0); + _bar.set(this, { + writable: true, + value: void 0 + }); }; var _bar = new WeakMap(); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/instance/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/instance/options.json index da21c5605ab3..d19c32198535 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/instance/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/instance/options.json @@ -1,3 +1,15 @@ { - "plugins": ["external-helpers", "proposal-class-properties", "transform-classes", "transform-block-scoping", "syntax-class-properties", "transform-exponentiation-operator"] + "plugins": [ + [ + "external-helpers", + { + "helperVersion": "7.0.2" + } + ], + "proposal-class-properties", + "transform-classes", + "transform-block-scoping", + "syntax-class-properties", + "transform-exponentiation-operator" + ] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/instance/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/instance/output.js index 33c04bf680a7..2b1562a16ee0 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/instance/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/instance/output.js @@ -3,7 +3,10 @@ var Foo = function Foo() { babelHelpers.classCallCheck(this, Foo); - _bar.set(this, "foo"); + _bar.set(this, { + writable: true, + value: "foo" + }); }; var _bar = new WeakMap(); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/multiple/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/multiple/output.js index 6b96ca95f7d8..4f2428c7172a 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/multiple/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/multiple/output.js @@ -3,9 +3,15 @@ var Foo = function Foo() { babelHelpers.classCallCheck(this, Foo); - _x.set(this, 0); + _x.set(this, { + writable: true, + value: 0 + }); - _y.set(this, babelHelpers.classPrivateFieldGet(this, _x)); + _y.set(this, { + writable: true, + value: babelHelpers.classPrivateFieldGet(this, _x) + }); }; var _x = new WeakMap(); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/native-classes/exec.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/native-classes/exec.js new file mode 100644 index 000000000000..e0c4dfe70b3b --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/native-classes/exec.js @@ -0,0 +1,18 @@ +class Foo { + static #foo = "foo"; + #bar = "bar"; + + static test() { + return Foo.#foo; + } + + test() { + return this.#bar; + } +} + +const f = new Foo(); +expect("foo" in Foo).toBe(false) +expect("bar" in f).toBe(false) +expect(Foo.test()).toBe("foo") +expect(f.test()).toBe("bar") diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/native-classes/input.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/native-classes/input.js index e0c4dfe70b3b..38d90873400b 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/native-classes/input.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/native-classes/input.js @@ -10,9 +10,3 @@ class Foo { return this.#bar; } } - -const f = new Foo(); -expect("foo" in Foo).toBe(false) -expect("bar" in f).toBe(false) -expect(Foo.test()).toBe("foo") -expect(f.test()).toBe("bar") diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/native-classes/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/native-classes/options.json index 03872554afb3..668d1445baaf 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/native-classes/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/native-classes/options.json @@ -1,3 +1,13 @@ { - "throws": "Static class fields are not spec'ed yet." + "plugins": [ + [ + "external-helpers", + { + "helperVersion": "7.0.2" + } + ], + "proposal-class-properties", + "transform-block-scoping", + "syntax-class-properties" + ] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/native-classes/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/native-classes/output.js new file mode 100644 index 000000000000..72ca92a92bbf --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/native-classes/output.js @@ -0,0 +1,24 @@ +class Foo { + constructor() { + _bar.set(this, { + writable: true, + value: "bar" + }); + } + + static test() { + return babelHelpers.classStaticPrivateFieldSpecGet(Foo, Foo, _foo); + } + + test() { + return babelHelpers.classPrivateFieldGet(this, _bar); + } + +} + +var _foo = { + writable: true, + value: "foo" +}; + +var _bar = new WeakMap(); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/non-block-arrow-func/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/non-block-arrow-func/options.json index 03872554afb3..668d1445baaf 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/non-block-arrow-func/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/non-block-arrow-func/options.json @@ -1,3 +1,13 @@ { - "throws": "Static class fields are not spec'ed yet." + "plugins": [ + [ + "external-helpers", + { + "helperVersion": "7.0.2" + } + ], + "proposal-class-properties", + "transform-block-scoping", + "syntax-class-properties" + ] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/non-block-arrow-func/output.mjs b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/non-block-arrow-func/output.mjs new file mode 100644 index 000000000000..bc605408a7d3 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/non-block-arrow-func/output.mjs @@ -0,0 +1,16 @@ +export default (param => { + var _class, _temp, _props; + + return _temp = _class = class App { + getParam() { + return param; + } + + }, _props = { + writable: true, + value: { + prop1: 'prop1', + prop2: 'prop2' + } + }, _temp; +}); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/options.json index 9aefe6206b09..beb3d1d5c569 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/options.json @@ -1,3 +1,14 @@ { - "plugins": ["external-helpers", "proposal-class-properties", "transform-classes", "transform-block-scoping", "syntax-class-properties"] + "plugins": [ + [ + "external-helpers", + { + "helperVersion": "7.0.2" + } + ], + "proposal-class-properties", + "transform-classes", + "transform-block-scoping", + "syntax-class-properties" + ] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/private-in-derived/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/private-in-derived/output.js index 8f7b2ea3ad16..0ca02451bd88 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/private-in-derived/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/private-in-derived/output.js @@ -3,7 +3,10 @@ var Outer = function Outer() { babelHelpers.classCallCheck(this, Outer); - _outer.set(this, void 0); + _outer.set(this, { + writable: true, + value: void 0 + }); var Test = /*#__PURE__*/ diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/reevaluated/exec.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/reevaluated/exec.js new file mode 100644 index 000000000000..407881827c94 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/reevaluated/exec.js @@ -0,0 +1,51 @@ +function classFactory() { + return class Foo { + #foo = "foo"; + static #bar = "bar"; + + instance() { + return this.#foo; + } + + static() { + return Foo.#bar; + } + + static instance(inst) { + return inst.#foo; + } + + static static() { + return Foo.#bar; + } + }; +} + +const Foo1 = classFactory(); +const Foo2 = classFactory(); + +const f1 = new Foo1(); +const f2 = new Foo2(); + +expect(f1.instance()).toBe("foo"); +expect(f1.static()).toBe("bar"); +expect(f2.instance()).toBe("foo"); +expect(f2.static()).toBe("bar"); + +expect(Foo1.instance(f1)).toBe("foo"); +expect(Foo1.static()).toBe("bar"); +expect(Foo2.instance(f2)).toBe("foo"); +expect(Foo2.static()).toBe("bar"); + +expect(() => { + f1.instance.call(f2), undefined; +}).toThrow(); +expect(() => { + f2.instance.call(f1), undefined; +}).toThrow(); +expect(() => { + Foo1.instance(f2), undefined; +}).toThrow(); +expect(() => { + Foo2.instance(f1), undefined; +}).toThrow(); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/reevaluated/input.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/reevaluated/input.js index 9e8222eb71ba..1adebbee2793 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/reevaluated/input.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/reevaluated/input.js @@ -18,34 +18,5 @@ function classFactory() { static static() { return Foo.#bar; } - } + }; } - -const Foo1 = classFactory(); -const Foo2 = classFactory(); - -const f1 = new Foo1; -const f2 = new Foo2; - -expect(f1.instance()).toBe("foo"); -expect(f1.static()).toBe("bar"); -expect(f2.instance()).toBe("foo"); -expect(f2.static()).toBe("bar"); - -expect(Foo1.instance(f1)).toBe("foo"); -expect(Foo1.static()).toBe("bar"); -expect(Foo2.instance(f2)).toBe("foo"); -expect(Foo2.static()).toBe("bar"); - -assert.throws(() => { - f1.instance.call(f2), undefined; -}); -assert.throws(() => { - f2.instance.call(f1), undefined; -}); -assert.throws(() => { - Foo1.instance(f2), undefined; -}); -assert.throws(() => { - Foo2.instance(f1), undefined; -}); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/reevaluated/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/reevaluated/options.json index 03872554afb3..668d1445baaf 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/reevaluated/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/reevaluated/options.json @@ -1,3 +1,13 @@ { - "throws": "Static class fields are not spec'ed yet." + "plugins": [ + [ + "external-helpers", + { + "helperVersion": "7.0.2" + } + ], + "proposal-class-properties", + "transform-block-scoping", + "syntax-class-properties" + ] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/reevaluated/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/reevaluated/output.js new file mode 100644 index 000000000000..e708fd223663 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/reevaluated/output.js @@ -0,0 +1,32 @@ +function classFactory() { + var _class, _temp, _foo, _bar; + + return _temp = _class = class Foo { + constructor() { + _foo.set(this, { + writable: true, + value: "foo" + }); + } + + instance() { + return babelHelpers.classPrivateFieldGet(this, _foo); + } + + static() { + return babelHelpers.classStaticPrivateFieldSpecGet(Foo, _class, _bar); + } + + static instance(inst) { + return babelHelpers.classPrivateFieldGet(inst, _foo); + } + + static static() { + return babelHelpers.classStaticPrivateFieldSpecGet(Foo, _class, _bar); + } + + }, _foo = new WeakMap(), _bar = { + writable: true, + value: "bar" + }, _temp; +} diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/reference-in-other-property/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/reference-in-other-property/output.js index 890181b19597..74a5672ddd65 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/reference-in-other-property/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/reference-in-other-property/output.js @@ -4,13 +4,22 @@ var Foo = function Foo() { babelHelpers.classCallCheck(this, Foo); babelHelpers.defineProperty(this, "one", babelHelpers.classPrivateFieldGet(this, _private)); - _two.set(this, babelHelpers.classPrivateFieldGet(this, _private)); + _two.set(this, { + writable: true, + value: babelHelpers.classPrivateFieldGet(this, _private) + }); - _private.set(this, 0); + _private.set(this, { + writable: true, + value: 0 + }); babelHelpers.defineProperty(this, "three", babelHelpers.classPrivateFieldGet(this, _private)); - _four.set(this, babelHelpers.classPrivateFieldGet(this, _private)); + _four.set(this, { + writable: true, + value: babelHelpers.classPrivateFieldGet(this, _private) + }); }; var _two = new WeakMap(); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/regression-T2983/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/regression-T2983/options.json index 03872554afb3..668d1445baaf 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/regression-T2983/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/regression-T2983/options.json @@ -1,3 +1,13 @@ { - "throws": "Static class fields are not spec'ed yet." + "plugins": [ + [ + "external-helpers", + { + "helperVersion": "7.0.2" + } + ], + "proposal-class-properties", + "transform-block-scoping", + "syntax-class-properties" + ] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/regression-T2983/output.mjs b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/regression-T2983/output.mjs new file mode 100644 index 000000000000..e3f239e10280 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/regression-T2983/output.mjs @@ -0,0 +1,12 @@ +var _class, _temp, _test; + +call((_temp = _class = class {}, _test = { + writable: true, + value: true +}, _temp)); +export default class _class2 {} +var _test2 = { + writable: true, + value: true +}; +; diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/regression-T6719/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/regression-T6719/options.json index 03872554afb3..668d1445baaf 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/regression-T6719/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/regression-T6719/options.json @@ -1,3 +1,13 @@ { - "throws": "Static class fields are not spec'ed yet." + "plugins": [ + [ + "external-helpers", + { + "helperVersion": "7.0.2" + } + ], + "proposal-class-properties", + "transform-block-scoping", + "syntax-class-properties" + ] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/regression-T6719/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/regression-T6719/output.js new file mode 100644 index 000000000000..18507b822ba3 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/regression-T6719/output.js @@ -0,0 +1,14 @@ +function withContext(ComposedComponent) { + var _class, _temp, _propTypes; + + return _temp = _class = class WithContext extends Component {}, _propTypes = { + writable: true, + value: { + context: PropTypes.shape({ + addCss: PropTypes.func, + setTitle: PropTypes.func, + setMeta: PropTypes.func + }) + } + }, _temp; +} diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/regression-T7364/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/regression-T7364/options.json index 70ad9aef824c..1a8c5001e5b2 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/regression-T7364/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/regression-T7364/options.json @@ -1,3 +1,14 @@ { - "plugins": ["external-helpers", "proposal-class-properties", "transform-block-scoping", "syntax-class-properties", "transform-async-to-generator"] + "plugins": [ + [ + "external-helpers", + { + "helperVersion": "7.0.2" + } + ], + "proposal-class-properties", + "transform-block-scoping", + "syntax-class-properties", + "transform-async-to-generator" + ] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/regression-T7364/output.mjs b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/regression-T7364/output.mjs index d56a5d736643..7afab860194f 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/regression-T7364/output.mjs +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/regression-T7364/output.mjs @@ -4,11 +4,18 @@ class MyClass { constructor() { var _this = this; - _myAsyncMethod.set(this, - /*#__PURE__*/ - babelHelpers.asyncToGenerator(function* () { - console.log(_this); - })); + _myAsyncMethod.set(this, { + writable: true, + value: function () { + var _ref = babelHelpers.asyncToGenerator(function* () { + console.log(_this); + }); + + return function value() { + return _ref.apply(this, arguments); + }; + }() + }); } } @@ -19,11 +26,18 @@ _class = class MyClass2 { constructor() { var _this2 = this; - _myAsyncMethod2.set(this, - /*#__PURE__*/ - babelHelpers.asyncToGenerator(function* () { - console.log(_this2); - })); + _myAsyncMethod2.set(this, { + writable: true, + value: function () { + var _ref2 = babelHelpers.asyncToGenerator(function* () { + console.log(_this2); + }); + + return function value() { + return _ref2.apply(this, arguments); + }; + }() + }); } }; @@ -34,11 +48,18 @@ export default class MyClass3 { constructor() { var _this3 = this; - _myAsyncMethod3.set(this, - /*#__PURE__*/ - babelHelpers.asyncToGenerator(function* () { - console.log(_this3); - })); + _myAsyncMethod3.set(this, { + writable: true, + value: function () { + var _ref3 = babelHelpers.asyncToGenerator(function* () { + console.log(_this3); + }); + + return function value() { + return _ref3.apply(this, arguments); + }; + }() + }); } } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-call/exec.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-call/exec.js new file mode 100644 index 000000000000..a35aa6ade8e3 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-call/exec.js @@ -0,0 +1,13 @@ +class Foo { + static #foo = function(x) { + return x; + } + + test(x) { + return Foo.#foo(x); + } +} + +const f = new Foo; +const test = f.test(); +expect(f.test("bar")).toBe("bar"); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-call/input.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-call/input.js new file mode 100644 index 000000000000..9c6e3a2872a7 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-call/input.js @@ -0,0 +1,10 @@ +class Foo { + static #foo = function(x) { + return x; + } + + test(x) { + return Foo.#foo(x); + } +} + diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-call/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-call/output.js new file mode 100644 index 000000000000..615955221a59 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-call/output.js @@ -0,0 +1,24 @@ +var Foo = +/*#__PURE__*/ +function () { + "use strict"; + + function Foo() { + babelHelpers.classCallCheck(this, Foo); + } + + babelHelpers.createClass(Foo, [{ + key: "test", + value: function test(x) { + return babelHelpers.classStaticPrivateFieldSpecGet(Foo, Foo, _foo).call(Foo, x); + } + }]); + return Foo; +}(); + +var _foo = { + writable: true, + value: function (x) { + return x; + } +}; diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-export/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-export/options.json index 03872554afb3..668d1445baaf 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-export/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-export/options.json @@ -1,3 +1,13 @@ { - "throws": "Static class fields are not spec'ed yet." + "plugins": [ + [ + "external-helpers", + { + "helperVersion": "7.0.2" + } + ], + "proposal-class-properties", + "transform-block-scoping", + "syntax-class-properties" + ] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-export/output.mjs b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-export/output.mjs new file mode 100644 index 000000000000..cc34988585f5 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-export/output.mjs @@ -0,0 +1,10 @@ +export class MyClass {} +var _property = { + writable: true, + value: value +}; +export default class MyClass2 {} +var _property2 = { + writable: true, + value: value +}; diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-infer-name/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-infer-name/options.json index 03872554afb3..668d1445baaf 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-infer-name/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-infer-name/options.json @@ -1,3 +1,13 @@ { - "throws": "Static class fields are not spec'ed yet." + "plugins": [ + [ + "external-helpers", + { + "helperVersion": "7.0.2" + } + ], + "proposal-class-properties", + "transform-block-scoping", + "syntax-class-properties" + ] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-infer-name/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-infer-name/output.js new file mode 100644 index 000000000000..9d864999469b --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-infer-name/output.js @@ -0,0 +1,6 @@ +var _class, _temp, _num; + +var Foo = (_temp = _class = class Foo {}, _num = { + writable: true, + value: 0 +}, _temp); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-inherited/exec.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-inherited/exec.js new file mode 100644 index 000000000000..11fa8ce2946f --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-inherited/exec.js @@ -0,0 +1,69 @@ +class Base { + static #foo = 1; + + static getThis() { + return this.#foo; + } + + static updateThis(val) { + return (this.#foo = val); + } + + static getClass() { + return Base.#foo; + } + + static updateClass(val) { + return (Base.#foo = val); + } +} + +class Sub1 extends Base { + static #foo = 2; + + static update(val) { + return (this.#foo = val); + } +} + +class Sub2 extends Base {} + +expect(Base.getThis()).toBe(1); +expect(Base.getClass()).toBe(1); +expect(() => Sub1.getThis()).toThrow(); +expect(Sub1.getClass()).toBe(1); +expect(() => Sub2.getThis()).toThrow(); +expect(Sub2.getClass()).toBe(1); + +expect(Sub1.update(3)).toBe(3); +expect(Base.getThis()).toBe(1); +expect(Base.getClass()).toBe(1); +expect(() => Sub1.getThis()).toThrow(); +expect(Sub1.getClass()).toBe(1); +expect(() => Sub2.getThis()).toThrow(); +expect(Sub2.getClass()).toBe(1); + +expect(Base.updateThis(4)).toBe(4); +expect(Base.getThis()).toBe(4); +expect(Base.getClass()).toBe(4); +expect(() => Sub1.getThis()).toThrow(); +expect(Sub1.getClass()).toBe(4); +expect(() => Sub2.getThis()).toThrow(); +expect(Sub2.getClass()).toBe(4); + +expect(Base.updateClass(5)).toBe(5); +expect(Base.getThis()).toBe(5); +expect(Base.getClass()).toBe(5); +expect(() => Sub1.getThis()).toThrow(); +expect(Sub1.getClass()).toBe(5); +expect(() => Sub2.getThis()).toThrow(); +expect(Sub2.getClass()).toBe(5); + +expect(() => Sub2.updateThis(6)).toThrow(); +expect(Sub2.updateClass(7)).toBe(7); +expect(Base.getThis()).toBe(7); +expect(Base.getClass()).toBe(7); +expect(() => Sub1.getThis()).toThrow(); +expect(Sub1.getClass()).toBe(7); +expect(() => Sub2.getThis()).toThrow(); +expect(Sub2.getClass()).toBe(7); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-inherited/input.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-inherited/input.js index 66202d9f9d4f..d20e16609835 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-inherited/input.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-inherited/input.js @@ -6,7 +6,7 @@ class Base { } static updateThis(val) { - return this.#foo = val; + return (this.#foo = val); } static getClass() { @@ -14,7 +14,7 @@ class Base { } static updateClass(val) { - return Base.#foo = val; + return (Base.#foo = val); } } @@ -22,49 +22,8 @@ class Sub1 extends Base { static #foo = 2; static update(val) { - return this.#foo = val; + return (this.#foo = val); } } -class Sub2 extends Base { -} - -expect(Base.getThis()).toBe(1); -expect(Base.getClass()).toBe(1); -assert.throws(() => Sub1.getThis()); -expect(Sub1.getClass()).toBe(1); -assert.throws(() => Sub2.getThis()); -expect(Sub2.getClass()).toBe(1); - -expect(Sub1.update(3)).toBe(3); -expect(Base.getThis()).toBe(1); -expect(Base.getClass()).toBe(1); -assert.throws(() => Sub1.getThis()); -expect(Sub1.getClass()).toBe(1); -assert.throws(() => Sub2.getThis()); -expect(Sub2.getClass()).toBe(1); - -expect(Base.updateThis(4)).toBe(4); -expect(Base.getThis()).toBe(4); -expect(Base.getClass()).toBe(4); -assert.throws(() => Sub1.getThis()); -expect(Sub1.getClass()).toBe(4); -assert.throws(() => Sub2.getThis()); -expect(Sub2.getClass()).toBe(4); - -expect(Base.updateClass(5)).toBe(5); -expect(Base.getThis()).toBe(5); -expect(Base.getClass()).toBe(5); -assert.throws(() => Sub1.getThis()); -expect(Sub1.getClass()).toBe(5); -assert.throws(() => Sub2.getThis()); -expect(Sub2.getClass()).toBe(5); - -assert.throws(() => Sub2.updateThis(6)); -expect(Sub2.updateClass(7)).toBe(7); -expect(Base.getThis()).toBe(7); -expect(Base.getClass()).toBe(7); -assert.throws(() => Sub1.getThis()); -expect(Sub1.getClass()).toBe(7); -assert.throws(() => Sub2.getThis()); -expect(Sub2.getClass()).toBe(7); +class Sub2 extends Base {} diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-inherited/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-inherited/options.json index 03872554afb3..668d1445baaf 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-inherited/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-inherited/options.json @@ -1,3 +1,13 @@ { - "throws": "Static class fields are not spec'ed yet." + "plugins": [ + [ + "external-helpers", + { + "helperVersion": "7.0.2" + } + ], + "proposal-class-properties", + "transform-block-scoping", + "syntax-class-properties" + ] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-inherited/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-inherited/output.js new file mode 100644 index 000000000000..61521c339b9f --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-inherited/output.js @@ -0,0 +1,37 @@ +class Base { + static getThis() { + return babelHelpers.classStaticPrivateFieldSpecGet(this, Base, _foo); + } + + static updateThis(val) { + return babelHelpers.classStaticPrivateFieldSpecSet(this, Base, _foo, val); + } + + static getClass() { + return babelHelpers.classStaticPrivateFieldSpecGet(Base, Base, _foo); + } + + static updateClass(val) { + return babelHelpers.classStaticPrivateFieldSpecSet(Base, Base, _foo, val); + } + +} + +var _foo = { + writable: true, + value: 1 +}; + +class Sub1 extends Base { + static update(val) { + return babelHelpers.classStaticPrivateFieldSpecSet(this, Sub1, _foo2, val); + } + +} + +var _foo2 = { + writable: true, + value: 2 +}; + +class Sub2 extends Base {} diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-undefined/exec.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-undefined/exec.js new file mode 100644 index 000000000000..e607ac72e7c7 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-undefined/exec.js @@ -0,0 +1,15 @@ +class Foo { + static #bar; + + static test() { + return Foo.#bar; + } + + test() { + return Foo.#bar; + } +} + +expect("bar" in Foo).toBe(false); +expect(Foo.test()).toBe(undefined); +expect(Foo.test()).toBe(undefined); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-undefined/input.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-undefined/input.js index d63968889855..1f475fcdab1e 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-undefined/input.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-undefined/input.js @@ -9,7 +9,3 @@ class Foo { return Foo.#bar; } } - -expect("bar" in Foo).toBe(false) -expect(Foo.test()).toBe(undefined) -expect(Foo.test()).toBe(undefined) diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-undefined/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-undefined/options.json index 03872554afb3..668d1445baaf 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-undefined/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-undefined/options.json @@ -1,3 +1,13 @@ { - "throws": "Static class fields are not spec'ed yet." + "plugins": [ + [ + "external-helpers", + { + "helperVersion": "7.0.2" + } + ], + "proposal-class-properties", + "transform-block-scoping", + "syntax-class-properties" + ] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-undefined/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-undefined/output.js new file mode 100644 index 000000000000..6d9c997d15f7 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static-undefined/output.js @@ -0,0 +1,15 @@ +class Foo { + static test() { + return babelHelpers.classStaticPrivateFieldSpecGet(Foo, Foo, _bar); + } + + test() { + return babelHelpers.classStaticPrivateFieldSpecGet(Foo, Foo, _bar); + } + +} + +var _bar = { + writable: true, + value: void 0 +}; diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static/options.json index 03872554afb3..668d1445baaf 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static/options.json @@ -1,3 +1,13 @@ { - "throws": "Static class fields are not spec'ed yet." + "plugins": [ + [ + "external-helpers", + { + "helperVersion": "7.0.2" + } + ], + "proposal-class-properties", + "transform-block-scoping", + "syntax-class-properties" + ] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static/output.js new file mode 100644 index 000000000000..af08e35726fd --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/static/output.js @@ -0,0 +1,18 @@ +class Foo { + static test() { + return babelHelpers.classStaticPrivateFieldSpecGet(Foo, Foo, _bar); + } + + test() { + return babelHelpers.classStaticPrivateFieldSpecGet(Foo, Foo, _bar); + } + +} + +var _bar = { + writable: true, + value: "foo" +}; +expect("bar" in Foo).toBe(false); +expect(Foo.test()).toBe("foo"); +expect(Foo.test()).toBe("foo"); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/super-call/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/super-call/output.js index 7afb77a02dfa..09e9c4b9e156 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/super-call/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/super-call/output.js @@ -29,7 +29,10 @@ function (_A) { babelHelpers.classCallCheck(this, B); _this = babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(B).call(this, ...args)); - _foo.set(babelHelpers.assertThisInitialized(babelHelpers.assertThisInitialized(_this)), babelHelpers.get(babelHelpers.getPrototypeOf(B.prototype), "foo", babelHelpers.assertThisInitialized(_this)).call(babelHelpers.assertThisInitialized(_this))); + _foo.set(babelHelpers.assertThisInitialized(babelHelpers.assertThisInitialized(_this)), { + writable: true, + value: babelHelpers.get(babelHelpers.getPrototypeOf(B.prototype), "foo", babelHelpers.assertThisInitialized(_this)).call(babelHelpers.assertThisInitialized(_this)) + }); return _this; } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/super-expression/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/super-expression/output.js index 9884d2534a47..c887562842bf 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/super-expression/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/super-expression/output.js @@ -9,7 +9,10 @@ function (_Bar) { var _temp, _this; babelHelpers.classCallCheck(this, Foo); - foo((_temp = _this = babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(Foo).call(this)), _bar.set(babelHelpers.assertThisInitialized(babelHelpers.assertThisInitialized(_this)), "foo"), _temp)); + foo((_temp = _this = babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(Foo).call(this)), _bar.set(babelHelpers.assertThisInitialized(babelHelpers.assertThisInitialized(_this)), { + writable: true, + value: "foo" + }), _temp)); return _this; } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/super-statement/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/super-statement/output.js index 4221053b3fb5..ecb55ffde580 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/super-statement/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/super-statement/output.js @@ -11,7 +11,10 @@ function (_Bar) { babelHelpers.classCallCheck(this, Foo); _this = babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(Foo).call(this)); - _bar.set(babelHelpers.assertThisInitialized(babelHelpers.assertThisInitialized(_this)), "foo"); + _bar.set(babelHelpers.assertThisInitialized(babelHelpers.assertThisInitialized(_this)), { + writable: true, + value: "foo" + }); return _this; } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/update/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/update/output.js index ae86f6bdba51..059ef2a09146 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/update/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/update/output.js @@ -6,7 +6,10 @@ function () { function Foo() { babelHelpers.classCallCheck(this, Foo); - _foo.set(this, 0); + _foo.set(this, { + writable: true, + value: 0 + }); } babelHelpers.createClass(Foo, [{ diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/arrow-static-this-without-transform/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/arrow-static-this-without-transform/options.json index f2532d47d99b..49c2c864045c 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/arrow-static-this-without-transform/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/arrow-static-this-without-transform/options.json @@ -1,3 +1,7 @@ { - "plugins": ["external-helpers", "transform-arrow-functions", "syntax-class-properties"] + "plugins": [ + "external-helpers", + "transform-arrow-functions", + "syntax-class-properties" + ] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/arrow-this-without-transform/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/arrow-this-without-transform/options.json index 83a71b9161a4..451abead8720 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/arrow-this-without-transform/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/arrow-this-without-transform/options.json @@ -1,4 +1,8 @@ { - "plugins": ["external-helpers", "transform-arrow-functions", "syntax-class-properties"], + "plugins": [ + "external-helpers", + "transform-arrow-functions", + "syntax-class-properties" + ], "throws": "Unable to transform arrow inside class property" } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/foobar/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/foobar/options.json index 4472ee6e570c..f43ead744a23 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/foobar/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/foobar/options.json @@ -1,7 +1,7 @@ { - "plugins": ["external-helpers", ["proposal-class-properties", {"loose": true}]], - "presets": [ - ["stage-0", { "decoratorsLegacy": true, "pipelineProposal": "minimal" }], - "env" - ] + "plugins": [ + "external-helpers", + ["proposal-class-properties", { "loose": true }] + ], + "presets": ["env"] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/options.json index de267e5044c2..524cdc31421b 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/options.json @@ -1,3 +1,9 @@ { - "plugins": ["external-helpers", ["proposal-class-properties", {"loose": true}], "transform-classes", "transform-block-scoping", "syntax-class-properties"] + "plugins": [ + "external-helpers", + ["proposal-class-properties", { "loose": true }], + "transform-classes", + "transform-block-scoping", + "syntax-class-properties" + ] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/regression-T7364/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/regression-T7364/options.json index baedce5591ef..e53ef8635458 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/regression-T7364/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/regression-T7364/options.json @@ -2,6 +2,6 @@ "plugins": [ "external-helpers", "transform-async-to-generator", - ["proposal-class-properties", {"loose": true}] + ["proposal-class-properties", { "loose": true }] ] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/public/arrow-static-this-without-transform/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/arrow-static-this-without-transform/options.json index f2532d47d99b..49c2c864045c 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/public/arrow-static-this-without-transform/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/arrow-static-this-without-transform/options.json @@ -1,3 +1,7 @@ { - "plugins": ["external-helpers", "transform-arrow-functions", "syntax-class-properties"] + "plugins": [ + "external-helpers", + "transform-arrow-functions", + "syntax-class-properties" + ] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/public/arrow-this-without-transform/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/arrow-this-without-transform/options.json index 83a71b9161a4..451abead8720 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/public/arrow-this-without-transform/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/arrow-this-without-transform/options.json @@ -1,4 +1,8 @@ { - "plugins": ["external-helpers", "transform-arrow-functions", "syntax-class-properties"], + "plugins": [ + "external-helpers", + "transform-arrow-functions", + "syntax-class-properties" + ], "throws": "Unable to transform arrow inside class property" } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/public/foobar/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/foobar/options.json index 195ad04836dd..5d764ec745cd 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/public/foobar/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/foobar/options.json @@ -1,7 +1,4 @@ { "plugins": ["external-helpers", "proposal-class-properties"], - "presets": [ - ["stage-0", { "decoratorsLegacy": true, "pipelineProposal": "minimal" }], - "env" - ] + "presets": ["env"] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/public/native-classes/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/native-classes/options.json index c19c65ddf979..89a37faa03b7 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/public/native-classes/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/native-classes/options.json @@ -1,4 +1,9 @@ { "minNodeVersion": "6.0.0", - "plugins": ["external-helpers", "proposal-class-properties", "transform-block-scoping", "syntax-class-properties"] + "plugins": [ + "external-helpers", + "proposal-class-properties", + "transform-block-scoping", + "syntax-class-properties" + ] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/public/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/options.json index 9aefe6206b09..d19c255940b8 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/public/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/options.json @@ -1,3 +1,9 @@ { - "plugins": ["external-helpers", "proposal-class-properties", "transform-classes", "transform-block-scoping", "syntax-class-properties"] + "plugins": [ + "external-helpers", + "proposal-class-properties", + "transform-classes", + "transform-block-scoping", + "syntax-class-properties" + ] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/regression/6153/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/regression/6153/options.json index 77632408b36a..0f5988fe5210 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/regression/6153/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/regression/6153/options.json @@ -1,3 +1,7 @@ { - "plugins": ["external-helpers", "proposal-class-properties", "transform-arrow-functions"] + "plugins": [ + "external-helpers", + "proposal-class-properties", + "transform-arrow-functions" + ] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/regression/6154/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/regression/6154/options.json index 934c4250654d..f79fa70719c3 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/regression/6154/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/regression/6154/options.json @@ -1,6 +1,4 @@ { - "presets": [ - "env", - ["stage-2", { "decoratorsLegacy": true }] - ] + "presets": ["env"], + "plugins": ["proposal-class-properties"] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/regression/7371/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/regression/7371/options.json index 77632408b36a..0f5988fe5210 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/regression/7371/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/regression/7371/options.json @@ -1,3 +1,7 @@ { - "plugins": ["external-helpers", "proposal-class-properties", "transform-arrow-functions"] + "plugins": [ + "external-helpers", + "proposal-class-properties", + "transform-arrow-functions" + ] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/regression/T2983/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/regression/T2983/options.json index 56e1d64791f6..524cdc31421b 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/regression/T2983/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/regression/T2983/options.json @@ -1,3 +1,9 @@ { - "plugins": ["external-helpers", ["proposal-class-properties", {"loose": true}], "transform-classes", "transform-block-scoping", "syntax-class-properties"] + "plugins": [ + "external-helpers", + ["proposal-class-properties", { "loose": true }], + "transform-classes", + "transform-block-scoping", + "syntax-class-properties" + ] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/regression/T6719/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/regression/T6719/options.json index 56e1d64791f6..524cdc31421b 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/regression/T6719/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/regression/T6719/options.json @@ -1,3 +1,9 @@ { - "plugins": ["external-helpers", ["proposal-class-properties", {"loose": true}], "transform-classes", "transform-block-scoping", "syntax-class-properties"] + "plugins": [ + "external-helpers", + ["proposal-class-properties", { "loose": true }], + "transform-classes", + "transform-block-scoping", + "syntax-class-properties" + ] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/regression/T7364/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/regression/T7364/options.json index baedce5591ef..e53ef8635458 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/regression/T7364/options.json +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/regression/T7364/options.json @@ -2,6 +2,6 @@ "plugins": [ "external-helpers", "transform-async-to-generator", - ["proposal-class-properties", {"loose": true}] + ["proposal-class-properties", { "loose": true }] ] } diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/static-property-tdz/decorator-interop/input.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/static-property-tdz/decorator-interop/input.js new file mode 100644 index 000000000000..200ded902537 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/static-property-tdz/decorator-interop/input.js @@ -0,0 +1,7 @@ +function dec() {} + +class A { + @dec a; + + [Symbol.search]() {} +} diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/static-property-tdz/decorator-interop/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/static-property-tdz/decorator-interop/options.json new file mode 100644 index 000000000000..8c831989533b --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/static-property-tdz/decorator-interop/options.json @@ -0,0 +1,7 @@ +{ + "plugins": [ + ["proposal-decorators", { "legacy": true }], + ["proposal-class-properties", { "loose": true }], + "transform-classes" + ] +} diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/static-property-tdz/decorator-interop/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/static-property-tdz/decorator-interop/output.js new file mode 100644 index 000000000000..70334680ced4 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/static-property-tdz/decorator-interop/output.js @@ -0,0 +1,39 @@ +var _class, _descriptor, _class2, _Symbol$search, _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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object['ke' + 'ys'](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['define' + 'Property'](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 set to use loose mode. ' + 'To use proposal-class-properties in spec mode with decorators, wait for ' + 'the next major version of decorators in stage 2.'); } + +function dec() {} + +let A = (_class = (_temp = (_Symbol$search = Symbol.search, _class2 = +/*#__PURE__*/ +function () { + "use strict"; + + function A() { + _classCallCheck(this, A); + + _initializerDefineProperty(this, "a", _descriptor, this); + } + + _createClass(A, [{ + key: _Symbol$search, + value: function () {} + }]); + + return A; +}()), _temp), (_descriptor = _applyDecoratedDescriptor(_class.prototype, "a", [dec], { + configurable: true, + enumerable: true, + writable: true, + initializer: null +})), _class); diff --git a/packages/babel-plugin-proposal-decorators/package.json b/packages/babel-plugin-proposal-decorators/package.json index 99e28fa3202e..acd14f3473bf 100644 --- a/packages/babel-plugin-proposal-decorators/package.json +++ b/packages/babel-plugin-proposal-decorators/package.json @@ -1,8 +1,11 @@ { "name": "@babel/plugin-proposal-decorators", - "version": "7.0.0-beta.52", + "version": "7.1.2", "author": "Logan Smyth ", "license": "MIT", + "publishConfig": { + "access": "public" + }, "description": "Compile class and object decorators to ES5", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-proposal-decorators", "main": "lib/index.js", @@ -12,14 +15,16 @@ "decorators" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/plugin-syntax-decorators": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/plugin-syntax-decorators": "^7.1.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-proposal-decorators/src/index.js b/packages/babel-plugin-proposal-decorators/src/index.js index 3c242ec4a081..5467f115ebaa 100644 --- a/packages/babel-plugin-proposal-decorators/src/index.js +++ b/packages/babel-plugin-proposal-decorators/src/index.js @@ -6,20 +6,21 @@ import legacyVisitor from "./transformer-legacy"; export default declare((api, options) => { api.assertVersion(7); - const { legacy = false, decoratorsBeforeExport } = options; + const { legacy = false } = options; if (typeof legacy !== "boolean") { throw new Error("'legacy' must be a boolean."); } - if (legacy !== true) { - throw new Error( - "The new decorators proposal is not supported yet." + - ' You must pass the `"legacy": true` option to' + - " @babel/plugin-proposal-decorators", - ); - } - - if (decoratorsBeforeExport !== undefined) { + const { decoratorsBeforeExport } = options; + if (decoratorsBeforeExport === undefined) { + if (!legacy) { + throw new Error( + "The decorators plugin requires a 'decoratorsBeforeExport' option," + + " whose value must be a boolean. If you want to use the legacy" + + " decorators semantics, you can set the 'legacy: true' option.", + ); + } + } else { if (legacy) { throw new Error( "'decoratorsBeforeExport' can't be used with legacy decorators.", diff --git a/packages/babel-plugin-proposal-decorators/src/transformer-legacy.js b/packages/babel-plugin-proposal-decorators/src/transformer-legacy.js index 6c01069b1a73..0eb0ebdbd87a 100644 --- a/packages/babel-plugin-proposal-decorators/src/transformer-legacy.js +++ b/packages/babel-plugin-proposal-decorators/src/transformer-legacy.js @@ -168,10 +168,18 @@ function applyTargetDecorators(path, state, decoratedProps) { decorators.map(dec => t.cloneNode(dec.expression)), ), t.objectExpression([ + t.objectProperty( + t.identifier("configurable"), + t.booleanLiteral(true), + ), t.objectProperty( t.identifier("enumerable"), t.booleanLiteral(true), ), + t.objectProperty( + t.identifier("writable"), + t.booleanLiteral(true), + ), t.objectProperty(t.identifier("initializer"), initializer), ]), ]), diff --git a/packages/babel-plugin-proposal-decorators/src/transformer.js b/packages/babel-plugin-proposal-decorators/src/transformer.js index 8dab9cadab44..22a493183a1c 100644 --- a/packages/babel-plugin-proposal-decorators/src/transformer.js +++ b/packages/babel-plugin-proposal-decorators/src/transformer.js @@ -1,3 +1,235 @@ -// Not implemented yet +import { types as t, template } from "@babel/core"; +import splitExportDeclaration from "@babel/helper-split-export-declaration"; +import ReplaceSupers from "@babel/helper-replace-supers"; -export default {}; +function prop(key, value) { + if (!value) return null; + return t.objectProperty(t.identifier(key), value); +} + +function value(body, params = [], async, generator) { + const method = t.objectMethod("method", t.identifier("value"), params, body); + method.async = !!async; + method.generator = !!generator; + return method; +} + +function hasDecorators({ node }) { + if (node.decorators && node.decorators.length > 0) return true; + + const body = node.body.body; + for (let i = 0; i < body.length; i++) { + const method = body[i]; + if (method.decorators && method.decorators.length > 0) { + return true; + } + } + + return false; +} + +function takeDecorators({ node }) { + let result; + if (node.decorators && node.decorators.length > 0) { + result = t.arrayExpression( + node.decorators.map(decorator => decorator.expression), + ); + } + node.decorators = undefined; + return result; +} + +function getKey(node) { + if (node.computed) { + return node.key; + } else if (t.isIdentifier(node.key)) { + return t.stringLiteral(node.key.name); + } else { + return t.stringLiteral(String(node.key.value)); + } +} + +function getSingleElementDefinition(path, superRef, classRef, file) { + const { node, scope } = path; + const isMethod = path.isClassMethod(); + + if (path.isPrivate()) { + throw path.buildCodeFrameError( + `Private ${ + isMethod ? "methods" : "fields" + } in decorated classes are not supported yet.`, + ); + } + + new ReplaceSupers( + { + methodPath: path, + methodNode: node, + objectRef: classRef, + isStatic: node.static, + superRef, + scope, + file, + }, + true, + ).replace(); + + const properties = [ + prop("kind", t.stringLiteral(isMethod ? node.kind : "field")), + prop("decorators", takeDecorators(path)), + prop("static", node.static && t.booleanLiteral(true)), + prop("key", getKey(node)), + isMethod + ? value(node.body, node.params, node.async, node.generator) + : node.value + ? value(template.ast`{ return ${node.value} }`) + : prop("value", scope.buildUndefinedNode()), + ].filter(Boolean); + + return t.objectExpression(properties); +} + +function getElementsDefinitions(path, fId, file) { + const elements = []; + for (const p of path.get("body.body")) { + if (!p.isClassMethod({ kind: "constructor" })) { + elements.push( + getSingleElementDefinition(p, path.node.superClass, fId, file), + ); + p.remove(); + } + } + + return t.arrayExpression(elements); +} + +function getConstructorPath(path) { + return path + .get("body.body") + .find(path => path.isClassMethod({ kind: "constructor" })); +} + +const bareSupersVisitor = { + CallExpression(path, { initializeInstanceElements }) { + if (path.get("callee").isSuper()) { + path.insertAfter(t.cloneNode(initializeInstanceElements)); + } + }, + Function(path) { + if (!path.isArrowFunctionExpression()) path.skip(); + }, +}; + +function insertInitializeInstanceElements(path, initializeInstanceId) { + const isBase = !path.node.superClass; + const initializeInstanceElements = t.callExpression(initializeInstanceId, [ + t.thisExpression(), + ]); + + const constructorPath = getConstructorPath(path); + if (constructorPath) { + if (isBase) { + constructorPath + .get("body") + .unshiftContainer("body", [ + t.expressionStatement(initializeInstanceElements), + ]); + } else { + constructorPath.traverse(bareSupersVisitor, { + initializeInstanceElements, + }); + } + } else { + const constructor = isBase + ? t.classMethod( + "constructor", + t.identifier("constructor"), + [], + t.blockStatement([t.expressionStatement(initializeInstanceElements)]), + ) + : t.classMethod( + "constructor", + t.identifier("constructor"), + [t.restElement(t.identifier("args"))], + t.blockStatement([ + t.expressionStatement( + t.callExpression(t.Super(), [ + t.spreadElement(t.identifier("args")), + ]), + ), + t.expressionStatement(initializeInstanceElements), + ]), + ); + path.node.body.body.push(constructor); + } +} + +function transformClass(path, file) { + const isDeclaration = path.node.id && path.isDeclaration(); + const isStrict = path.isInStrictMode(); + const { superClass } = path.node; + + path.node.type = "ClassDeclaration"; + if (!path.node.id) path.node.id = path.scope.generateUidIdentifier("class"); + + const initializeId = path.scope.generateUidIdentifier("initialize"); + const superId = + superClass && + path.scope.generateUidIdentifierBasedOnNode(path.node.superClass, "super"); + + if (superClass) path.node.superClass = superId; + + const classDecorators = takeDecorators(path); + const definitions = getElementsDefinitions(path, path.node.id, file); + + insertInitializeInstanceElements(path, initializeId); + + const expr = template.expression.ast` + ${addDecorateHelper(file)}( + ${classDecorators || t.nullLiteral()}, + function (${initializeId}, ${superClass ? superId : null}) { + ${path.node} + return { F: ${t.cloneNode(path.node.id)}, d: ${definitions} }; + }, + ${superClass} + ) + `; + if (!isStrict) { + expr.arguments[1].body.directives.push( + t.directive(t.directiveLiteral("use strict")), + ); + } + + return isDeclaration ? template.ast`let ${path.node.id} = ${expr}` : expr; +} + +function addDecorateHelper(file) { + try { + return file.addHelper("decorate"); + } catch (err) { + if (err.code === "BABEL_HELPER_UNKNOWN") { + err.message += + "\n '@babel/plugin-transform-decorators' in non-legacy mode" + + " requires '@babel/core' version ^7.0.2 and you appear to be using" + + " an older version."; + } + throw err; + } +} + +export default { + ExportDefaultDeclaration(path) { + let decl = path.get("declaration"); + if (!decl.isClassDeclaration() || !hasDecorators(decl)) return; + + if (decl.node.id) decl = splitExportDeclaration(path); + + decl.replaceWith(transformClass(decl, this.file)); + }, + + Class(path) { + if (hasDecorators(path)) { + path.replaceWith(transformClass(path, this.file)); + } + }, +}; diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/coalesce-get-set/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/coalesce-get-set/exec.js new file mode 100644 index 000000000000..ff096295c5c4 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/coalesce-get-set/exec.js @@ -0,0 +1,22 @@ +var el, el1; + +@(_ => el = _) +class A { + @(_ => el1 = _) + get foo() { return 1; } + + set foo(x) { return 2; } +} + +expect(el.elements).toHaveLength(1); + +expect(el1).toEqual(expect.objectContaining({ + descriptor: expect.objectContaining({ + get: expect.any(Function), + set: expect.any(Function) + }) +})); + +var desc = Object.getOwnPropertyDescriptor(A.prototype, "foo"); +expect(desc.get()).toBe(1); +expect(desc.set()).toBe(2); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/computed-keys-same-ast/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/computed-keys-same-ast/exec.js new file mode 100644 index 000000000000..3a314e78caec --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/computed-keys-same-ast/exec.js @@ -0,0 +1,28 @@ +var i = 0; + +function getKey() { + return (i++).toString(); +} + +var desc; + +@(_ => desc = _) +class Foo { + [getKey()]() { + return 1; + } + + [getKey()]() { + return 2; + } +} + +expect(desc.elements).toHaveLength(2); + +expect(desc.elements[0].key).toBe("0"); +expect(desc.elements[0].descriptor.value()).toBe(1); + +expect(desc.elements[1].key).toBe("1"); +expect(desc.elements[1].descriptor.value()).toBe(2); + +expect(i).toBe(2); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/computed-keys-same-ast/input.js b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/computed-keys-same-ast/input.js new file mode 100644 index 000000000000..af9620503487 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/computed-keys-same-ast/input.js @@ -0,0 +1,10 @@ +@(_ => desc = _) +class Foo { + [getKey()]() { + return 1; + } + + [getKey()]() { + return 2; + } +} diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/computed-keys-same-ast/output.js b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/computed-keys-same-ast/output.js new file mode 100644 index 000000000000..a08d2e1db86d --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/computed-keys-same-ast/output.js @@ -0,0 +1,31 @@ +let Foo = babelHelpers.decorate([_ => desc = _], function (_initialize) { + "use strict"; + + class Foo { + constructor() { + _initialize(this); + } + + } + + return { + F: Foo, + d: [{ + kind: "method", + key: getKey(), + + value() { + return 1; + } + + }, { + kind: "method", + key: getKey(), + + value() { + return 2; + } + + }] + }; +}); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/computed-keys-same-value/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/computed-keys-same-value/exec.js new file mode 100644 index 000000000000..48a03a2eb83b --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/computed-keys-same-value/exec.js @@ -0,0 +1,30 @@ +var i = 0; +var j = 0; + +function getKeyI() { + return (i++).toString(); +} +function getKeyJ() { + return (j++).toString(); +} + +var desc; + +@(_ => desc = _) +class Foo { + [getKeyI()]() { + return 1; + } + + [getKeyJ()]() { + return 2; + } +} + +expect(desc.elements).toHaveLength(1); + +expect(desc.elements[0].key).toBe("0"); +expect(desc.elements[0].descriptor.value()).toBe(2); + +expect(i).toBe(1); +expect(j).toBe(1); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/computed-keys-same-value/input.js b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/computed-keys-same-value/input.js new file mode 100644 index 000000000000..8ce01d7f504c --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/computed-keys-same-value/input.js @@ -0,0 +1,10 @@ +@(_ => desc = _) +class Foo { + [getKeyI()]() { + return 1; + } + + [getKeyJ()]() { + return 2; + } +} diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/computed-keys-same-value/output.js b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/computed-keys-same-value/output.js new file mode 100644 index 000000000000..bffa9e17a1d9 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/computed-keys-same-value/output.js @@ -0,0 +1,31 @@ +let Foo = babelHelpers.decorate([_ => desc = _], function (_initialize) { + "use strict"; + + class Foo { + constructor() { + _initialize(this); + } + + } + + return { + F: Foo, + d: [{ + kind: "method", + key: getKeyI(), + + value() { + return 1; + } + + }, { + kind: "method", + key: getKeyJ(), + + value() { + return 2; + } + + }] + }; +}); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/create-existing-element-from-class-decorator/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/create-existing-element-from-class-decorator/exec.js new file mode 100644 index 000000000000..878af82f5a8a --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/create-existing-element-from-class-decorator/exec.js @@ -0,0 +1,21 @@ +function pushElement(e) { + return function (c) { c.elements.push(e); return c }; +} + +expect(() => { + @pushElement({ + kind: "method", + key: "foo", + descriptor: { + enumerable: true, + configurable: true, + writable: true, + value: function() {}, + } + }) + class A { + foo() {} + } +}).toThrow(TypeError); + + diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/create-existing-element-from-method-decorator/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/create-existing-element-from-method-decorator/exec.js new file mode 100644 index 000000000000..49ccffb25145 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/create-existing-element-from-method-decorator/exec.js @@ -0,0 +1,23 @@ +function decorate() { + return { + kind: "method", + key: "foo", + descriptor: { + enumerable: true, + configurable: true, + writable: true, + value: function() {}, + } + }; +} + +expect(() => { + class A { + @decorate + bar() {} + + foo() {} + } +}).toThrow(TypeError); + + diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/create-existing-element-with-extras/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/create-existing-element-with-extras/exec.js new file mode 100644 index 000000000000..683f9876e4db --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/create-existing-element-with-extras/exec.js @@ -0,0 +1,25 @@ +function decorate(el) { + el.extras = [{ + kind: "method", + key: "foo", + descriptor: { + enumerable: true, + configurable: true, + writable: true, + value: function() {}, + } + }]; + + return el; +} + +expect(() => { + class A { + @decorate + bar() {} + + foo() {} + } +}).toThrow(TypeError); + + diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/extras-duplicated/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/extras-duplicated/exec.js new file mode 100644 index 000000000000..84ba83f7d2bc --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/extras-duplicated/exec.js @@ -0,0 +1,32 @@ +function decorate(el) { + el.extras = [{ + kind: "method", + key: "foo", + descriptor: { + enumerable: true, + configurable: true, + writable: true, + value: function() {}, + } + }, { + kind: "method", + key: "foo", + descriptor: { + enumerable: true, + configurable: true, + writable: true, + value: function() {}, + } + }]; + + return el; +} + +expect(() => { + class A { + @decorate + method() {} + } +}).toThrow(TypeError); + + diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/extras-same-as-return/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/extras-same-as-return/exec.js new file mode 100644 index 000000000000..9254ae4e7e49 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/extras-same-as-return/exec.js @@ -0,0 +1,31 @@ +function decorate(el) { + return { + kind: "method", + key: "foo", + descriptor: { + enumerable: true, + configurable: true, + writable: true, + value: function() {}, + }, + extras: [{ + kind: "method", + key: "foo", + descriptor: { + enumerable: true, + configurable: true, + writable: true, + value: function() {}, + } + }] + }; +} + +expect(() => { + class A { + @decorate + method() {} + } +}).toThrow(TypeError); + + diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/get-set-both-decorated/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/get-set-both-decorated/exec.js new file mode 100644 index 000000000000..6fbc663f5ac7 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/get-set-both-decorated/exec.js @@ -0,0 +1,11 @@ +function dec(el) { return el } + +expect(() => { + class A { + @dec + get foo() {} + + @dec + set foo(x) {} + } +}).toThrow(ReferenceError); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/moved-and-created/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/moved-and-created/exec.js new file mode 100644 index 000000000000..af42307cbc97 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/moved-and-created/exec.js @@ -0,0 +1,33 @@ +var value1, value2 = {}; + +function makeStatic(el) { + el.placement = "static"; + return el; +} + +function defineBar(el) { + el.extras = [{ + key: "bar", + kind: "method", + placement: "prototype", + descriptor: { + value: value2, + }, + }]; + return el; +} + +function storeValue(el) { + value1 = el.descriptor.value; + return el; +} + +class Foo { + @defineBar + @makeStatic + @storeValue + bar() {} +} + +expect(Foo.bar).toBe(value1); +expect(Foo.prototype.bar).toBe(value2); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/options.json b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/options.json new file mode 100644 index 000000000000..0fbe73eecd01 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/options.json @@ -0,0 +1,12 @@ +{ + "plugins": [ + ["proposal-decorators", { "decoratorsBeforeExport": false }], + "proposal-class-properties", + [ + "external-helpers", + { + "helperVersion": "7.1.5" + } + ] + ] +} diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/original-method-overwritten-both-decorated/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/original-method-overwritten-both-decorated/exec.js new file mode 100644 index 000000000000..c9593b343a38 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/original-method-overwritten-both-decorated/exec.js @@ -0,0 +1,13 @@ +expect(() => { + class A { + @(el => el) + method() { + return 1; + } + + @(el => el) + method() { + return 2; + } + } +}).toThrow(ReferenceError); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/original-method-overwritten-first-decorated/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/original-method-overwritten-first-decorated/exec.js new file mode 100644 index 000000000000..9ae41d96fa6d --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/original-method-overwritten-first-decorated/exec.js @@ -0,0 +1,12 @@ +expect(() => { + class A { + method() { + return 1; + } + + @(el => el) + method() { + return 2; + } + } +}).toThrow(ReferenceError); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/original-method-overwritten-no-decorators/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/original-method-overwritten-no-decorators/exec.js new file mode 100644 index 000000000000..4cf876381946 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/original-method-overwritten-no-decorators/exec.js @@ -0,0 +1,16 @@ +var el; + +@(_ => el = _) +class A { + method() { + return 1; + } + + method() { + return 2; + } +} + +expect(el.elements).toHaveLength(1); + +expect(A.prototype.method()).toBe(2); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/original-method-overwritten-second-decorated/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/original-method-overwritten-second-decorated/exec.js new file mode 100644 index 000000000000..bf38611a238e --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/original-method-overwritten-second-decorated/exec.js @@ -0,0 +1,12 @@ +expect(() => { + class A { + @(el => el) + method() { + return 1; + } + + method() { + return 2; + } + } +}).toThrow(ReferenceError); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/original-method-prototype-and-static/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/original-method-prototype-and-static/exec.js new file mode 100644 index 000000000000..bf72a77ae35c --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/duplicated-keys/original-method-prototype-and-static/exec.js @@ -0,0 +1,17 @@ +var el; + +@(_ => el = _) +class A { + method() { + return 1; + } + + static method() { + return 2; + } +} + +expect(el.elements).toHaveLength(2); + +expect(A.prototype.method()).toBe(1); +expect(A.method()).toBe(2); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/created-own-field/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/created-own-field/exec.js new file mode 100644 index 000000000000..d91d2d9973d3 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/created-own-field/exec.js @@ -0,0 +1,30 @@ +function pushElement(e) { + return function (c) { c.elements.push(e); return c }; +} + +var value = {}; + +@pushElement({ + kind: "field", + placement: "own", + key: "foo", + descriptor: { + enumerable: true, + configurable: true, + writable: true, + }, + initializer() { + return value; + } +}) +class A {} + +expect(A).not.toHaveProperty("foo"); +expect(A.prototype).not.toHaveProperty("foo"); + +expect(Object.getOwnPropertyDescriptor(new A(), "foo")).toEqual({ + enumerable: true, + configurable: true, + writable: true, + value: value, +}); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/created-own-method/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/created-own-method/exec.js new file mode 100644 index 000000000000..8c562448ccbf --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/created-own-method/exec.js @@ -0,0 +1,28 @@ +function pushElement(e) { + return function (c) { c.elements.push(e); return c }; +} + +function method() {} + +@pushElement({ + kind: "method", + placement: "own", + key: "foo", + descriptor: { + enumerable: true, + configurable: true, + writable: true, + value: method, + } +}) +class A {} + +expect(A).not.toHaveProperty("foo"); +expect(A.prototype).not.toHaveProperty("foo"); + +expect(Object.getOwnPropertyDescriptor(new A(), "foo")).toEqual({ + enumerable: true, + configurable: true, + writable: true, + value: method, +}); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/created-prototype-field/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/created-prototype-field/exec.js new file mode 100644 index 000000000000..fdb65df54290 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/created-prototype-field/exec.js @@ -0,0 +1,29 @@ +function pushElement(e) { + return function (c) { c.elements.push(e); return c }; +} + +var value = {}; + +@pushElement({ + kind: "field", + placement: "prototype", + key: "foo", + descriptor: { + enumerable: true, + configurable: true, + writable: true, + }, + initializer() { + return value; + } +}) +class A {} + +expect(A).not.toHaveProperty("foo"); + +expect(Object.getOwnPropertyDescriptor(A.prototype, "foo")).toEqual({ + enumerable: true, + configurable: true, + writable: true, + value: value, +}); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/created-prototype-method/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/created-prototype-method/exec.js new file mode 100644 index 000000000000..3346f4d3f24e --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/created-prototype-method/exec.js @@ -0,0 +1,27 @@ +function pushElement(e) { + return function (c) { c.elements.push(e); return c }; +} + +function method() {} + +@pushElement({ + kind: "method", + placement: "prototype", + key: "foo", + descriptor: { + enumerable: true, + configurable: true, + writable: true, + value: method, + } +}) +class A {} + +expect(A).not.toHaveProperty("foo"); + +expect(Object.getOwnPropertyDescriptor(A.prototype, "foo")).toEqual({ + enumerable: true, + configurable: true, + writable: true, + value: method, +}); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/created-static-field/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/created-static-field/exec.js new file mode 100644 index 000000000000..efebd9179670 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/created-static-field/exec.js @@ -0,0 +1,30 @@ +function pushElement(e) { + return function (c) { c.elements.push(e); return c }; +} + +var value = {}; + +@pushElement({ + kind: "field", + placement: "static", + key: "foo", + descriptor: { + enumerable: true, + configurable: true, + writable: true, + }, + initializer() { + return value; + } +}) +class A {} + +expect(A.prototype).not.toHaveProperty("foo"); +expect(new A()).not.toHaveProperty("foo"); + +expect(Object.getOwnPropertyDescriptor(A, "foo")).toEqual({ + enumerable: true, + configurable: true, + writable: true, + value: value, +}); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/created-static-method/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/created-static-method/exec.js new file mode 100644 index 000000000000..2919a1c824f4 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/created-static-method/exec.js @@ -0,0 +1,28 @@ +function pushElement(e) { + return function (c) { c.elements.push(e); return c }; +} + +function method() {} + +@pushElement({ + kind: "method", + placement: "static", + key: "foo", + descriptor: { + enumerable: true, + configurable: true, + writable: true, + value: method, + } +}) +class A {} + +expect(A.prototype).not.toHaveProperty("foo"); +expect(new A()).not.toHaveProperty("foo"); + +expect(Object.getOwnPropertyDescriptor(A, "foo")).toEqual({ + enumerable: true, + configurable: true, + writable: true, + value: method, +}); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/default/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/default/exec.js new file mode 100644 index 000000000000..8c5c80a51890 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/default/exec.js @@ -0,0 +1,14 @@ +function decorate(el) { + el.descriptor.value = 2; +} + +var Foo; + +expect(() => { + Foo = @(() => void 0) class Foo { + @decorate + bar() {} + } +}).not.toThrow(); + +expect(Foo.prototype.bar).toBe(2); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/not-reused-class/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/not-reused-class/exec.js new file mode 100644 index 000000000000..72803f23566b --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/not-reused-class/exec.js @@ -0,0 +1,8 @@ +var dec1, dec2; + +@(_ => dec1 = _) +@(_ => dec2 = _) +class A {} + +expect(dec1).toEqual(dec2); +expect(dec1).not.toBe(dec2); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/not-reused-field/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/not-reused-field/exec.js new file mode 100644 index 000000000000..827d1864eae5 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/not-reused-field/exec.js @@ -0,0 +1,13 @@ +var dec1, dec2; + +class A { + @(_ => dec1 = _) + @(_ => dec2 = _) + field = {} +} + +expect(dec1).toEqual(dec2); +expect(dec1).not.toBe(dec2); +expect(dec1.descriptor).toEqual(dec2.descriptor); +expect(dec1.descriptor).not.toBe(dec2.descriptor); +expect(dec1.initializer).toBe(dec2.initializer); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/not-reused-method/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/not-reused-method/exec.js new file mode 100644 index 000000000000..c4cf0708f1ef --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/not-reused-method/exec.js @@ -0,0 +1,13 @@ +var dec1, dec2; + +class A { + @(_ => dec1 = _) + @(_ => dec2 = _) + fn() {} +} + +expect(dec1).toEqual(dec2); +expect(dec1).not.toBe(dec2); +expect(dec1.descriptor).toEqual(dec2.descriptor); +expect(dec1.descriptor).not.toBe(dec2.descriptor); +expect(dec1.descriptor.value).toBe(dec2.descriptor.value); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/options.json b/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/options.json new file mode 100644 index 000000000000..0fbe73eecd01 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/options.json @@ -0,0 +1,12 @@ +{ + "plugins": [ + ["proposal-decorators", { "decoratorsBeforeExport": false }], + "proposal-class-properties", + [ + "external-helpers", + { + "helperVersion": "7.1.5" + } + ] + ] +} diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/original-class/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/original-class/exec.js new file mode 100644 index 000000000000..d2770fd57749 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/original-class/exec.js @@ -0,0 +1,19 @@ +var el = null; + +@(_ => el = _) +class A {} + +expect(el).toEqual(Object.defineProperty({ + kind: "class", + elements: [] +}, Symbol.toStringTag, { value: "Descriptor" })); + +@(_ => el = _) +class B { + foo = 2; + static bar() {} + get baz() {} + set baz(x) {} +} + +expect(el.elements).toHaveLength(3); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/original-own-field-without-initiailzer/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/original-own-field-without-initiailzer/exec.js new file mode 100644 index 000000000000..1fbbbebda729 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/original-own-field-without-initiailzer/exec.js @@ -0,0 +1,18 @@ +var el = null; + +class A { + @(_ => el = _) + foo; +} + +expect(el).toEqual(Object.defineProperty({ + kind: "field", + key: "foo", + placement: "own", + descriptor: { + enumerable: true, + configurable: true, + writable: true, + }, + initializer: undefined, +}, Symbol.toStringTag, { value: "Descriptor" })); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/original-own-field/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/original-own-field/exec.js new file mode 100644 index 000000000000..b71f4551c25e --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/original-own-field/exec.js @@ -0,0 +1,21 @@ +var el = null; +var val = {}; + +class A { + @(_ => el = _) + foo = val; +} + +expect(el).toEqual(Object.defineProperty({ + kind: "field", + key: "foo", + placement: "own", + descriptor: { + enumerable: true, + configurable: true, + writable: true, + }, + initializer: expect.any(Function), +}, Symbol.toStringTag, { value: "Descriptor" })); + +expect(el.initializer()).toBe(val); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/original-prototype-method/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/original-prototype-method/exec.js new file mode 100644 index 000000000000..9e58df2b1544 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/original-prototype-method/exec.js @@ -0,0 +1,18 @@ +var el = null; + +class A { + @(_ => el = _) + foo() {} +} + +expect(el).toEqual(Object.defineProperty({ + kind: "method", + key: "foo", + placement: "prototype", + descriptor: { + enumerable: false, + configurable: true, + writable: true, + value: A.prototype.foo, + }, +}, Symbol.toStringTag, { value: "Descriptor" })); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/original-static-field/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/original-static-field/exec.js new file mode 100644 index 000000000000..01a66d0842d1 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/original-static-field/exec.js @@ -0,0 +1,21 @@ +var el = null; +var val = { foo: 2 }; + +class A { + @(_ => el = _) + static foo = val; +} + +expect(el).toEqual(Object.defineProperty({ + kind: "field", + key: "foo", + placement: "static", + descriptor: { + enumerable: true, + configurable: true, + writable: true, + }, + initializer: expect.any(Function), +}, Symbol.toStringTag, { value: "Descriptor" })); + +expect(el.initializer()).toBe(val); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/original-static-method/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/original-static-method/exec.js new file mode 100644 index 000000000000..d55a51f082b0 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/element-descriptors/original-static-method/exec.js @@ -0,0 +1,18 @@ +var el = null; + +class A { + @(_ => el = _) + static foo() {} +} + +expect(el).toEqual(Object.defineProperty({ + kind: "method", + key: "foo", + placement: "static", + descriptor: { + enumerable: false, + configurable: true, + writable: true, + value: A.foo, + }, +}, Symbol.toStringTag, { value: "Descriptor" })); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/finishers/class-as-parameter/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/finishers/class-as-parameter/exec.js new file mode 100644 index 000000000000..46b15e68459a --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/finishers/class-as-parameter/exec.js @@ -0,0 +1,16 @@ +var C; + +function decorator(el) { + return Object.assign(el, { + finisher(Class) { + C = Class; + }, + }); +} + +class A { + @decorator + foo() {} +} + +expect(C).toBe(A); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/finishers/no-in-extras/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/finishers/no-in-extras/exec.js new file mode 100644 index 000000000000..cab527c82d2d --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/finishers/no-in-extras/exec.js @@ -0,0 +1,21 @@ +class C {} + +function decorator(el) { + return Object.assign(el, { + extras: [ + Object.assign({}, el, { + key: "bar", + finisher() { + return C; + } + }) + ] + }); +} + +expect(() => { + class A { + @decorator + foo() {} + } +}).toThrow(); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/finishers/options.json b/packages/babel-plugin-proposal-decorators/test/fixtures/finishers/options.json new file mode 100644 index 000000000000..0fbe73eecd01 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/finishers/options.json @@ -0,0 +1,12 @@ +{ + "plugins": [ + ["proposal-decorators", { "decoratorsBeforeExport": false }], + "proposal-class-properties", + [ + "external-helpers", + { + "helperVersion": "7.1.5" + } + ] + ] +} diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/finishers/return-class/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/finishers/return-class/exec.js new file mode 100644 index 000000000000..34623728f768 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/finishers/return-class/exec.js @@ -0,0 +1,16 @@ +class C {} + +function decorator(el) { + return Object.assign(el, { + finisher() { + return C; + }, + }); +} + +class A { + @decorator + foo() {} +} + +expect(A).toBe(C); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/legacy-class-prototype-properties/mutate-descriptor/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/legacy-class-prototype-properties/mutate-descriptor/exec.js index a037b2abc605..e03bc98fabaf 100644 --- a/packages/babel-plugin-proposal-decorators/test/fixtures/legacy-class-prototype-properties/mutate-descriptor/exec.js +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/legacy-class-prototype-properties/mutate-descriptor/exec.js @@ -16,6 +16,16 @@ function dec(target, name, descriptor) { }); } +function plainDec(target, name, descriptor) { + expect(target).toBeTruthy(); + expect(typeof name).toBe("string"); + expect(typeof descriptor).toBe("object"); + + target.decoratedProps = (target.decoratedProps || []).concat([name]); + + return descriptor; +} + class Example { @dec enumconfwrite = 1; @@ -40,6 +50,9 @@ class Example { @dec _ = 8; + + @plainDec + plain = 9; } const inst = new Example(); @@ -54,6 +67,7 @@ expect(inst.decoratedProps).toEqual([ "conf", "write", "_", + "plain", ]); const descs = Object.getOwnPropertyDescriptors(inst); @@ -97,3 +111,8 @@ expect(descs._.enumerable).toBe(false); expect(descs._.writable).toBe(false); expect(descs._.configurable).toBe(false); expect(inst._).toBe("__8__"); + +expect(descs.plain.enumerable).toBeTruthy(); +expect(descs.plain.writable).toBeTruthy(); +expect(descs.plain.configurable).toBeTruthy(); +expect(inst.plain).toBe(9); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/legacy-class-prototype-properties/properties-without-initializer/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/legacy-class-prototype-properties/properties-without-initializer/exec.js index 85a042a1ed66..9b3cff3f6ad0 100644 --- a/packages/babel-plugin-proposal-decorators/test/fixtures/legacy-class-prototype-properties/properties-without-initializer/exec.js +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/legacy-class-prototype-properties/properties-without-initializer/exec.js @@ -1,5 +1,11 @@ function dec(target, name, descriptor) { + expect(target).toBeTruthy(); + expect(typeof name).toBe("string"); + expect(typeof descriptor).toBe("object"); + target.decoratedProps = (target.decoratedProps || []).concat([name]); + + return descriptor; } class Example { @@ -7,5 +13,17 @@ class Example { } let inst = new Example(); + +expect(Example.prototype).toHaveProperty("decoratedProps"); +expect(inst.decoratedProps).toEqual([ + "prop", +]); + expect(inst).toHaveProperty("prop"); expect(inst.prop).toBeUndefined(); + +const descs = Object.getOwnPropertyDescriptors(inst); + +expect(descs.prop.enumerable).toBeTruthy(); +expect(descs.prop.writable).toBeTruthy(); +expect(descs.prop.configurable).toBeTruthy(); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/legacy-decl-to-expression/options.json b/packages/babel-plugin-proposal-decorators/test/fixtures/legacy-decl-to-expression/options.json index ea69269c5d30..3269632a3f11 100644 --- a/packages/babel-plugin-proposal-decorators/test/fixtures/legacy-decl-to-expression/options.json +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/legacy-decl-to-expression/options.json @@ -1,4 +1,4 @@ { "presets": [], "plugins": [["proposal-decorators", { "legacy": true }]] -} \ No newline at end of file +} diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/legacy-regression/7030/options.json b/packages/babel-plugin-proposal-decorators/test/fixtures/legacy-regression/7030/options.json index ff0a5398e963..002b4aa0d58e 100644 --- a/packages/babel-plugin-proposal-decorators/test/fixtures/legacy-regression/7030/options.json +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/legacy-regression/7030/options.json @@ -1,6 +1,3 @@ { - "presets": [ - "env", - ["stage-0", { "decoratorsLegacy": true, "pipelineProposal": "minimal" }] - ] + "presets": ["env"] } diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/legacy-regression/8512/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/legacy-regression/8512/exec.js new file mode 100644 index 000000000000..93e39c5153c8 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/legacy-regression/8512/exec.js @@ -0,0 +1,8 @@ +function dec(Class, key, desc) { + return desc; +} + +class Foo { + @dec + get bar() {} +} diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/legacy-regression/8512/options.json b/packages/babel-plugin-proposal-decorators/test/fixtures/legacy-regression/8512/options.json new file mode 100644 index 000000000000..92ce979119b0 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/legacy-regression/8512/options.json @@ -0,0 +1,3 @@ +{ + "plugins": [["proposal-decorators", { "legacy": true }]] +} diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/misc/method-name/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/misc/method-name/exec.js new file mode 100644 index 000000000000..5e4dcb98925e --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/misc/method-name/exec.js @@ -0,0 +1,8 @@ +function decorator() {} + +@decorator +class Foo { + method() {} +} + +expect(Foo.prototype.method.name).toBe("method"); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/misc/options.json b/packages/babel-plugin-proposal-decorators/test/fixtures/misc/options.json new file mode 100644 index 000000000000..0fbe73eecd01 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/misc/options.json @@ -0,0 +1,12 @@ +{ + "plugins": [ + ["proposal-decorators", { "decoratorsBeforeExport": false }], + "proposal-class-properties", + [ + "external-helpers", + { + "helperVersion": "7.1.5" + } + ] + ] +} diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/misc/to-primitive/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/misc/to-primitive/exec.js new file mode 100644 index 000000000000..698b3e7049bf --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/misc/to-primitive/exec.js @@ -0,0 +1,16 @@ +let calls = 0; +const baz = { + [Symbol.toPrimitive]() { + calls++; + return "baz"; + } +} + +function dec() {} + +@dec +class A { + [baz]() {} +} + +expect(calls).toBe(1); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/ordering/decorators/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/ordering/decorators/exec.js new file mode 100644 index 000000000000..8e7cc41e1699 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/ordering/decorators/exec.js @@ -0,0 +1,31 @@ +var log = []; + +function push(x) { log.push(x); return x; } + +function logDecoratorRun(a, b) { + push(a); + return function (el) { push(b); return el; }; +} + +@logDecoratorRun(0, 23) +@logDecoratorRun(1, 22) +class A { + @logDecoratorRun(2, 15) + @logDecoratorRun(3, 14) + [push(4)] = "4"; + + @logDecoratorRun(5, 17) + @logDecoratorRun(6, 16) + static [push(7)]() {} + + @logDecoratorRun(8, 19) + @logDecoratorRun(9, 18) + static [push(10)] = "10"; + + @logDecoratorRun(11, 21) + @logDecoratorRun(12, 20) + [push(13)]() {} +} + +var numsFrom0to23 = Array.from({ length: 24 }, (_, i) => i); +expect(log).toEqual(numsFrom0to23); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/ordering/field-initializers-after-methods/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/ordering/field-initializers-after-methods/exec.js new file mode 100644 index 000000000000..46e71f7281db --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/ordering/field-initializers-after-methods/exec.js @@ -0,0 +1,27 @@ +var counter = 0; + +@(x => x) +class A { + foo = (() => { + counter++; + expect(typeof this.method).toBe("function"); + expect(this.foo).toBeUndefined(); + expect(this.bar).toBeUndefined(); + return "foo"; + })(); + + method() {} + + bar = (() => { + counter++; + expect(typeof this.method).toBe("function"); + expect(this.foo).toBe("foo"); + expect(this.bar).toBeUndefined(); + })(); +} + +expect(counter).toBe(0); + +new A(); + +expect(counter).toBe(2); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/ordering/finishers/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/ordering/finishers/exec.js new file mode 100644 index 000000000000..0e8094b63751 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/ordering/finishers/exec.js @@ -0,0 +1,34 @@ +var log = []; + +function push(x) { log.push(x); return x; } + +function logFinisher(x) { + return function (el) { + return Object.assign(el, { + finisher() { push(x); } + }); + }; +} + +@logFinisher(9) +@logFinisher(8) +class A { + @logFinisher(1) + @logFinisher(0) + foo; + + @logFinisher(3) + @logFinisher(2) + static bar() {} + + @logFinisher(5) + @logFinisher(4) + static baz; + + @logFinisher(7) + @logFinisher(6) + asd() {} +} + +var numsFrom0to9 = Array.from({ length: 10 }, (_, i) => i); +expect(log).toEqual(numsFrom0to9); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/ordering/options.json b/packages/babel-plugin-proposal-decorators/test/fixtures/ordering/options.json new file mode 100644 index 000000000000..0fbe73eecd01 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/ordering/options.json @@ -0,0 +1,12 @@ +{ + "plugins": [ + ["proposal-decorators", { "decoratorsBeforeExport": false }], + "proposal-class-properties", + [ + "external-helpers", + { + "helperVersion": "7.1.5" + } + ] + ] +} diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/ordering/static-field-initializers-after-methods/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/ordering/static-field-initializers-after-methods/exec.js new file mode 100644 index 000000000000..0703f091cc8d --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/ordering/static-field-initializers-after-methods/exec.js @@ -0,0 +1,23 @@ +var counter = 0; + +@(x => x) +class A { + static foo = (() => { + counter++; + expect(typeof this.method).toBe("function"); + expect(this.foo).toBeUndefined(); + expect(this.bar).toBeUndefined(); + return "foo"; + })(); + + static method() {} + + static bar = (() => { + counter++; + expect(typeof this.method).toBe("function"); + expect(this.foo).toBe("foo"); + expect(this.bar).toBeUndefined(); + })(); +} + +expect(counter).toBe(2); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/arguments/input.js b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/arguments/input.js new file mode 100644 index 000000000000..2ba5ec0e6f79 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/arguments/input.js @@ -0,0 +1,4 @@ +@dec(a, b, ...c) +class A { + @dec(a, b, ...c) method() {} +} \ No newline at end of file diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/arguments/output.js b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/arguments/output.js new file mode 100644 index 000000000000..d8a47bf3a19c --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/arguments/output.js @@ -0,0 +1,22 @@ +let A = babelHelpers.decorate([dec(a, b, ...c)], function (_initialize) { + "use strict"; + + class A { + constructor() { + _initialize(this); + } + + } + + return { + F: A, + d: [{ + kind: "method", + decorators: [dec(a, b, ...c)], + key: "method", + + value() {} + + }] + }; +}); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/async-generator-method/input.js b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/async-generator-method/input.js new file mode 100644 index 000000000000..be2fdae25d4b --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/async-generator-method/input.js @@ -0,0 +1,8 @@ +@decorator +class Foo { + async f1() {} + + *f2() {} + + async *f3() {} +} diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/async-generator-method/options.json b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/async-generator-method/options.json new file mode 100644 index 000000000000..a3587a401c6c --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/async-generator-method/options.json @@ -0,0 +1,8 @@ +{ + "plugins": [ + ["proposal-decorators", { "decoratorsBeforeExport": false }], + "proposal-class-properties", + "syntax-async-generators", + ["external-helpers", { "helperVersion": "7.1.5" }] + ] +} diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/async-generator-method/output.js b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/async-generator-method/output.js new file mode 100644 index 000000000000..75ce76d3f1d7 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/async-generator-method/output.js @@ -0,0 +1,33 @@ +let Foo = babelHelpers.decorate([decorator], function (_initialize) { + "use strict"; + + class Foo { + constructor() { + _initialize(this); + } + + } + + return { + F: Foo, + d: [{ + kind: "method", + key: "f1", + + async value() {} + + }, { + kind: "method", + key: "f2", + + *value() {} + + }, { + kind: "method", + key: "f3", + + async *value() {} + + }] + }; +}); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/class-decorators-yield-await/input.js b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/class-decorators-yield-await/input.js new file mode 100644 index 000000000000..60d93582dc1a --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/class-decorators-yield-await/input.js @@ -0,0 +1,5 @@ +async function* f() { + @(yield dec1) + @(await dec2) + class A {} +} diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/class-decorators-yield-await/options.json b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/class-decorators-yield-await/options.json new file mode 100644 index 000000000000..7879b5a6675a --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/class-decorators-yield-await/options.json @@ -0,0 +1,13 @@ +{ + "plugins": [ + ["proposal-decorators", { "decoratorsBeforeExport": false }], + "proposal-class-properties", + [ + "external-helpers", + { + "helperVersion": "7.1.5" + } + ], + "syntax-async-generators" + ] +} diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/class-decorators-yield-await/output.js b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/class-decorators-yield-await/output.js new file mode 100644 index 000000000000..9404e8efe1fe --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/class-decorators-yield-await/output.js @@ -0,0 +1,17 @@ +async function* f() { + let A = babelHelpers.decorate([yield dec1, await dec2], function (_initialize) { + "use strict"; + + class A { + constructor() { + _initialize(this); + } + + } + + return { + F: A, + d: [] + }; + }); +} diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/declaration/input.js b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/declaration/input.js new file mode 100644 index 000000000000..8a7b27d87429 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/declaration/input.js @@ -0,0 +1,2 @@ +@dec() +class A {} \ No newline at end of file diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/declaration/output.js b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/declaration/output.js new file mode 100644 index 000000000000..6a8ce6155329 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/declaration/output.js @@ -0,0 +1,15 @@ +let A = babelHelpers.decorate([dec()], function (_initialize) { + "use strict"; + + class A { + constructor() { + _initialize(this); + } + + } + + return { + F: A, + d: [] + }; +}); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/export-default-anonymous/input.mjs b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/export-default-anonymous/input.mjs new file mode 100644 index 000000000000..532836c73d7e --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/export-default-anonymous/input.mjs @@ -0,0 +1 @@ +export default @dec() class {} diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/export-default-anonymous/output.mjs b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/export-default-anonymous/output.mjs new file mode 100644 index 000000000000..e196ff96ff3c --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/export-default-anonymous/output.mjs @@ -0,0 +1,13 @@ +export default babelHelpers.decorate([dec()], function (_initialize) { + class _class { + constructor() { + _initialize(this); + } + + } + + return { + F: _class, + d: [] + }; +}); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/export-default-named/input.mjs b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/export-default-named/input.mjs new file mode 100644 index 000000000000..1eda2dacb831 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/export-default-named/input.mjs @@ -0,0 +1 @@ +export default @dec() class Foo {} diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/export-default-named/output.mjs b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/export-default-named/output.mjs new file mode 100644 index 000000000000..6cf30240e07c --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/export-default-named/output.mjs @@ -0,0 +1,14 @@ +let Foo = babelHelpers.decorate([dec()], function (_initialize) { + class Foo { + constructor() { + _initialize(this); + } + + } + + return { + F: Foo, + d: [] + }; +}); +export { Foo as default }; diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/expression/input.js b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/expression/input.js new file mode 100644 index 000000000000..34278333fc9d --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/expression/input.js @@ -0,0 +1 @@ +(@dec() class {}); \ No newline at end of file diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/expression/output.js b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/expression/output.js new file mode 100644 index 000000000000..7f99d76bd0b9 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/expression/output.js @@ -0,0 +1,15 @@ +babelHelpers.decorate([dec()], function (_initialize) { + "use strict"; + + class _class { + constructor() { + _initialize(this); + } + + } + + return { + F: _class, + d: [] + }; +}); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/extends-await/input.js b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/extends-await/input.js new file mode 100644 index 000000000000..f8fd41ae167a --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/extends-await/input.js @@ -0,0 +1,3 @@ +async function g() { + @dec class A extends (await B) {} +} diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/extends-await/output.js b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/extends-await/output.js new file mode 100644 index 000000000000..707d6439237a --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/extends-await/output.js @@ -0,0 +1,19 @@ +async function g() { + let A = babelHelpers.decorate([dec], function (_initialize, _super) { + "use strict"; + + class A extends _super { + constructor(...args) { + super(...args); + + _initialize(this); + } + + } + + return { + F: A, + d: [] + }; + }, (await B)); +} diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/extends-yield/input.js b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/extends-yield/input.js new file mode 100644 index 000000000000..0a5c39de2f78 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/extends-yield/input.js @@ -0,0 +1,3 @@ +function* g() { + @dec class A extends (yield B) {} +} diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/extends-yield/output.js b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/extends-yield/output.js new file mode 100644 index 000000000000..2ccc1e94acea --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/extends-yield/output.js @@ -0,0 +1,19 @@ +function* g() { + let A = babelHelpers.decorate([dec], function (_initialize, _super) { + "use strict"; + + class A extends _super { + constructor(...args) { + super(...args); + + _initialize(this); + } + + } + + return { + F: A, + d: [] + }; + }, (yield B)); +} diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/extends/exec.js b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/extends/exec.js new file mode 100644 index 000000000000..e9e275b8f1c9 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/extends/exec.js @@ -0,0 +1,7 @@ +class B {} + +@(_ => _) +class A extends B {} + +expect(new A).toBeInstanceOf(A); +expect(new A).toBeInstanceOf(B); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/extends/input.js b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/extends/input.js new file mode 100644 index 000000000000..e7cdf6b53f77 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/extends/input.js @@ -0,0 +1 @@ +@dec class A extends B {} diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/extends/output.js b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/extends/output.js new file mode 100644 index 000000000000..eeef5ffce436 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/extends/output.js @@ -0,0 +1,17 @@ +let A = babelHelpers.decorate([dec], function (_initialize, _B) { + "use strict"; + + class A extends _B { + constructor(...args) { + super(...args); + + _initialize(this); + } + + } + + return { + F: A, + d: [] + }; +}, B); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/only-decorated/input.js b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/only-decorated/input.js new file mode 100644 index 000000000000..bcf77fe8828f --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/only-decorated/input.js @@ -0,0 +1,4 @@ +class B { + foo = 2; + bar() {} +} diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/only-decorated/output.js b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/only-decorated/output.js new file mode 100644 index 000000000000..2d487fa2b914 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/only-decorated/output.js @@ -0,0 +1,8 @@ +class B { + constructor() { + babelHelpers.defineProperty(this, "foo", 2); + } + + bar() {} + +} diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/options.json b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/options.json new file mode 100644 index 000000000000..0fbe73eecd01 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/options.json @@ -0,0 +1,12 @@ +{ + "plugins": [ + ["proposal-decorators", { "decoratorsBeforeExport": false }], + "proposal-class-properties", + [ + "external-helpers", + { + "helperVersion": "7.1.5" + } + ] + ] +} diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/strict-directive/input.js b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/strict-directive/input.js new file mode 100644 index 000000000000..85c55957e8f8 --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/strict-directive/input.js @@ -0,0 +1,15 @@ +(() => { + "use strict"; + + @dec + class Foo { + method() {} + } +}); + +(() => { + @dec + class Foo { + method() {} + } +}); diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/strict-directive/output.js b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/strict-directive/output.js new file mode 100644 index 000000000000..65f4fbb073ea --- /dev/null +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/transformation/strict-directive/output.js @@ -0,0 +1,47 @@ +() => { + "use strict"; + + let Foo = babelHelpers.decorate([dec], function (_initialize) { + class Foo { + constructor() { + _initialize(this); + } + + } + + return { + F: Foo, + d: [{ + kind: "method", + key: "method", + + value() {} + + }] + }; + }); +}; + +() => { + let Foo = babelHelpers.decorate([dec], function (_initialize2) { + "use strict"; + + class Foo { + constructor() { + _initialize2(this); + } + + } + + return { + F: Foo, + d: [{ + kind: "method", + key: "method", + + value() {} + + }] + }; + }); +}; diff --git a/packages/babel-plugin-proposal-do-expressions/package.json b/packages/babel-plugin-proposal-do-expressions/package.json index 0b4f3f7578c2..567e498ca723 100644 --- a/packages/babel-plugin-proposal-do-expressions/package.json +++ b/packages/babel-plugin-proposal-do-expressions/package.json @@ -1,22 +1,25 @@ { "name": "@babel/plugin-proposal-do-expressions", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Compile do expressions to ES5", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-proposal-do-expressions", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/plugin-syntax-do-expressions": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-do-expressions": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-proposal-export-default-from/package.json b/packages/babel-plugin-proposal-export-default-from/package.json index b482927abe20..3513efb416f2 100644 --- a/packages/babel-plugin-proposal-export-default-from/package.json +++ b/packages/babel-plugin-proposal-export-default-from/package.json @@ -1,22 +1,25 @@ { "name": "@babel/plugin-proposal-export-default-from", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Compile export default to ES2015", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-proposal-export-default-from", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/plugin-syntax-export-default-from": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-export-default-from": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-proposal-export-namespace-from/package.json b/packages/babel-plugin-proposal-export-namespace-from/package.json index f1a001008c7a..3f3e2982e43e 100644 --- a/packages/babel-plugin-proposal-export-namespace-from/package.json +++ b/packages/babel-plugin-proposal-export-namespace-from/package.json @@ -1,22 +1,25 @@ { "name": "@babel/plugin-proposal-export-namespace-from", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Compile export namespace to ES2015", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-proposal-export-namespace-from", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/plugin-syntax-export-namespace-from": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-export-namespace-from": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-proposal-function-bind/package.json b/packages/babel-plugin-proposal-function-bind/package.json index 12266f06b624..f72052e7c842 100644 --- a/packages/babel-plugin-proposal-function-bind/package.json +++ b/packages/babel-plugin-proposal-function-bind/package.json @@ -1,22 +1,25 @@ { "name": "@babel/plugin-proposal-function-bind", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Compile function bind operator to ES5", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-proposal-function-bind", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/plugin-syntax-function-bind": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-function-bind": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-proposal-function-sent/package.json b/packages/babel-plugin-proposal-function-sent/package.json index c170ab6db6dd..45f8a6f0d45a 100644 --- a/packages/babel-plugin-proposal-function-sent/package.json +++ b/packages/babel-plugin-proposal-function-sent/package.json @@ -1,23 +1,26 @@ { "name": "@babel/plugin-proposal-function-sent", - "version": "7.0.0-beta.52", + "version": "7.1.0", "description": "Compile the function.sent meta propety to valid ES2015 code", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-proposal-function-sent", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/helper-wrap-function": "7.0.0-beta.52", - "@babel/plugin-syntax-function-sent": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-wrap-function": "^7.1.0", + "@babel/plugin-syntax-function-sent": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-proposal-function-sent/test/fixtures/generator-kinds/async-generator/options.json b/packages/babel-plugin-proposal-function-sent/test/fixtures/generator-kinds/async-generator/options.json index f5009e557f0c..bf1a4ba1e01e 100644 --- a/packages/babel-plugin-proposal-function-sent/test/fixtures/generator-kinds/async-generator/options.json +++ b/packages/babel-plugin-proposal-function-sent/test/fixtures/generator-kinds/async-generator/options.json @@ -1,3 +1,3 @@ { - "plugins": [ "proposal-function-sent", "proposal-async-generator-functions" ] + "plugins": ["proposal-function-sent", "proposal-async-generator-functions"] } diff --git a/packages/babel-plugin-proposal-json-strings/package.json b/packages/babel-plugin-proposal-json-strings/package.json index 1f161ef256f1..12cf7d55ddd4 100644 --- a/packages/babel-plugin-proposal-json-strings/package.json +++ b/packages/babel-plugin-proposal-json-strings/package.json @@ -1,22 +1,25 @@ { "name": "@babel/plugin-proposal-json-strings", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Escape U+2028 LINE SEPARATOR and U+2029 PARAGRAPH SEPARATOR in JS strings", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-proposal-json-strings", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/plugin-syntax-json-strings": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-json-strings": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-proposal-logical-assignment-operators/package.json b/packages/babel-plugin-proposal-logical-assignment-operators/package.json index 7c528c028a70..e5de458d7e3c 100644 --- a/packages/babel-plugin-proposal-logical-assignment-operators/package.json +++ b/packages/babel-plugin-proposal-logical-assignment-operators/package.json @@ -1,24 +1,27 @@ { "name": "@babel/plugin-proposal-logical-assignment-operators", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Transforms logical assignment operators into short-circuited assignments", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-proposal-logical-assignment-operators", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/plugin-syntax-logical-assignment-operators": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52", - "@babel/plugin-proposal-nullish-coalescing-operator": "7.0.0-beta.52", - "@babel/plugin-syntax-nullish-coalescing-operator": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0" } } diff --git a/packages/babel-plugin-proposal-logical-assignment-operators/test/fixtures/logical-assignment/null-coalescing-without-other/options.json b/packages/babel-plugin-proposal-logical-assignment-operators/test/fixtures/logical-assignment/null-coalescing-without-other/options.json index e6559faadb6f..8507a894f763 100644 --- a/packages/babel-plugin-proposal-logical-assignment-operators/test/fixtures/logical-assignment/null-coalescing-without-other/options.json +++ b/packages/babel-plugin-proposal-logical-assignment-operators/test/fixtures/logical-assignment/null-coalescing-without-other/options.json @@ -1,3 +1,6 @@ { - "plugins": ["proposal-logical-assignment-operators", "syntax-nullish-coalescing-operator"] + "plugins": [ + "proposal-logical-assignment-operators", + "syntax-nullish-coalescing-operator" + ] } diff --git a/packages/babel-plugin-proposal-logical-assignment-operators/test/fixtures/logical-assignment/null-coalescing/options.json b/packages/babel-plugin-proposal-logical-assignment-operators/test/fixtures/logical-assignment/null-coalescing/options.json index e7a7bc2afeb4..f834cea89860 100644 --- a/packages/babel-plugin-proposal-logical-assignment-operators/test/fixtures/logical-assignment/null-coalescing/options.json +++ b/packages/babel-plugin-proposal-logical-assignment-operators/test/fixtures/logical-assignment/null-coalescing/options.json @@ -1,3 +1,6 @@ { - "plugins": ["proposal-logical-assignment-operators", "proposal-nullish-coalescing-operator"] + "plugins": [ + "proposal-logical-assignment-operators", + "proposal-nullish-coalescing-operator" + ] } diff --git a/packages/babel-plugin-proposal-nullish-coalescing-operator/package.json b/packages/babel-plugin-proposal-nullish-coalescing-operator/package.json index a54231535c9d..179d4ed42324 100644 --- a/packages/babel-plugin-proposal-nullish-coalescing-operator/package.json +++ b/packages/babel-plugin-proposal-nullish-coalescing-operator/package.json @@ -1,22 +1,25 @@ { "name": "@babel/plugin-proposal-nullish-coalescing-operator", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Remove nullish coalescing operator", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-nullish-coalescing-opearator", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/plugin-syntax-nullish-coalescing-operator": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-proposal-nullish-coalescing-operator/test/fixtures/nullish-coalescing/transform-loose/options.json b/packages/babel-plugin-proposal-nullish-coalescing-operator/test/fixtures/nullish-coalescing/transform-loose/options.json index be527140f4af..3073b9b4038c 100644 --- a/packages/babel-plugin-proposal-nullish-coalescing-operator/test/fixtures/nullish-coalescing/transform-loose/options.json +++ b/packages/babel-plugin-proposal-nullish-coalescing-operator/test/fixtures/nullish-coalescing/transform-loose/options.json @@ -1,3 +1,3 @@ { - "plugins": [["proposal-nullish-coalescing-operator", {"loose":true}]] + "plugins": [["proposal-nullish-coalescing-operator", { "loose": true }]] } diff --git a/packages/babel-plugin-proposal-numeric-separator/package.json b/packages/babel-plugin-proposal-numeric-separator/package.json index 798b411f8cc7..6cf59792bc97 100644 --- a/packages/babel-plugin-proposal-numeric-separator/package.json +++ b/packages/babel-plugin-proposal-numeric-separator/package.json @@ -1,22 +1,25 @@ { "name": "@babel/plugin-proposal-numeric-separator", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Remove numeric separators from Decimal, Binary, Hex and Octal literals", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-proposal-numeric-separator", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/plugin-syntax-numeric-separator": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-numeric-separator": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-proposal-object-rest-spread/package.json b/packages/babel-plugin-proposal-object-rest-spread/package.json index b3f061dcd2b1..5181f6b0a08f 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/package.json +++ b/packages/babel-plugin-proposal-object-rest-spread/package.json @@ -1,22 +1,25 @@ { "name": "@babel/plugin-proposal-object-rest-spread", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Compile object rest and spread to ES5", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-proposal-object-rest-spread", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/plugin-syntax-object-rest-spread": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } 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 ca8e53b24f39..0103816a239d 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/src/index.js +++ b/packages/babel-plugin-proposal-object-rest-spread/src/index.js @@ -96,10 +96,14 @@ export default declare((api, opts) => { const bindings = path.getOuterBindingIdentifierPaths(); Object.keys(bindings).forEach(bindingName => { - if (path.scope.getBinding(bindingName).references > 1) { + const bindingParentPath = bindings[bindingName].parentPath; + if ( + path.scope.getBinding(bindingName).references > 1 || + !bindingParentPath.isObjectProperty() + ) { return; } - bindings[bindingName].parentPath.remove(); + bindingParentPath.remove(); }); } diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/options.json b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/options.json index fc3756652af6..ac791b82acf2 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/options.json +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/options.json @@ -2,6 +2,6 @@ "plugins": [ "syntax-async-generators", "proposal-object-rest-spread", - "external-helpers" + ["external-helpers", { "helperVersion": "7.1.5" }] ] } diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/symbol-exec/options.json b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/symbol-exec/options.json index 6e91f57cf54d..9fd3882905b5 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/symbol-exec/options.json +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/symbol-exec/options.json @@ -1,3 +1,3 @@ { - "plugins": [ "transform-destructuring", "proposal-object-rest-spread" ] + "plugins": ["transform-destructuring", "proposal-object-rest-spread"] } diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-spread/loose-mode/options.json b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-spread/loose-mode/options.json index 7f3c40b6a6e8..036ba18ea68f 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-spread/loose-mode/options.json +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-spread/loose-mode/options.json @@ -1,5 +1,3 @@ { - "plugins": [ - ["proposal-object-rest-spread", { "loose": true }] - ] + "plugins": [["proposal-object-rest-spread", { "loose": true }]] } diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-7304/options.json b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-7304/options.json index e1a96432fad4..f236fc3b4ceb 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-7304/options.json +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-7304/options.json @@ -1,14 +1,15 @@ { "presets": [ - ["env", { - "shippedProposals": true, - "targets": { - "node": 8 - }, - "useBuiltIns": "usage" - }] + [ + "env", + { + "shippedProposals": true, + "targets": { + "node": 8 + }, + "useBuiltIns": "usage" + } + ] ], - "plugins": [ - "external-helpers" - ] + "plugins": ["external-helpers"] } diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-8323/input.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-8323/input.js new file mode 100644 index 000000000000..fc0991bbf784 --- /dev/null +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-8323/input.js @@ -0,0 +1,8 @@ +const get = () => { + fireTheMissiles(); + return 3; +}; + +const f = ({ a = get(), b, c, ...z }) => { + const v = b + 3; +}; diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-8323/options.json b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-8323/options.json new file mode 100644 index 000000000000..f51a6dc18aed --- /dev/null +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-8323/options.json @@ -0,0 +1,4 @@ +{ + "presets": [["env", { "targets": { "node": "8" } }]], + "plugins": [["proposal-object-rest-spread", { "loose": true }]] +} diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-8323/output.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-8323/output.js new file mode 100644 index 000000000000..62b6e704ab27 --- /dev/null +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-8323/output.js @@ -0,0 +1,16 @@ +function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } + +const get = () => { + fireTheMissiles(); + return 3; +}; + +const f = (_ref) => { + let { + a = get(), + b + } = _ref, + z = _objectWithoutPropertiesLoose(_ref, ["a", "b", "c"]); + + const v = b + 3; +}; diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/options.json b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/options.json index 87c519b954ef..ba364f44b0cf 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/options.json +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/options.json @@ -1,6 +1,3 @@ { - "plugins": [ - "proposal-object-rest-spread", - "external-helpers" - ] + "plugins": ["proposal-object-rest-spread", "external-helpers"] } diff --git a/packages/babel-plugin-proposal-optional-catch-binding/package.json b/packages/babel-plugin-proposal-optional-catch-binding/package.json index abdb9e31f23a..fd43aef13ae8 100644 --- a/packages/babel-plugin-proposal-optional-catch-binding/package.json +++ b/packages/babel-plugin-proposal-optional-catch-binding/package.json @@ -1,22 +1,25 @@ { "name": "@babel/plugin-proposal-optional-catch-binding", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Compile optional catch bindings", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-proposal-optional-catch-binding", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/plugin-syntax-optional-catch-binding": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-proposal-optional-chaining/package.json b/packages/babel-plugin-proposal-optional-chaining/package.json index c3dd6fb17171..8a32612fc935 100644 --- a/packages/babel-plugin-proposal-optional-chaining/package.json +++ b/packages/babel-plugin-proposal-optional-chaining/package.json @@ -1,23 +1,26 @@ { "name": "@babel/plugin-proposal-optional-chaining", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Transform optional chaining operators into a series of nil checks", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-proposal-optional-chaining", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/plugin-syntax-optional-chaining": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-optional-chaining": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52", - "@babel/plugin-transform-block-scoping": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0", + "@babel/plugin-transform-block-scoping": "^7.0.0" } } diff --git a/packages/babel-plugin-proposal-optional-chaining/test/fixtures/general/function-call-loose/options.json b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/general/function-call-loose/options.json index 31050b6834b3..39ea3f99c7ff 100644 --- a/packages/babel-plugin-proposal-optional-chaining/test/fixtures/general/function-call-loose/options.json +++ b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/general/function-call-loose/options.json @@ -1,3 +1,3 @@ { - "plugins": [["proposal-optional-chaining", {"loose": true}]] + "plugins": [["proposal-optional-chaining", { "loose": true }]] } diff --git a/packages/babel-plugin-proposal-optional-chaining/test/fixtures/general/memoize-loose/options.json b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/general/memoize-loose/options.json index 31050b6834b3..39ea3f99c7ff 100644 --- a/packages/babel-plugin-proposal-optional-chaining/test/fixtures/general/memoize-loose/options.json +++ b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/general/memoize-loose/options.json @@ -1,3 +1,3 @@ { - "plugins": [["proposal-optional-chaining", {"loose": true}]] + "plugins": [["proposal-optional-chaining", { "loose": true }]] } diff --git a/packages/babel-plugin-proposal-pipeline-operator/package.json b/packages/babel-plugin-proposal-pipeline-operator/package.json index 86b144a3afa9..cdd13ef14aef 100644 --- a/packages/babel-plugin-proposal-pipeline-operator/package.json +++ b/packages/babel-plugin-proposal-pipeline-operator/package.json @@ -1,22 +1,25 @@ { "name": "@babel/plugin-proposal-pipeline-operator", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Transform pipeline operator into call expressions", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-proposal-pipeline-operator", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/plugin-syntax-pipeline-operator": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-pipeline-operator": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-proposal-pipeline-operator/test/fixtures/pipeline-operator/options.json b/packages/babel-plugin-proposal-pipeline-operator/test/fixtures/pipeline-operator/options.json index 0a1dc4d01090..ce2c6e0ddcbc 100644 --- a/packages/babel-plugin-proposal-pipeline-operator/test/fixtures/pipeline-operator/options.json +++ b/packages/babel-plugin-proposal-pipeline-operator/test/fixtures/pipeline-operator/options.json @@ -1,5 +1,3 @@ { - "plugins": [ - ["proposal-pipeline-operator", { "proposal": "minimal" }] - ] + "plugins": [["proposal-pipeline-operator", { "proposal": "minimal" }]] } diff --git a/packages/babel-plugin-proposal-throw-expressions/package.json b/packages/babel-plugin-proposal-throw-expressions/package.json index 85815624cf66..453b6b388a42 100644 --- a/packages/babel-plugin-proposal-throw-expressions/package.json +++ b/packages/babel-plugin-proposal-throw-expressions/package.json @@ -1,22 +1,25 @@ { "name": "@babel/plugin-proposal-throw-expressions", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Wraps Throw Expressions in an IIFE", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-proposal-throw-expressions", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/plugin-syntax-throw-expressions": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-throw-expressions": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-proposal-unicode-property-regex/package.json b/packages/babel-plugin-proposal-unicode-property-regex/package.json index 99bd0217f5c3..91eea88bdac8 100644 --- a/packages/babel-plugin-proposal-unicode-property-regex/package.json +++ b/packages/babel-plugin-proposal-unicode-property-regex/package.json @@ -1,9 +1,12 @@ { "name": "@babel/plugin-proposal-unicode-property-regex", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Compile Unicode property escapes in Unicode regular expressions to ES5.", "homepage": "https://babeljs.io/", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "engines": { "node": ">=4" @@ -19,15 +22,15 @@ "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-proposal-unicode-property-regex", "bugs": "https://github.com/babel/babel/issues", "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/helper-regex": "7.0.0-beta.52", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0", "regexpu-core": "^4.2.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-proposal-unicode-property-regex/test/fixtures/with-unicode-flag/options.json b/packages/babel-plugin-proposal-unicode-property-regex/test/fixtures/with-unicode-flag/options.json index 22a50010a450..09f2f73ab89f 100644 --- a/packages/babel-plugin-proposal-unicode-property-regex/test/fixtures/with-unicode-flag/options.json +++ b/packages/babel-plugin-proposal-unicode-property-regex/test/fixtures/with-unicode-flag/options.json @@ -1,7 +1,10 @@ { "plugins": [ - ["proposal-unicode-property-regex", { - "useUnicodeFlag": true - }] + [ + "proposal-unicode-property-regex", + { + "useUnicodeFlag": true + } + ] ] } diff --git a/packages/babel-plugin-proposal-unicode-property-regex/test/fixtures/without-unicode-flag/options.json b/packages/babel-plugin-proposal-unicode-property-regex/test/fixtures/without-unicode-flag/options.json index 755ed1dae517..a78ced443e91 100644 --- a/packages/babel-plugin-proposal-unicode-property-regex/test/fixtures/without-unicode-flag/options.json +++ b/packages/babel-plugin-proposal-unicode-property-regex/test/fixtures/without-unicode-flag/options.json @@ -1,7 +1,10 @@ { "plugins": [ - ["proposal-unicode-property-regex", { - "useUnicodeFlag": false - }] + [ + "proposal-unicode-property-regex", + { + "useUnicodeFlag": false + } + ] ] } diff --git a/packages/babel-plugin-syntax-async-generators/package.json b/packages/babel-plugin-syntax-async-generators/package.json index 1d1a42aa17ee..76d42df80583 100644 --- a/packages/babel-plugin-syntax-async-generators/package.json +++ b/packages/babel-plugin-syntax-async-generators/package.json @@ -1,20 +1,23 @@ { "name": "@babel/plugin-syntax-async-generators", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Allow parsing of async generator functions", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-async-generators", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52" + "@babel/core": "^7.0.0" } } diff --git a/packages/babel-plugin-syntax-bigint/package.json b/packages/babel-plugin-syntax-bigint/package.json index 5c5ab85e854d..bb82f45cc5c2 100644 --- a/packages/babel-plugin-syntax-bigint/package.json +++ b/packages/babel-plugin-syntax-bigint/package.json @@ -1,20 +1,23 @@ { "name": "@babel/plugin-syntax-bigint", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Allow parsing of BigInt literals", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-bigint", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52" + "@babel/core": "^7.0.0" } } diff --git a/packages/babel-plugin-syntax-class-properties/package.json b/packages/babel-plugin-syntax-class-properties/package.json index c9f7e734e46b..6177dcfc6ba3 100644 --- a/packages/babel-plugin-syntax-class-properties/package.json +++ b/packages/babel-plugin-syntax-class-properties/package.json @@ -1,20 +1,23 @@ { "name": "@babel/plugin-syntax-class-properties", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Allow parsing of class properties", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-class-properties", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52" + "@babel/core": "^7.0.0" } } diff --git a/packages/babel-plugin-syntax-decorators/package.json b/packages/babel-plugin-syntax-decorators/package.json index 279541a01b2d..67ab13ed283c 100644 --- a/packages/babel-plugin-syntax-decorators/package.json +++ b/packages/babel-plugin-syntax-decorators/package.json @@ -1,20 +1,23 @@ { "name": "@babel/plugin-syntax-decorators", - "version": "7.0.0-beta.52", + "version": "7.1.0", "description": "Allow parsing of decorators", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-decorators", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52" + "@babel/core": "^7.0.0" } } diff --git a/packages/babel-plugin-syntax-decorators/src/index.js b/packages/babel-plugin-syntax-decorators/src/index.js index 7c2a454c94de..5185a067f992 100644 --- a/packages/babel-plugin-syntax-decorators/src/index.js +++ b/packages/babel-plugin-syntax-decorators/src/index.js @@ -8,16 +8,17 @@ export default declare((api, options) => { throw new Error("'legacy' must be a boolean."); } - if (legacy !== true) { - throw new Error( - "The new decorators proposal is not supported yet." + - ' You must pass the `"legacy": true` option to' + - " @babel/plugin-syntax-decorators", - ); - } - const { decoratorsBeforeExport } = options; - if (decoratorsBeforeExport !== undefined) { + if (decoratorsBeforeExport === undefined) { + if (!legacy) { + throw new Error( + "The '@babel/plugin-syntax-decorators' plugin requires a" + + " 'decoratorsBeforeExport' option, whose value must be a boolean." + + " If you want to use the legacy decorators semantics, you can set" + + " the 'legacy: true' option.", + ); + } + } else { if (legacy) { throw new Error( "'decoratorsBeforeExport' can't be used with legacy decorators.", diff --git a/packages/babel-plugin-syntax-decorators/test/index.js b/packages/babel-plugin-syntax-decorators/test/index.js index 4ff167917240..d84797d7bbf8 100644 --- a/packages/babel-plugin-syntax-decorators/test/index.js +++ b/packages/babel-plugin-syntax-decorators/test/index.js @@ -15,7 +15,7 @@ describe("'legacy' option", function() { expect(makeParser("", { legacy: "legacy" })).toThrow(); }); - test.skip("'legacy': false", function() { + test("'legacy': false", function() { expect(makeParser("({ @dec fn() {} })", { legacy: false })).toThrow(); }); @@ -23,20 +23,20 @@ describe("'legacy' option", function() { expect(makeParser("({ @dec fn() {} })", { legacy: true })).not.toThrow(); }); - test.skip("defaults to 'false'", function() { + test("defaults to 'false'", function() { expect(makeParser("({ @dec fn() {} })", {})).toThrow(); }); - - test("it must be true", function() { - expect(makeParser("", { legacy: false })).toThrow(); - }); }); describe("'decoratorsBeforeExport' option", function() { - test.skip("must be boolean", function() { + test("must be boolean", function() { expect(makeParser("", { decoratorsBeforeExport: "before" })).toThrow(); }); + test.skip("is required", function() { + expect(makeParser("", { legacy: false })).toThrow(/decoratorsBeforeExport/); + }); + test("is incompatible with legacy", function() { expect( makeParser("", { decoratorsBeforeExport: false, legacy: true }), @@ -47,8 +47,6 @@ describe("'decoratorsBeforeExport' option", function() { const AFTER = "export @dec class Foo {}"; // These are skipped - run(BEFORE, undefined, true); - run(AFTER, undefined, false); run(BEFORE, true, false); run(AFTER, true, true); run(BEFORE, false, true); @@ -61,7 +59,7 @@ describe("'decoratorsBeforeExport' option", function() { (code === BEFORE ? "before" : "after") + "export"; - test.skip(name, function() { + test(name, function() { const expectTheParser = expect( makeParser(code, { decoratorsBeforeExport: before }), ); diff --git a/packages/babel-plugin-syntax-do-expressions/package.json b/packages/babel-plugin-syntax-do-expressions/package.json index a0aa1fbd6ab4..6cf5d051c431 100644 --- a/packages/babel-plugin-syntax-do-expressions/package.json +++ b/packages/babel-plugin-syntax-do-expressions/package.json @@ -1,20 +1,23 @@ { "name": "@babel/plugin-syntax-do-expressions", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Allow parsing of do expressions", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-do-expressions", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52" + "@babel/core": "^7.0.0" } } diff --git a/packages/babel-plugin-syntax-dynamic-import/package.json b/packages/babel-plugin-syntax-dynamic-import/package.json index 6f75a7461477..b9fe12424060 100644 --- a/packages/babel-plugin-syntax-dynamic-import/package.json +++ b/packages/babel-plugin-syntax-dynamic-import/package.json @@ -1,20 +1,23 @@ { "name": "@babel/plugin-syntax-dynamic-import", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Allow parsing of import()", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-dynamic-import", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52" + "@babel/core": "^7.0.0" } } diff --git a/packages/babel-plugin-syntax-export-default-from/package.json b/packages/babel-plugin-syntax-export-default-from/package.json index 3777bb5095db..59282ced987f 100644 --- a/packages/babel-plugin-syntax-export-default-from/package.json +++ b/packages/babel-plugin-syntax-export-default-from/package.json @@ -1,20 +1,23 @@ { "name": "@babel/plugin-syntax-export-default-from", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Allow parsing of export default from", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-export-default-from", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52" + "@babel/core": "^7.0.0" } } diff --git a/packages/babel-plugin-syntax-export-namespace-from/package.json b/packages/babel-plugin-syntax-export-namespace-from/package.json index 82ff0390657e..9c6a6a20dc08 100644 --- a/packages/babel-plugin-syntax-export-namespace-from/package.json +++ b/packages/babel-plugin-syntax-export-namespace-from/package.json @@ -1,20 +1,23 @@ { "name": "@babel/plugin-syntax-export-namespace-from", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Allow parsing of export namespace from", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-export-namespace-from", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52" + "@babel/core": "^7.0.0" } } diff --git a/packages/babel-plugin-syntax-flow/package.json b/packages/babel-plugin-syntax-flow/package.json index 8b8e86432d21..409a14de8ff5 100644 --- a/packages/babel-plugin-syntax-flow/package.json +++ b/packages/babel-plugin-syntax-flow/package.json @@ -1,20 +1,23 @@ { "name": "@babel/plugin-syntax-flow", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Allow parsing of the flow syntax", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-flow", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52" + "@babel/core": "^7.0.0" } } diff --git a/packages/babel-plugin-syntax-function-bind/package.json b/packages/babel-plugin-syntax-function-bind/package.json index d1f614488c6c..b1391f57f814 100644 --- a/packages/babel-plugin-syntax-function-bind/package.json +++ b/packages/babel-plugin-syntax-function-bind/package.json @@ -1,20 +1,23 @@ { "name": "@babel/plugin-syntax-function-bind", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Allow parsing of function bind", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-function-bind", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52" + "@babel/core": "^7.0.0" } } diff --git a/packages/babel-plugin-syntax-function-sent/package.json b/packages/babel-plugin-syntax-function-sent/package.json index 64de4fe43571..2b1b6ce7d0dc 100644 --- a/packages/babel-plugin-syntax-function-sent/package.json +++ b/packages/babel-plugin-syntax-function-sent/package.json @@ -1,20 +1,23 @@ { "name": "@babel/plugin-syntax-function-sent", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Allow parsing of the function.sent meta property", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-function-sent", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52" + "@babel/core": "^7.0.0" } } diff --git a/packages/babel-plugin-syntax-import-meta/package.json b/packages/babel-plugin-syntax-import-meta/package.json index 79f63e81a53e..95482ff5a62e 100644 --- a/packages/babel-plugin-syntax-import-meta/package.json +++ b/packages/babel-plugin-syntax-import-meta/package.json @@ -1,20 +1,23 @@ { "name": "@babel/plugin-syntax-import-meta", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Allow parsing of import.meta", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-import-meta", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52" + "@babel/core": "^7.0.0" } } diff --git a/packages/babel-plugin-syntax-json-strings/package.json b/packages/babel-plugin-syntax-json-strings/package.json index 942e71ec4315..807e4a45b55b 100644 --- a/packages/babel-plugin-syntax-json-strings/package.json +++ b/packages/babel-plugin-syntax-json-strings/package.json @@ -1,20 +1,23 @@ { "name": "@babel/plugin-syntax-json-strings", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Allow parsing of the U+2028 LINE SEPARATOR and U+2029 PARAGRAPH SEPARATOR in JS strings", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-json-strings", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52" + "@babel/core": "^7.0.0" } } diff --git a/packages/babel-plugin-syntax-jsx/package.json b/packages/babel-plugin-syntax-jsx/package.json index 3960863d794f..f574ff3289e4 100644 --- a/packages/babel-plugin-syntax-jsx/package.json +++ b/packages/babel-plugin-syntax-jsx/package.json @@ -1,20 +1,23 @@ { "name": "@babel/plugin-syntax-jsx", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Allow parsing of jsx", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-jsx", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52" + "@babel/core": "^7.0.0" } } diff --git a/packages/babel-plugin-syntax-logical-assignment-operators/package.json b/packages/babel-plugin-syntax-logical-assignment-operators/package.json index f4ca6896b66d..5d0520e9ef36 100644 --- a/packages/babel-plugin-syntax-logical-assignment-operators/package.json +++ b/packages/babel-plugin-syntax-logical-assignment-operators/package.json @@ -1,20 +1,23 @@ { "name": "@babel/plugin-syntax-logical-assignment-operators", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Allow parsing of the logical assignment operators", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-logical-assignment-operators", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52" + "@babel/core": "^7.0.0" } } diff --git a/packages/babel-plugin-syntax-nullish-coalescing-operator/package.json b/packages/babel-plugin-syntax-nullish-coalescing-operator/package.json index e91c936914df..c95bee00597a 100644 --- a/packages/babel-plugin-syntax-nullish-coalescing-operator/package.json +++ b/packages/babel-plugin-syntax-nullish-coalescing-operator/package.json @@ -1,20 +1,23 @@ { "name": "@babel/plugin-syntax-nullish-coalescing-operator", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Allow parsing of the nullish-coalescing operator", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-nullish-coalescing-operator", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52" + "@babel/core": "^7.0.0" } } diff --git a/packages/babel-plugin-syntax-numeric-separator/package.json b/packages/babel-plugin-syntax-numeric-separator/package.json index 4ecc73e6dcf1..884336533364 100644 --- a/packages/babel-plugin-syntax-numeric-separator/package.json +++ b/packages/babel-plugin-syntax-numeric-separator/package.json @@ -1,20 +1,23 @@ { "name": "@babel/plugin-syntax-numeric-separator", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Allow parsing of Decimal, Binary, Hex and Octal literals that contain a Numeric Literal Separator", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-numeric-separator", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52" + "@babel/core": "^7.0.0" } } diff --git a/packages/babel-plugin-syntax-object-rest-spread/package.json b/packages/babel-plugin-syntax-object-rest-spread/package.json index cbe46ecfb874..19ca84f4d879 100644 --- a/packages/babel-plugin-syntax-object-rest-spread/package.json +++ b/packages/babel-plugin-syntax-object-rest-spread/package.json @@ -1,20 +1,23 @@ { "name": "@babel/plugin-syntax-object-rest-spread", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Allow parsing of object rest/spread", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-object-rest-spread", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52" + "@babel/core": "^7.0.0" } } diff --git a/packages/babel-plugin-syntax-optional-catch-binding/package.json b/packages/babel-plugin-syntax-optional-catch-binding/package.json index f890870d08cf..4888105a3c4e 100644 --- a/packages/babel-plugin-syntax-optional-catch-binding/package.json +++ b/packages/babel-plugin-syntax-optional-catch-binding/package.json @@ -1,20 +1,23 @@ { "name": "@babel/plugin-syntax-optional-catch-binding", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Allow parsing of optional catch bindings", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-optional-catch-binding", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52" + "@babel/core": "^7.0.0" } } diff --git a/packages/babel-plugin-syntax-optional-chaining/package.json b/packages/babel-plugin-syntax-optional-chaining/package.json index 59d54c8cb848..59927aeeacb4 100644 --- a/packages/babel-plugin-syntax-optional-chaining/package.json +++ b/packages/babel-plugin-syntax-optional-chaining/package.json @@ -1,20 +1,23 @@ { "name": "@babel/plugin-syntax-optional-chaining", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Allow parsing of optional properties", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-optional-chaining", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52" + "@babel/core": "^7.0.0" } } diff --git a/packages/babel-plugin-syntax-pipeline-operator/package.json b/packages/babel-plugin-syntax-pipeline-operator/package.json index 9a70ecec997a..a456a64e55c0 100644 --- a/packages/babel-plugin-syntax-pipeline-operator/package.json +++ b/packages/babel-plugin-syntax-pipeline-operator/package.json @@ -1,20 +1,23 @@ { "name": "@babel/plugin-syntax-pipeline-operator", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Allow parsing of the pipeline operator", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-pipeline-operator", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52" + "@babel/core": "^7.0.0" } } diff --git a/packages/babel-plugin-syntax-throw-expressions/package.json b/packages/babel-plugin-syntax-throw-expressions/package.json index 9eb6db0974f0..775c233027d5 100644 --- a/packages/babel-plugin-syntax-throw-expressions/package.json +++ b/packages/babel-plugin-syntax-throw-expressions/package.json @@ -1,20 +1,23 @@ { "name": "@babel/plugin-syntax-throw-expressions", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Allow parsing of Throw Expressions", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-throw-expressions", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52" + "@babel/core": "^7.0.0" } } diff --git a/packages/babel-plugin-syntax-typescript/package.json b/packages/babel-plugin-syntax-typescript/package.json index 8031d23b8fdd..b87262f0ba74 100644 --- a/packages/babel-plugin-syntax-typescript/package.json +++ b/packages/babel-plugin-syntax-typescript/package.json @@ -1,21 +1,24 @@ { "name": "@babel/plugin-syntax-typescript", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Allow parsing of TypeScript syntax", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-typescript", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin", "typescript" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52" + "@babel/core": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-arrow-functions/package.json b/packages/babel-plugin-transform-arrow-functions/package.json index a887c4ee0880..ad3838f45941 100644 --- a/packages/babel-plugin-transform-arrow-functions/package.json +++ b/packages/babel-plugin-transform-arrow-functions/package.json @@ -1,22 +1,25 @@ { "name": "@babel/plugin-transform-arrow-functions", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Compile ES2015 arrow functions to ES5", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-arrow-functions", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52", - "@babel/traverse": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0", + "@babel/traverse": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-arrow-functions/test/fixtures/arrow-functions/destructuring-parameters/options.json b/packages/babel-plugin-transform-arrow-functions/test/fixtures/arrow-functions/destructuring-parameters/options.json index b8b142e856ed..f4a63e2537b3 100644 --- a/packages/babel-plugin-transform-arrow-functions/test/fixtures/arrow-functions/destructuring-parameters/options.json +++ b/packages/babel-plugin-transform-arrow-functions/test/fixtures/arrow-functions/destructuring-parameters/options.json @@ -1,3 +1,7 @@ { - "plugins": ["transform-destructuring", "transform-parameters", "transform-arrow-functions"] + "plugins": [ + "transform-destructuring", + "transform-parameters", + "transform-arrow-functions" + ] } diff --git a/packages/babel-plugin-transform-arrow-functions/test/fixtures/arrow-functions/self-referential/options.json b/packages/babel-plugin-transform-arrow-functions/test/fixtures/arrow-functions/self-referential/options.json index 476e663a3ff6..925d855b5e3d 100644 --- a/packages/babel-plugin-transform-arrow-functions/test/fixtures/arrow-functions/self-referential/options.json +++ b/packages/babel-plugin-transform-arrow-functions/test/fixtures/arrow-functions/self-referential/options.json @@ -1,3 +1,7 @@ { - "plugins": ["external-helpers", ["transform-arrow-functions", { "spec": false }], "transform-function-name"] + "plugins": [ + "external-helpers", + ["transform-arrow-functions", { "spec": false }], + "transform-function-name" + ] } diff --git a/packages/babel-plugin-transform-arrow-functions/test/fixtures/arrow-functions/spec-naming/options.json b/packages/babel-plugin-transform-arrow-functions/test/fixtures/arrow-functions/spec-naming/options.json index 942b61bd061b..50c8c58f0c9a 100644 --- a/packages/babel-plugin-transform-arrow-functions/test/fixtures/arrow-functions/spec-naming/options.json +++ b/packages/babel-plugin-transform-arrow-functions/test/fixtures/arrow-functions/spec-naming/options.json @@ -1,3 +1,6 @@ { - "plugins": ["external-helpers", ["transform-arrow-functions", { "spec": true }]] + "plugins": [ + "external-helpers", + ["transform-arrow-functions", { "spec": true }] + ] } diff --git a/packages/babel-plugin-transform-arrow-functions/test/fixtures/arrow-functions/spec-self-referential/options.json b/packages/babel-plugin-transform-arrow-functions/test/fixtures/arrow-functions/spec-self-referential/options.json index 660f9d7503f6..edcdc8224cda 100644 --- a/packages/babel-plugin-transform-arrow-functions/test/fixtures/arrow-functions/spec-self-referential/options.json +++ b/packages/babel-plugin-transform-arrow-functions/test/fixtures/arrow-functions/spec-self-referential/options.json @@ -1,3 +1,7 @@ { - "plugins": ["external-helpers", ["transform-arrow-functions", { "spec": true }], "transform-function-name"] + "plugins": [ + "external-helpers", + ["transform-arrow-functions", { "spec": true }], + "transform-function-name" + ] } diff --git a/packages/babel-plugin-transform-arrow-functions/test/fixtures/arrow-functions/spec/options.json b/packages/babel-plugin-transform-arrow-functions/test/fixtures/arrow-functions/spec/options.json index 942b61bd061b..50c8c58f0c9a 100644 --- a/packages/babel-plugin-transform-arrow-functions/test/fixtures/arrow-functions/spec/options.json +++ b/packages/babel-plugin-transform-arrow-functions/test/fixtures/arrow-functions/spec/options.json @@ -1,3 +1,6 @@ { - "plugins": ["external-helpers", ["transform-arrow-functions", { "spec": true }]] + "plugins": [ + "external-helpers", + ["transform-arrow-functions", { "spec": true }] + ] } diff --git a/packages/babel-plugin-transform-async-to-generator/package.json b/packages/babel-plugin-transform-async-to-generator/package.json index 77a246b1f925..0c33ab5d28bb 100644 --- a/packages/babel-plugin-transform-async-to-generator/package.json +++ b/packages/babel-plugin-transform-async-to-generator/package.json @@ -1,23 +1,26 @@ { "name": "@babel/plugin-transform-async-to-generator", - "version": "7.0.0-beta.52", + "version": "7.1.0", "description": "Turn async functions into ES2015 generators", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-async-to-generator", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-module-imports": "7.0.0-beta.52", - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/helper-remap-async-to-generator": "7.0.0-beta.52" + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.1.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/async-iife-with-regenerator-spec/options.json b/packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/async-iife-with-regenerator-spec/options.json index 6eae66283136..cf84ec89ad9b 100644 --- a/packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/async-iife-with-regenerator-spec/options.json +++ b/packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/async-iife-with-regenerator-spec/options.json @@ -1,8 +1,8 @@ { - "plugins": [ - ["transform-arrow-functions", { "spec": true }], - "transform-regenerator", - "transform-async-to-generator", - "external-helpers" - ] + "plugins": [ + ["transform-arrow-functions", { "spec": true }], + "transform-regenerator", + "transform-async-to-generator", + "external-helpers" + ] } diff --git a/packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/async-iife-with-regenerator/options.json b/packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/async-iife-with-regenerator/options.json index d924af2adfde..6d8f7fa0e077 100644 --- a/packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/async-iife-with-regenerator/options.json +++ b/packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/async-iife-with-regenerator/options.json @@ -1,8 +1,8 @@ { - "plugins": [ - "transform-arrow-functions", - "transform-regenerator", - "transform-async-to-generator", - "external-helpers" - ] + "plugins": [ + "transform-arrow-functions", + "transform-regenerator", + "transform-async-to-generator", + "external-helpers" + ] } diff --git a/packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/function-arity/options.json b/packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/function-arity/options.json index 2373e1598fb3..93f5d722d837 100644 --- a/packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/function-arity/options.json +++ b/packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/function-arity/options.json @@ -1,6 +1,3 @@ { - "plugins": [ - "transform-async-to-generator", - "external-helpers" - ] -} \ No newline at end of file + "plugins": ["transform-async-to-generator", "external-helpers"] +} diff --git a/packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/object-method-with-super/options.json b/packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/object-method-with-super/options.json index 791b2759290c..93f5d722d837 100644 --- a/packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/object-method-with-super/options.json +++ b/packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/object-method-with-super/options.json @@ -1,6 +1,3 @@ { - "plugins": [ - "transform-async-to-generator", - "external-helpers" - ] + "plugins": ["transform-async-to-generator", "external-helpers"] } diff --git a/packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/shadowed-promise-import/options.json b/packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/shadowed-promise-import/options.json index 84679ca3cf18..0d67235e873c 100644 --- a/packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/shadowed-promise-import/options.json +++ b/packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/shadowed-promise-import/options.json @@ -1,5 +1,3 @@ { - "plugins": [ - "transform-async-to-generator" - ] + "plugins": ["transform-async-to-generator"] } diff --git a/packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/shadowed-promise-nested/options.json b/packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/shadowed-promise-nested/options.json index 84679ca3cf18..0d67235e873c 100644 --- a/packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/shadowed-promise-nested/options.json +++ b/packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/shadowed-promise-nested/options.json @@ -1,5 +1,3 @@ { - "plugins": [ - "transform-async-to-generator" - ] + "plugins": ["transform-async-to-generator"] } diff --git a/packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/shadowed-promise/options.json b/packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/shadowed-promise/options.json index 84679ca3cf18..0d67235e873c 100644 --- a/packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/shadowed-promise/options.json +++ b/packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/shadowed-promise/options.json @@ -1,5 +1,3 @@ { - "plugins": [ - "transform-async-to-generator" - ] + "plugins": ["transform-async-to-generator"] } diff --git a/packages/babel-plugin-transform-async-to-generator/test/fixtures/bluebird-coroutines/options.json b/packages/babel-plugin-transform-async-to-generator/test/fixtures/bluebird-coroutines/options.json index f178c0253e31..a5852f1fd476 100644 --- a/packages/babel-plugin-transform-async-to-generator/test/fixtures/bluebird-coroutines/options.json +++ b/packages/babel-plugin-transform-async-to-generator/test/fixtures/bluebird-coroutines/options.json @@ -1,9 +1,12 @@ { "plugins": [ "external-helpers", - ["transform-async-to-generator", { - "module": "bluebird", - "method": "coroutine" - }] + [ + "transform-async-to-generator", + { + "module": "bluebird", + "method": "coroutine" + } + ] ] } diff --git a/packages/babel-plugin-transform-async-to-generator/test/fixtures/export-async/options.json b/packages/babel-plugin-transform-async-to-generator/test/fixtures/export-async/options.json index f8294ae93a73..b6ae56ff6d68 100644 --- a/packages/babel-plugin-transform-async-to-generator/test/fixtures/export-async/options.json +++ b/packages/babel-plugin-transform-async-to-generator/test/fixtures/export-async/options.json @@ -1,3 +1,7 @@ { - "plugins": ["external-helpers", "transform-modules-commonjs", "transform-async-to-generator"] + "plugins": [ + "external-helpers", + "transform-modules-commonjs", + "transform-async-to-generator" + ] } diff --git a/packages/babel-plugin-transform-async-to-generator/test/fixtures/regression/gh-6923/options.json b/packages/babel-plugin-transform-async-to-generator/test/fixtures/regression/gh-6923/options.json index 6f43f7581b1b..e1a1dd1ff2b3 100644 --- a/packages/babel-plugin-transform-async-to-generator/test/fixtures/regression/gh-6923/options.json +++ b/packages/babel-plugin-transform-async-to-generator/test/fixtures/regression/gh-6923/options.json @@ -1,12 +1,15 @@ { "presets": [ - ["env", { - "targets": { - "chrome": "62", - "edge": "15", - "firefox": "52", - "safari": "11" + [ + "env", + { + "targets": { + "chrome": "62", + "edge": "15", + "firefox": "52", + "safari": "11" + } } - }] + ] ] -} \ No newline at end of file +} diff --git a/packages/babel-plugin-transform-async-to-generator/test/fixtures/regression/options.json b/packages/babel-plugin-transform-async-to-generator/test/fixtures/regression/options.json index 6b5744a91814..54b64ad0fba0 100644 --- a/packages/babel-plugin-transform-async-to-generator/test/fixtures/regression/options.json +++ b/packages/babel-plugin-transform-async-to-generator/test/fixtures/regression/options.json @@ -1,6 +1,3 @@ { - "plugins": [ - "external-helpers", - "transform-async-to-generator" - ] + "plugins": ["external-helpers", "transform-async-to-generator"] } diff --git a/packages/babel-plugin-transform-block-scoped-functions/package.json b/packages/babel-plugin-transform-block-scoped-functions/package.json index ac38399a05ef..13203de4296e 100644 --- a/packages/babel-plugin-transform-block-scoped-functions/package.json +++ b/packages/babel-plugin-transform-block-scoped-functions/package.json @@ -1,21 +1,24 @@ { "name": "@babel/plugin-transform-block-scoped-functions", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Babel plugin to ensure function declarations at the block level are block scoped", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-block-scoped-functions", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-block-scoping/package.json b/packages/babel-plugin-transform-block-scoping/package.json index c9f533b2a9a6..a0af9db80ef7 100644 --- a/packages/babel-plugin-transform-block-scoping/package.json +++ b/packages/babel-plugin-transform-block-scoping/package.json @@ -1,22 +1,25 @@ { "name": "@babel/plugin-transform-block-scoping", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Compile ES2015 block scoping (const and let) to ES5", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-block-scoping", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "lodash": "^4.17.5" + "@babel/helper-plugin-utils": "^7.0.0", + "lodash": "^4.17.10" }, "keywords": [ "babel-plugin" ], "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-block-scoping/src/index.js b/packages/babel-plugin-transform-block-scoping/src/index.js index 560368cf0fbf..a72bd1a28e3b 100644 --- a/packages/babel-plugin-transform-block-scoping/src/index.js +++ b/packages/babel-plugin-transform-block-scoping/src/index.js @@ -289,7 +289,7 @@ const loopVisitor = { }, "BreakStatement|ContinueStatement|ReturnStatement"(path, state) { - const { node, parent, scope } = path; + const { node, scope } = path; if (node[this.LOOP_IGNORE]) return; let replace; @@ -309,7 +309,7 @@ const loopVisitor = { if (state.ignoreLabeless) return; // break statements mean something different in this context - if (t.isBreakStatement(node) && t.isSwitchCase(parent)) return; + if (t.isBreakStatement(node) && state.inSwitchCase) return; } state.hasBreakContinue = true; @@ -460,7 +460,9 @@ class BlockScoping { remap() { const letRefs = this.letReferences; + const outsideLetRefs = this.outsideLetReferences; const scope = this.scope; + const blockPathScope = this.blockPath.scope; // alright, so since we aren't wrapping this block in a closure // we have to check if any of our let variables collide with @@ -481,11 +483,20 @@ class BlockScoping { scope.rename(ref.name); } - if (this.blockPath.scope.hasOwnBinding(key)) { - this.blockPath.scope.rename(ref.name); + if (blockPathScope.hasOwnBinding(key)) { + blockPathScope.rename(ref.name); } } } + + for (const key in outsideLetRefs) { + const ref = letRefs[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)) { + blockPathScope.rename(ref.name); + } + } } wrapClosure() { diff --git a/packages/babel-plugin-transform-block-scoping/test/fixtures/.fail/options.json b/packages/babel-plugin-transform-block-scoping/test/fixtures/.fail/options.json index 98d224a2a395..8f3a07a3635f 100644 --- a/packages/babel-plugin-transform-block-scoping/test/fixtures/.fail/options.json +++ b/packages/babel-plugin-transform-block-scoping/test/fixtures/.fail/options.json @@ -1,4 +1,9 @@ { - "plugins": ["transform-block-scoping", "transform-parameters", "transform-destructuring", "transform-modules-commonjs"], + "plugins": [ + "transform-block-scoping", + "transform-parameters", + "transform-destructuring", + "transform-modules-commonjs" + ], "throws": "is not defined - temporal dead zone" } diff --git a/packages/babel-plugin-transform-block-scoping/test/fixtures/exec/options.json b/packages/babel-plugin-transform-block-scoping/test/fixtures/exec/options.json index effa53fbb06e..cca3c7921585 100644 --- a/packages/babel-plugin-transform-block-scoping/test/fixtures/exec/options.json +++ b/packages/babel-plugin-transform-block-scoping/test/fixtures/exec/options.json @@ -1,3 +1,8 @@ { - "plugins": ["transform-for-of", "transform-arrow-functions", "transform-destructuring", "transform-block-scoping"] + "plugins": [ + "transform-for-of", + "transform-arrow-functions", + "transform-destructuring", + "transform-block-scoping" + ] } diff --git a/packages/babel-plugin-transform-block-scoping/test/fixtures/exec/switch-labeled-break.js b/packages/babel-plugin-transform-block-scoping/test/fixtures/exec/switch-labeled-break.js new file mode 100644 index 000000000000..a81996184293 --- /dev/null +++ b/packages/babel-plugin-transform-block-scoping/test/fixtures/exec/switch-labeled-break.js @@ -0,0 +1,14 @@ +// it shouldn't break on a case-break statement +var i; +the_loop: for (i = 0; i < 10; i++) { + switch (i) { + case 3: { + break the_loop; + } + } + + const z = 3; // to force the plugin to convert to loop function call + () => z; +} + +expect(i).toBe(3); diff --git a/packages/babel-plugin-transform-block-scoping/test/fixtures/general/block-inside-switch-inside-loop/exec.js b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/block-inside-switch-inside-loop/exec.js new file mode 100644 index 000000000000..6ab05df0697c --- /dev/null +++ b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/block-inside-switch-inside-loop/exec.js @@ -0,0 +1,51 @@ +// it shouldn't break on a case-break statement +var i; +for (i = 0; i < 10; i++) { + switch (i) { + case 1: { + break; + } + } + + const z = 3; // to force the plugin to convert to loop function call + () => z; +} + +expect(i).toBe(10); + +// it should continue on continue statements within switch +var j = 0; +for (i = 0; i < 10; i++) { + switch (i) { + case 0: { + continue; + } + } + j++; + + const z = 3; + () => z; +} + +expect(j).toBe(9); + +// it should work with loops nested within switch +j = 0; +for (i = 0; i < 10; i++) { + switch (i) { + case 0: { + for (var k = 0; k < 10; k++) { + const z = 3; + () => z; + j++; + break; + } + break; + } + } + + const z = 3; + () => z; +} + +expect(j).toBe(1); diff --git a/packages/babel-plugin-transform-block-scoping/test/fixtures/general/block-inside-switch-inside-loop/input.js b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/block-inside-switch-inside-loop/input.js new file mode 100644 index 000000000000..39e162890d03 --- /dev/null +++ b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/block-inside-switch-inside-loop/input.js @@ -0,0 +1,48 @@ +// it shouldn't break on a case-break statement +var i; +for (i = 0; i < 10; i++) { + switch (i) { + case 1: + break; + } + + const z = 3; // to force the plugin to convert to loop function call + () => z; +} + +expect(i).toBe(10); + +// it should continue on continue statements within switch +var j = 0; +for (i = 0; i < 10; i++) { + switch (i) { + case 0: + continue; + } + j++; + + const z = 3; + () => z; +} + +expect(j).toBe(9); + +// it should work with loops nested within switch +j = 0; +for (i = 0; i < 10; i++) { + switch (i) { + case 0: + for (var k = 0; k < 10; k++) { + const z = 3; + () => z; + j++; + break; + } + break; + } + + const z = 3; + () => z; +} + +expect(j).toBe(1); diff --git a/packages/babel-plugin-transform-block-scoping/test/fixtures/general/block-inside-switch-inside-loop/output.js b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/block-inside-switch-inside-loop/output.js new file mode 100644 index 000000000000..2e502dabfae3 --- /dev/null +++ b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/block-inside-switch-inside-loop/output.js @@ -0,0 +1,85 @@ +// it shouldn't break on a case-break statement +var i; + +var _loop = function () { + switch (i) { + case 1: + break; + } + + var z = 3; // to force the plugin to convert to loop function call + + (function () { + return z; + }); +}; + +for (i = 0; i < 10; i++) { + _loop(); +} + +expect(i).toBe(10); // it should continue on continue statements within switch + +var j = 0; + +var _loop2 = function () { + switch (i) { + case 0: + return "continue"; + } + + j++; + var z = 3; + + (function () { + return z; + }); +}; + +for (i = 0; i < 10; i++) { + var _ret = _loop2(); + + if (_ret === "continue") continue; +} + +expect(j).toBe(9); // it should work with loops nested within switch + +j = 0; + +var _loop3 = function () { + switch (i) { + case 0: + var _loop4 = function () { + var z = 3; + + (function () { + return z; + }); + + j++; + return "break"; + }; + + for (k = 0; k < 10; k++) { + var _ret2 = _loop4(); + + if (_ret2 === "break") break; + } + + break; + } + + var z = 3; + + (function () { + return z; + }); +}; + +for (i = 0; i < 10; i++) { + var k; + + _loop3(); +} + +expect(j).toBe(1); diff --git a/packages/babel-plugin-transform-block-scoping/test/fixtures/general/hoisting/options.json b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/hoisting/options.json index 86250d3fcd22..c1b2fe494b7f 100644 --- a/packages/babel-plugin-transform-block-scoping/test/fixtures/general/hoisting/options.json +++ b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/hoisting/options.json @@ -1,3 +1,9 @@ { - "plugins": ["transform-block-scoping", "syntax-jsx", "transform-react-jsx", "transform-block-scoped-functions", "transform-for-of"] + "plugins": [ + "transform-block-scoping", + "syntax-jsx", + "transform-react-jsx", + "transform-block-scoped-functions", + "transform-for-of" + ] } diff --git a/packages/babel-plugin-transform-block-scoping/test/fixtures/general/issue-8498-loop-init-collision-destructuring/input.js b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/issue-8498-loop-init-collision-destructuring/input.js new file mode 100644 index 000000000000..7d59ce437b19 --- /dev/null +++ b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/issue-8498-loop-init-collision-destructuring/input.js @@ -0,0 +1,7 @@ +for (let a, { b } = {};;) { + let a, { b } = {}; + + { + let a, { b } = {}; + } +} diff --git a/packages/babel-plugin-transform-block-scoping/test/fixtures/general/issue-8498-loop-init-collision-destructuring/options.json b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/issue-8498-loop-init-collision-destructuring/options.json new file mode 100644 index 000000000000..9df3780bbc43 --- /dev/null +++ b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/issue-8498-loop-init-collision-destructuring/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-destructuring", "transform-block-scoping"] +} diff --git a/packages/babel-plugin-transform-block-scoping/test/fixtures/general/issue-8498-loop-init-collision-destructuring/output.js b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/issue-8498-loop-init-collision-destructuring/output.js new file mode 100644 index 000000000000..d69de3a075a2 --- /dev/null +++ b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/issue-8498-loop-init-collision-destructuring/output.js @@ -0,0 +1,11 @@ +for (var a, _ref = {}, b = _ref.b;;) { + var _a = void 0, + _ref2 = {}, + _b = _ref2.b; + + { + var _a2 = void 0, + _ref3 = {}, + _b2 = _ref3.b; + } +} diff --git a/packages/babel-plugin-transform-block-scoping/test/fixtures/general/issue-8498-loop-init-collision/input.js b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/issue-8498-loop-init-collision/input.js new file mode 100644 index 000000000000..9a2f0f21ecde --- /dev/null +++ b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/issue-8498-loop-init-collision/input.js @@ -0,0 +1,8 @@ +for (let i = 0; i < 3; i++) { + let i = 'abc'; + console.log(i); + + { + let i = "hello"; + } +} diff --git a/packages/babel-plugin-transform-block-scoping/test/fixtures/general/issue-8498-loop-init-collision/output.js b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/issue-8498-loop-init-collision/output.js new file mode 100644 index 000000000000..a08721ee5e33 --- /dev/null +++ b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/issue-8498-loop-init-collision/output.js @@ -0,0 +1,7 @@ +for (var i = 0; i < 3; i++) { + var _i = 'abc'; + console.log(_i); + { + var _i2 = "hello"; + } +} diff --git a/packages/babel-plugin-transform-block-scoping/test/fixtures/general/options.json b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/options.json index 4e3ea80c6b82..d480b6d0abae 100644 --- a/packages/babel-plugin-transform-block-scoping/test/fixtures/general/options.json +++ b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/options.json @@ -1,3 +1,9 @@ { - "plugins": ["transform-block-scoping", "syntax-jsx", "transform-react-jsx", "transform-block-scoped-functions", "transform-arrow-functions"] + "plugins": [ + "transform-block-scoping", + "syntax-jsx", + "transform-react-jsx", + "transform-block-scoped-functions", + "transform-arrow-functions" + ] } diff --git a/packages/babel-plugin-transform-block-scoping/test/fixtures/pass/options.json b/packages/babel-plugin-transform-block-scoping/test/fixtures/pass/options.json index 3d39d4c9aca6..a08731896b06 100644 --- a/packages/babel-plugin-transform-block-scoping/test/fixtures/pass/options.json +++ b/packages/babel-plugin-transform-block-scoping/test/fixtures/pass/options.json @@ -1,3 +1,8 @@ { - "plugins": ["transform-block-scoping", "transform-parameters", "transform-destructuring", "transform-modules-commonjs"] + "plugins": [ + "transform-block-scoping", + "transform-parameters", + "transform-destructuring", + "transform-modules-commonjs" + ] } diff --git a/packages/babel-plugin-transform-block-scoping/test/fixtures/tdz/block-ref-function-call/options.json b/packages/babel-plugin-transform-block-scoping/test/fixtures/tdz/block-ref-function-call/options.json index d121887b64f1..7a63bc19c6c6 100644 --- a/packages/babel-plugin-transform-block-scoping/test/fixtures/tdz/block-ref-function-call/options.json +++ b/packages/babel-plugin-transform-block-scoping/test/fixtures/tdz/block-ref-function-call/options.json @@ -1,3 +1,3 @@ { - "throws": "f is not defined - temporal dead zone" + "throws": "f is not defined - temporal dead zone" } diff --git a/packages/babel-plugin-transform-block-scoping/test/fixtures/tdz/destructured-self-reference/options.json b/packages/babel-plugin-transform-block-scoping/test/fixtures/tdz/destructured-self-reference/options.json index 3aaa2434ab91..e727ad851d25 100644 --- a/packages/babel-plugin-transform-block-scoping/test/fixtures/tdz/destructured-self-reference/options.json +++ b/packages/babel-plugin-transform-block-scoping/test/fixtures/tdz/destructured-self-reference/options.json @@ -1,3 +1,3 @@ { - "throws": "d is not defined - temporal dead zone" + "throws": "d is not defined - temporal dead zone" } diff --git a/packages/babel-plugin-transform-block-scoping/test/fixtures/tdz/options.json b/packages/babel-plugin-transform-block-scoping/test/fixtures/tdz/options.json index e2bba884adab..07942e513ebc 100644 --- a/packages/babel-plugin-transform-block-scoping/test/fixtures/tdz/options.json +++ b/packages/babel-plugin-transform-block-scoping/test/fixtures/tdz/options.json @@ -1,3 +1,3 @@ { - "plugins": [["transform-block-scoping",{"tdz": true}]] + "plugins": [["transform-block-scoping", { "tdz": true }]] } diff --git a/packages/babel-plugin-transform-block-scoping/test/fixtures/tdz/self-reference/options.json b/packages/babel-plugin-transform-block-scoping/test/fixtures/tdz/self-reference/options.json index 1ed16a0c1856..9bf6222fbc72 100644 --- a/packages/babel-plugin-transform-block-scoping/test/fixtures/tdz/self-reference/options.json +++ b/packages/babel-plugin-transform-block-scoping/test/fixtures/tdz/self-reference/options.json @@ -1,3 +1,3 @@ { - "throws": "x is not defined - temporal dead zone" + "throws": "x is not defined - temporal dead zone" } diff --git a/packages/babel-plugin-transform-block-scoping/test/fixtures/tdz/shadow-outer-var/options.json b/packages/babel-plugin-transform-block-scoping/test/fixtures/tdz/shadow-outer-var/options.json index 57b4f10104a2..c97e0b72d066 100644 --- a/packages/babel-plugin-transform-block-scoping/test/fixtures/tdz/shadow-outer-var/options.json +++ b/packages/babel-plugin-transform-block-scoping/test/fixtures/tdz/shadow-outer-var/options.json @@ -1,3 +1,3 @@ { - "throws": "a is not defined - temporal dead zone" + "throws": "a is not defined - temporal dead zone" } diff --git a/packages/babel-plugin-transform-block-scoping/test/fixtures/tdz/simple-reference/options.json b/packages/babel-plugin-transform-block-scoping/test/fixtures/tdz/simple-reference/options.json index 8a451235db65..7983b3617563 100644 --- a/packages/babel-plugin-transform-block-scoping/test/fixtures/tdz/simple-reference/options.json +++ b/packages/babel-plugin-transform-block-scoping/test/fixtures/tdz/simple-reference/options.json @@ -1,3 +1,3 @@ { - "throws": "i is not defined - temporal dead zone" + "throws": "i is not defined - temporal dead zone" } diff --git a/packages/babel-plugin-transform-classes/package.json b/packages/babel-plugin-transform-classes/package.json index dab636137ebb..0aa40aaeadad 100644 --- a/packages/babel-plugin-transform-classes/package.json +++ b/packages/babel-plugin-transform-classes/package.json @@ -1,28 +1,31 @@ { "name": "@babel/plugin-transform-classes", - "version": "7.0.0-beta.52", + "version": "7.1.0", "description": "Compile ES2015 classes to ES5", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-classes", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "dependencies": { - "@babel/helper-annotate-as-pure": "7.0.0-beta.52", - "@babel/helper-define-map": "7.0.0-beta.52", - "@babel/helper-function-name": "7.0.0-beta.52", - "@babel/helper-optimise-call-expression": "7.0.0-beta.52", - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/helper-replace-supers": "7.0.0-beta.52", - "@babel/helper-split-export-declaration": "7.0.0-beta.52", + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-define-map": "^7.1.0", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", "globals": "^11.1.0" }, "keywords": [ "babel-plugin" ], "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-classes/src/lib/memoise-decorators.js b/packages/babel-plugin-transform-classes/src/lib/memoise-decorators.js deleted file mode 100644 index 40f258f53214..000000000000 --- a/packages/babel-plugin-transform-classes/src/lib/memoise-decorators.js +++ /dev/null @@ -1,42 +0,0 @@ -import type { Scope } from "@babel/traverse"; -import { types as t } from "@babel/core"; - -export default function( - decorators: Array, - scope: Scope, -): Array { - for (const decorator of decorators) { - const expression = decorator.expression; - if (!t.isMemberExpression(expression)) continue; - - const temp = scope.maybeGenerateMemoised(expression.object); - let ref; - - const nodes = []; - - if (temp) { - ref = temp; - nodes.push(t.assignmentExpression("=", temp, expression.object)); - } else { - ref = expression.object; - } - - nodes.push( - t.callExpression( - t.memberExpression( - t.memberExpression(ref, expression.property, expression.computed), - t.identifier("bind"), - ), - [ref], - ), - ); - - if (nodes.length === 1) { - decorator.expression = nodes[0]; - } else { - decorator.expression = t.sequenceExpression(nodes); - } - } - - return decorators; -} diff --git a/packages/babel-plugin-transform-classes/test/fixtures/exec/options.json b/packages/babel-plugin-transform-classes/test/fixtures/exec/options.json index cee9d5b8a717..055fdcded20e 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/exec/options.json +++ b/packages/babel-plugin-transform-classes/test/fixtures/exec/options.json @@ -1,3 +1,7 @@ { - "plugins": ["transform-classes", "transform-block-scoping", "transform-typeof-symbol"] + "plugins": [ + "transform-classes", + "transform-block-scoping", + "transform-typeof-symbol" + ] } diff --git a/packages/babel-plugin-transform-classes/test/fixtures/extend-builtins/imported_babel-plugin-transform-builtin-classes/options.json b/packages/babel-plugin-transform-classes/test/fixtures/extend-builtins/imported_babel-plugin-transform-builtin-classes/options.json index 0dfc82023402..5d03380e6f36 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/extend-builtins/imported_babel-plugin-transform-builtin-classes/options.json +++ b/packages/babel-plugin-transform-classes/test/fixtures/extend-builtins/imported_babel-plugin-transform-builtin-classes/options.json @@ -1,3 +1,3 @@ { - "plugins": ["transform-classes","transform-block-scoping"] + "plugins": ["transform-classes", "transform-block-scoping"] } diff --git a/packages/babel-plugin-transform-classes/test/fixtures/extend-builtins/loose/output.js b/packages/babel-plugin-transform-classes/test/fixtures/extend-builtins/loose/output.js index dbe4978d71fb..e41d1690f68e 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/extend-builtins/loose/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/extend-builtins/loose/output.js @@ -1,11 +1,13 @@ function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } -function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null) return null; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); } +function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); } function isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } function _construct(Parent, args, Class) { if (isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); } +function _isNativeFunction(fn) { return Function.toString.call(fn).indexOf("[native code]") !== -1; } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } diff --git a/packages/babel-plugin-transform-classes/test/fixtures/extend-builtins/spec/output.js b/packages/babel-plugin-transform-classes/test/fixtures/extend-builtins/spec/output.js index d060a29402ff..8128d008f696 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/extend-builtins/spec/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/extend-builtins/spec/output.js @@ -6,12 +6,14 @@ function _assertThisInitialized(self) { if (self === void 0) { throw new Referen function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null) return null; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); } +function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); } function isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } function _construct(Parent, args, Class) { if (isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); } +function _isNativeFunction(fn) { return Function.toString.call(fn).indexOf("[native code]") !== -1; } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } diff --git a/packages/babel-plugin-transform-classes/test/fixtures/extend-builtins/super-called/options.json b/packages/babel-plugin-transform-classes/test/fixtures/extend-builtins/super-called/options.json index 0dfc82023402..5d03380e6f36 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/extend-builtins/super-called/options.json +++ b/packages/babel-plugin-transform-classes/test/fixtures/extend-builtins/super-called/options.json @@ -1,3 +1,3 @@ { - "plugins": ["transform-classes","transform-block-scoping"] + "plugins": ["transform-classes", "transform-block-scoping"] } diff --git a/packages/babel-plugin-transform-classes/test/fixtures/extend-builtins/wrap-native-super/options.json b/packages/babel-plugin-transform-classes/test/fixtures/extend-builtins/wrap-native-super/options.json index bc16727e5799..55e74be7ce56 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/extend-builtins/wrap-native-super/options.json +++ b/packages/babel-plugin-transform-classes/test/fixtures/extend-builtins/wrap-native-super/options.json @@ -1,3 +1,7 @@ { - "plugins": ["transform-classes","transform-block-scoping","external-helpers"] + "plugins": [ + "transform-classes", + "transform-block-scoping", + "external-helpers" + ] } diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/options.json b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/options.json index a5decfd9733c..2b25ef710b68 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/options.json +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/options.json @@ -1,3 +1,3 @@ { - "plugins": [["transform-classes", {"loose": true}]] + "plugins": [["transform-classes", { "loose": true }]] } diff --git a/packages/babel-plugin-transform-classes/test/fixtures/loose-classCallCheck/options.json b/packages/babel-plugin-transform-classes/test/fixtures/loose-classCallCheck/options.json index 5c81b3488d40..b5a4d55d5ba3 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/loose-classCallCheck/options.json +++ b/packages/babel-plugin-transform-classes/test/fixtures/loose-classCallCheck/options.json @@ -1,7 +1,10 @@ { "plugins": [ - ["transform-classes", { - "loose": true - }] + [ + "transform-classes", + { + "loose": true + } + ] ] } diff --git a/packages/babel-plugin-transform-classes/test/fixtures/loose/method-return-type-annotation/options.json b/packages/babel-plugin-transform-classes/test/fixtures/loose/method-return-type-annotation/options.json index f61933a17e38..1f9617ec390b 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/loose/method-return-type-annotation/options.json +++ b/packages/babel-plugin-transform-classes/test/fixtures/loose/method-return-type-annotation/options.json @@ -1,3 +1,10 @@ { - "plugins": ["external-helpers", "transform-function-name", ["transform-classes", { "loose": true }], "transform-spread", "transform-block-scoping", "syntax-flow"] + "plugins": [ + "external-helpers", + "transform-function-name", + ["transform-classes", { "loose": true }], + "transform-spread", + "transform-block-scoping", + "syntax-flow" + ] } 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 new file mode 100644 index 000000000000..45af5099a97e --- /dev/null +++ b/packages/babel-plugin-transform-classes/test/fixtures/regression/8499/exec.js @@ -0,0 +1,17 @@ +// Pretend that `Reflect.construct` isn't supported. +this.Reflect = undefined; + +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); + + diff --git a/packages/babel-plugin-transform-classes/test/fixtures/regression/8499/input.js b/packages/babel-plugin-transform-classes/test/fixtures/regression/8499/input.js new file mode 100644 index 000000000000..45af5099a97e --- /dev/null +++ b/packages/babel-plugin-transform-classes/test/fixtures/regression/8499/input.js @@ -0,0 +1,17 @@ +// Pretend that `Reflect.construct` isn't supported. +this.Reflect = undefined; + +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); + + diff --git a/packages/babel-plugin-transform-classes/test/fixtures/regression/8499/output.js b/packages/babel-plugin-transform-classes/test/fixtures/regression/8499/output.js new file mode 100644 index 000000000000..b14eb4235371 --- /dev/null +++ b/packages/babel-plugin-transform-classes/test/fixtures/regression/8499/output.js @@ -0,0 +1,29 @@ +// Pretend that `Reflect.construct` isn't supported. +this.Reflect = undefined; + +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; + +var CustomElement = +/*#__PURE__*/ +function (_HTMLElement) { + "use strict"; + + babelHelpers.inherits(CustomElement, _HTMLElement); + + function CustomElement() { + babelHelpers.classCallCheck(this, CustomElement); + return babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(CustomElement).apply(this, arguments)); + } + + return CustomElement; +}(babelHelpers.wrapNativeSuper(HTMLElement)); + +; +new CustomElement(); +expect(constructor).toBe(CustomElement); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/regression/T6755/options.json b/packages/babel-plugin-transform-classes/test/fixtures/regression/T6755/options.json index 12ccccf683aa..2b25ef710b68 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/regression/T6755/options.json +++ b/packages/babel-plugin-transform-classes/test/fixtures/regression/T6755/options.json @@ -1,5 +1,3 @@ { - "plugins": [ - ["transform-classes", { "loose": true }] - ] + "plugins": [["transform-classes", { "loose": true }]] } diff --git a/packages/babel-plugin-transform-classes/test/fixtures/regression/T7010/options.json b/packages/babel-plugin-transform-classes/test/fixtures/regression/T7010/options.json index 2c628e9f43f9..aec48c2b7d61 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/regression/T7010/options.json +++ b/packages/babel-plugin-transform-classes/test/fixtures/regression/T7010/options.json @@ -1,6 +1,3 @@ { - "plugins": [ - "transform-classes", - "external-helpers" - ] + "plugins": ["transform-classes", "external-helpers"] } diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/method-return-type-annotation/options.json b/packages/babel-plugin-transform-classes/test/fixtures/spec/method-return-type-annotation/options.json index ab9705ebc436..208e8b0ff0af 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/method-return-type-annotation/options.json +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/method-return-type-annotation/options.json @@ -1,3 +1,10 @@ { - "plugins": ["external-helpers", "transform-function-name", "transform-classes", "transform-spread", "transform-block-scoping", "syntax-flow"] + "plugins": [ + "external-helpers", + "transform-function-name", + "transform-classes", + "transform-spread", + "transform-block-scoping", + "syntax-flow" + ] } diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/name-method-collision/options.json b/packages/babel-plugin-transform-classes/test/fixtures/spec/name-method-collision/options.json index 072488946ae6..143e6342c288 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/name-method-collision/options.json +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/name-method-collision/options.json @@ -1,3 +1,10 @@ { - "plugins": ["external-helpers", "transform-function-name", "transform-classes", "transform-spread", "transform-block-scoping", "transform-modules-commonjs"] + "plugins": [ + "external-helpers", + "transform-function-name", + "transform-classes", + "transform-spread", + "transform-block-scoping", + "transform-modules-commonjs" + ] } diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/options.json b/packages/babel-plugin-transform-classes/test/fixtures/spec/options.json index c2c6be1e6b8e..8d402a794c7e 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/options.json +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/options.json @@ -1,3 +1,9 @@ { - "plugins": ["external-helpers", "transform-function-name", "transform-classes", "transform-spread", "transform-block-scoping"] + "plugins": [ + "external-helpers", + "transform-function-name", + "transform-classes", + "transform-spread", + "transform-block-scoping" + ] } diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/super-reference-before-in-lambda-2/options.json b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-reference-before-in-lambda-2/options.json index 111b0a609162..93725c3c0e72 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/super-reference-before-in-lambda-2/options.json +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-reference-before-in-lambda-2/options.json @@ -1,3 +1,7 @@ { - "plugins": ["external-helpers", "transform-classes", "transform-block-scoping"] + "plugins": [ + "external-helpers", + "transform-classes", + "transform-block-scoping" + ] } diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/super-reference-before-in-lambda-3/options.json b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-reference-before-in-lambda-3/options.json index 111b0a609162..93725c3c0e72 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/super-reference-before-in-lambda-3/options.json +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-reference-before-in-lambda-3/options.json @@ -1,3 +1,7 @@ { - "plugins": ["external-helpers", "transform-classes", "transform-block-scoping"] + "plugins": [ + "external-helpers", + "transform-classes", + "transform-block-scoping" + ] } diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/super-reference-before-in-lambda/options.json b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-reference-before-in-lambda/options.json index 111b0a609162..93725c3c0e72 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/super-reference-before-in-lambda/options.json +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-reference-before-in-lambda/options.json @@ -1,3 +1,7 @@ { - "plugins": ["external-helpers", "transform-classes", "transform-block-scoping"] + "plugins": [ + "external-helpers", + "transform-classes", + "transform-block-scoping" + ] } diff --git a/packages/babel-plugin-transform-computed-properties/package.json b/packages/babel-plugin-transform-computed-properties/package.json index cb1b3b63e54e..8df20722c154 100644 --- a/packages/babel-plugin-transform-computed-properties/package.json +++ b/packages/babel-plugin-transform-computed-properties/package.json @@ -1,21 +1,24 @@ { "name": "@babel/plugin-transform-computed-properties", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Compile ES2015 computed properties to ES5", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-computed-properties", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-computed-properties/test/fixtures/loose/options.json b/packages/babel-plugin-transform-computed-properties/test/fixtures/loose/options.json index 323353b45724..4a3f9912c708 100644 --- a/packages/babel-plugin-transform-computed-properties/test/fixtures/loose/options.json +++ b/packages/babel-plugin-transform-computed-properties/test/fixtures/loose/options.json @@ -1,3 +1,6 @@ { - "plugins": ["external-helpers", ["transform-computed-properties", { "loose": true }]] + "plugins": [ + "external-helpers", + ["transform-computed-properties", { "loose": true }] + ] } diff --git a/packages/babel-plugin-transform-destructuring/package.json b/packages/babel-plugin-transform-destructuring/package.json index c07d36509ff2..e8c19251a402 100644 --- a/packages/babel-plugin-transform-destructuring/package.json +++ b/packages/babel-plugin-transform-destructuring/package.json @@ -1,21 +1,24 @@ { "name": "@babel/plugin-transform-destructuring", - "version": "7.0.0-beta.52", + "version": "7.1.3", "description": "Compile ES2015 destructuring to ES5", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-destructuring", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-destructuring/src/index.js b/packages/babel-plugin-transform-destructuring/src/index.js index b706ed5bea64..9d5830361256 100644 --- a/packages/babel-plugin-transform-destructuring/src/index.js +++ b/packages/babel-plugin-transform-destructuring/src/index.js @@ -44,13 +44,23 @@ export default declare((api, options) => { return false; } - const arrayUnpackVisitor = { - ReferencedIdentifier(path, state) { - if (state.bindings[path.node.name]) { - state.deopt = true; - path.stop(); - } - }, + const STOP_TRAVERSAL = {}; + + // NOTE: This visitor is meant to be used via t.traverse + const arrayUnpackVisitor = (node, ancestors, state) => { + if (!ancestors.length) { + // Top-level node: this is the array literal. + return; + } + + if ( + t.isIdentifier(node) && + t.isReferenced(node, ancestors[ancestors.length - 1]) && + state.bindings[node.name] + ) { + state.deopt = true; + throw STOP_TRAVERSAL; + } }; class DestructuringTransformer { @@ -160,7 +170,8 @@ export default declare((api, options) => { pushObjectRest(pattern, objRef, spreadProp, spreadPropIndex) { // get all the keys that appear in this object before the current spread - let keys = []; + const keys = []; + let allLiteral = true; for (let i = 0; i < pattern.properties.length; i++) { const prop = pattern.properties[i]; @@ -172,11 +183,15 @@ export default declare((api, options) => { // ignore other spread properties if (t.isRestElement(prop)) continue; - let key = prop.key; + const key = prop.key; if (t.isIdentifier(key) && !prop.computed) { - key = t.stringLiteral(prop.key.name); + keys.push(t.stringLiteral(key.name)); + } else if (t.isLiteral(key)) { + keys.push(t.stringLiteral(String(key.value))); + } else { + keys.push(t.cloneNode(key)); + allLiteral = false; } - keys.push(t.cloneNode(key)); } let value; @@ -186,11 +201,18 @@ export default declare((api, options) => { t.cloneNode(objRef), ]); } else { - keys = t.arrayExpression(keys); + let keyExpression = t.arrayExpression(keys); + + if (!allLiteral) { + keyExpression = t.callExpression( + t.memberExpression(keyExpression, t.identifier("map")), + [this.addHelper("toPropertyKey")], + ); + } value = t.callExpression( this.addHelper(`objectWithoutProperties${loose ? "Loose" : ""}`), - [t.cloneNode(objRef), keys], + [t.cloneNode(objRef), keyExpression], ); } @@ -282,7 +304,13 @@ export default declare((api, options) => { // deopt on reference to left side identifiers const bindings = t.getBindingIdentifiers(pattern); const state = { deopt: false, bindings }; - this.scope.traverse(arr, arrayUnpackVisitor, state); + + try { + t.traverse(arr, arrayUnpackVisitor, state); + } catch (e) { + if (e !== STOP_TRAVERSAL) throw e; + } + return !state.deopt; } diff --git a/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/es7-object-rest-builtins/options.json b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/es7-object-rest-builtins/options.json index a4a5f2d213ea..9b67610435a1 100644 --- a/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/es7-object-rest-builtins/options.json +++ b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/es7-object-rest-builtins/options.json @@ -1,6 +1,6 @@ { "plugins": [ - "external-helpers", + ["external-helpers", { "helperVersion": "7.1.5" }], ["transform-destructuring", { "useBuiltIns": true }], "transform-spread", "transform-parameters", diff --git a/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/es7-object-rest-builtins/output.js b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/es7-object-rest-builtins/output.js index 8e8f96790853..8dcd578573fa 100644 --- a/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/es7-object-rest-builtins/output.js +++ b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/es7-object-rest-builtins/output.js @@ -6,7 +6,7 @@ var _z2 = z, y = babelHelpers.objectWithoutProperties(_z2, ["x"]); var _z3 = z, x = _z3[x], - y = babelHelpers.objectWithoutProperties(_z3, [x]); + y = babelHelpers.objectWithoutProperties(_z3, [x].map(babelHelpers.toPropertyKey)); (function (_ref) { var x = _ref.x, diff --git a/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/es7-object-rest-loose/options.json b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/es7-object-rest-loose/options.json index 30b537ae9118..ec06f619d092 100644 --- a/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/es7-object-rest-loose/options.json +++ b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/es7-object-rest-loose/options.json @@ -1,6 +1,7 @@ { "plugins": [ ["transform-destructuring", { "loose": true }], - "proposal-object-rest-spread" + "proposal-object-rest-spread", + ["external-helpers", { "helperVersion": "7.1.5" }] ] } diff --git a/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/es7-object-rest-loose/output.js b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/es7-object-rest-loose/output.js index 50093aa1720a..e202791b6fd4 100644 --- a/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/es7-object-rest-loose/output.js +++ b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/es7-object-rest-loose/output.js @@ -1,27 +1,20 @@ -function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } - -function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } - var z = {}; - var _z = z, - x = _extends({}, _z); - + x = babelHelpers.extends({}, _z); var _z2 = z, x = _z2.x, - y = _objectWithoutPropertiesLoose(_z2, ["x"]); - + y = babelHelpers.objectWithoutPropertiesLoose(_z2, ["x"]); var _z3 = z, x = _z3[x], - y = _objectWithoutPropertiesLoose(_z3, [x]); + y = babelHelpers.objectWithoutPropertiesLoose(_z3, [x].map(babelHelpers.toPropertyKey)); (function (_ref) { let x = _ref.x, - y = _objectWithoutPropertiesLoose(_ref, ["x"]); + y = babelHelpers.objectWithoutPropertiesLoose(_ref, ["x"]); }); var _o = o; x = _o.x; y = _o.y; -z = _objectWithoutPropertiesLoose(_o, ["x", "y"]); +z = babelHelpers.objectWithoutPropertiesLoose(_o, ["x", "y"]); _o; diff --git a/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/es7-object-rest/output.js b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/es7-object-rest/output.js index 0729c49dd0e2..c4af22047ad0 100644 --- a/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/es7-object-rest/output.js +++ b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/es7-object-rest/output.js @@ -6,7 +6,7 @@ var _z2 = z, y = babelHelpers.objectWithoutProperties(_z2, ["x"]); var _z3 = z, x = _z3[x], - y = babelHelpers.objectWithoutProperties(_z3, [x]); + y = babelHelpers.objectWithoutProperties(_z3, [x].map(babelHelpers.toPropertyKey)); (function (_ref) { var x = _ref.x, diff --git a/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/function-key-with-object-rest-spread/exec.js b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/function-key-with-object-rest-spread/exec.js new file mode 100644 index 000000000000..fc8ae90c7411 --- /dev/null +++ b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/function-key-with-object-rest-spread/exec.js @@ -0,0 +1,4 @@ +const { [(() => 1)()]: a, ...rest } = { 1: "a" }; + +expect(a).toBe("a"); +expect(rest).toEqual({}); diff --git a/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/function-key-with-object-rest-spread/options.json b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/function-key-with-object-rest-spread/options.json new file mode 100644 index 000000000000..9fd3882905b5 --- /dev/null +++ b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/function-key-with-object-rest-spread/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-destructuring", "proposal-object-rest-spread"] +} diff --git a/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/issue-5628/options.json b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/issue-5628/options.json index 2d4a820338f0..4e36a378760f 100644 --- a/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/issue-5628/options.json +++ b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/issue-5628/options.json @@ -1,3 +1,12 @@ { - "plugins": ["external-helpers", "transform-arrow-functions", "transform-destructuring", "transform-spread", "transform-parameters", "transform-block-scoping", "proposal-object-rest-spread", "transform-regenerator"] + "plugins": [ + "external-helpers", + "transform-arrow-functions", + "transform-destructuring", + "transform-spread", + "transform-parameters", + "transform-block-scoping", + "proposal-object-rest-spread", + "transform-regenerator" + ] } diff --git a/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/number-key-with-object-rest-spread/exec.js b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/number-key-with-object-rest-spread/exec.js new file mode 100644 index 000000000000..fe160adb01ca --- /dev/null +++ b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/number-key-with-object-rest-spread/exec.js @@ -0,0 +1,10 @@ +const foo = { + 1: "a", + 2: "b", + 3: "c", +}; + +const { [1]: bar, ...rest } = foo; + +expect(bar).toBe("a"); +expect(rest).toEqual({ 2: "b", 3: "c" }); diff --git a/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/number-key-with-object-rest-spread/options.json b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/number-key-with-object-rest-spread/options.json new file mode 100644 index 000000000000..9fd3882905b5 --- /dev/null +++ b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/number-key-with-object-rest-spread/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-destructuring", "proposal-object-rest-spread"] +} diff --git a/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/options.json b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/options.json index 61c6a85c267c..780d83b9b4ce 100644 --- a/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/options.json +++ b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/options.json @@ -1,3 +1,11 @@ { - "plugins": ["external-helpers", "transform-destructuring", "transform-spread", "transform-parameters", "transform-block-scoping", "proposal-object-rest-spread", "transform-regenerator"] + "plugins": [ + ["external-helpers", { "helperVersion": "7.1.5" }], + "transform-destructuring", + "transform-spread", + "transform-parameters", + "transform-block-scoping", + "proposal-object-rest-spread", + "transform-regenerator" + ] } diff --git a/packages/babel-plugin-transform-destructuring/test/fixtures/regression/8528/input.js b/packages/babel-plugin-transform-destructuring/test/fixtures/regression/8528/input.js new file mode 100644 index 000000000000..9c6f1a18396d --- /dev/null +++ b/packages/babel-plugin-transform-destructuring/test/fixtures/regression/8528/input.js @@ -0,0 +1,4 @@ +function isBetween(x, a, b) { + if (a > b) [a, b] = [b, a]; + return x > a && x < b; +} diff --git a/packages/babel-plugin-transform-destructuring/test/fixtures/regression/8528/options.json b/packages/babel-plugin-transform-destructuring/test/fixtures/regression/8528/options.json new file mode 100644 index 000000000000..84e28c07f51e --- /dev/null +++ b/packages/babel-plugin-transform-destructuring/test/fixtures/regression/8528/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-destructuring"] +} diff --git a/packages/babel-plugin-transform-destructuring/test/fixtures/regression/8528/output.js b/packages/babel-plugin-transform-destructuring/test/fixtures/regression/8528/output.js new file mode 100644 index 000000000000..9546a2734c73 --- /dev/null +++ b/packages/babel-plugin-transform-destructuring/test/fixtures/regression/8528/output.js @@ -0,0 +1,9 @@ +function isBetween(x, a, b) { + if (a > b) { + var _ref = [b, a]; + a = _ref[0]; + b = _ref[1]; + } + + return x > a && x < b; +} diff --git a/packages/babel-plugin-transform-dotall-regex/package.json b/packages/babel-plugin-transform-dotall-regex/package.json index 00678214ed5c..14b5707a4610 100644 --- a/packages/babel-plugin-transform-dotall-regex/package.json +++ b/packages/babel-plugin-transform-dotall-regex/package.json @@ -1,9 +1,12 @@ { "name": "@babel/plugin-transform-dotall-regex", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Compile regular expressions using the `s` (`dotAll`) flag to ES5.", "homepage": "https://babeljs.io/", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "engines": { "node": ">=4" @@ -21,15 +24,15 @@ }, "bugs": "https://github.com/babel/babel/issues", "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/helper-regex": "7.0.0-beta.52", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0", "regexpu-core": "^4.1.3" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-duplicate-keys/package.json b/packages/babel-plugin-transform-duplicate-keys/package.json index dee0ad781f70..63ba036fc0df 100644 --- a/packages/babel-plugin-transform-duplicate-keys/package.json +++ b/packages/babel-plugin-transform-duplicate-keys/package.json @@ -1,21 +1,24 @@ { "name": "@babel/plugin-transform-duplicate-keys", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Compile objects with duplicate keys to valid strict ES5", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-duplicate-keys", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-duplicate-keys/test/fixtures/combination/options.json b/packages/babel-plugin-transform-duplicate-keys/test/fixtures/combination/options.json index 492e90417dcb..62e2b15a57a1 100644 --- a/packages/babel-plugin-transform-duplicate-keys/test/fixtures/combination/options.json +++ b/packages/babel-plugin-transform-duplicate-keys/test/fixtures/combination/options.json @@ -1,3 +1,7 @@ { - "plugins": ["external-helpers", "transform-duplicate-keys", "transform-computed-properties"] + "plugins": [ + "external-helpers", + "transform-duplicate-keys", + "transform-computed-properties" + ] } diff --git a/packages/babel-plugin-transform-exponentiation-operator/package.json b/packages/babel-plugin-transform-exponentiation-operator/package.json index 34e7be92077d..2e491e58c5cb 100644 --- a/packages/babel-plugin-transform-exponentiation-operator/package.json +++ b/packages/babel-plugin-transform-exponentiation-operator/package.json @@ -1,22 +1,25 @@ { "name": "@babel/plugin-transform-exponentiation-operator", - "version": "7.0.0-beta.52", + "version": "7.1.0", "description": "Compile exponentiation operator to ES5", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-exponentiation-operator", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "7.0.0-beta.52", - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-flow-comments/package.json b/packages/babel-plugin-transform-flow-comments/package.json index e2d38457ef16..f676786cd975 100644 --- a/packages/babel-plugin-transform-flow-comments/package.json +++ b/packages/babel-plugin-transform-flow-comments/package.json @@ -1,22 +1,25 @@ { "name": "@babel/plugin-transform-flow-comments", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Turn flow type annotations into comments", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-flow-comments", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/plugin-syntax-flow": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-flow-comments/test/fixtures/flow-comments/class-prop-values-2/options.json b/packages/babel-plugin-transform-flow-comments/test/fixtures/flow-comments/class-prop-values-2/options.json index 384e6d0f25f3..76e3f90b122a 100644 --- a/packages/babel-plugin-transform-flow-comments/test/fixtures/flow-comments/class-prop-values-2/options.json +++ b/packages/babel-plugin-transform-flow-comments/test/fixtures/flow-comments/class-prop-values-2/options.json @@ -1,5 +1,3 @@ { - "plugins": [ - "transform-flow-comments" - ] + "plugins": ["transform-flow-comments"] } diff --git a/packages/babel-plugin-transform-flow-comments/test/fixtures/flow-comments/class-prop-values-3/options.json b/packages/babel-plugin-transform-flow-comments/test/fixtures/flow-comments/class-prop-values-3/options.json index 967b6754daba..5320a9ef868a 100644 --- a/packages/babel-plugin-transform-flow-comments/test/fixtures/flow-comments/class-prop-values-3/options.json +++ b/packages/babel-plugin-transform-flow-comments/test/fixtures/flow-comments/class-prop-values-3/options.json @@ -1,6 +1,6 @@ { "plugins": [ "transform-flow-comments", - ["proposal-class-properties", {"loose": true}] + ["proposal-class-properties", { "loose": true }] ] } diff --git a/packages/babel-plugin-transform-flow-comments/test/fixtures/flow-comments/class-prop-values/options.json b/packages/babel-plugin-transform-flow-comments/test/fixtures/flow-comments/class-prop-values/options.json index 9f385a20d27b..1aab50afbdbf 100644 --- a/packages/babel-plugin-transform-flow-comments/test/fixtures/flow-comments/class-prop-values/options.json +++ b/packages/babel-plugin-transform-flow-comments/test/fixtures/flow-comments/class-prop-values/options.json @@ -1,6 +1,3 @@ { - "plugins": [ - "transform-flow-comments", - "syntax-class-properties" - ] + "plugins": ["transform-flow-comments", "syntax-class-properties"] } diff --git a/packages/babel-plugin-transform-flow-strip-types/package.json b/packages/babel-plugin-transform-flow-strip-types/package.json index 10e1129c5d53..cf4d090b243d 100644 --- a/packages/babel-plugin-transform-flow-strip-types/package.json +++ b/packages/babel-plugin-transform-flow-strip-types/package.json @@ -1,22 +1,25 @@ { "name": "@babel/plugin-transform-flow-strip-types", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Strip flow type annotations from your output code.", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-flow-strip-types", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/plugin-syntax-flow": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-flow-strip-types/src/index.js b/packages/babel-plugin-transform-flow-strip-types/src/index.js index 063319cf9dc4..294ff7be1a3d 100644 --- a/packages/babel-plugin-transform-flow-strip-types/src/index.js +++ b/packages/babel-plugin-transform-flow-strip-types/src/index.js @@ -76,6 +76,11 @@ export default declare(api => { if (!path.node.value) path.remove(); }, + ClassPrivateProperty(path) { + if (skipStrip) return; + path.node.typeAnnotation = null; + }, + Class(path) { if (skipStrip) return; path.node.implements = null; diff --git a/packages/babel-plugin-transform-flow-strip-types/test/fixtures/regression/arrow-type-declaration/options.json b/packages/babel-plugin-transform-flow-strip-types/test/fixtures/regression/arrow-type-declaration/options.json index 8352026a9b41..d42eaa2130cf 100644 --- a/packages/babel-plugin-transform-flow-strip-types/test/fixtures/regression/arrow-type-declaration/options.json +++ b/packages/babel-plugin-transform-flow-strip-types/test/fixtures/regression/arrow-type-declaration/options.json @@ -1,5 +1,3 @@ { - "plugins": [ - "transform-flow-strip-types" - ] + "plugins": ["transform-flow-strip-types"] } diff --git a/packages/babel-plugin-transform-flow-strip-types/test/fixtures/regression/class-prop-values/options.json b/packages/babel-plugin-transform-flow-strip-types/test/fixtures/regression/class-prop-values/options.json index e4f98ec82984..56245d91c6c1 100644 --- a/packages/babel-plugin-transform-flow-strip-types/test/fixtures/regression/class-prop-values/options.json +++ b/packages/babel-plugin-transform-flow-strip-types/test/fixtures/regression/class-prop-values/options.json @@ -1,6 +1,3 @@ { - "plugins": [ - "transform-flow-strip-types", - "syntax-class-properties" - ] + "plugins": ["transform-flow-strip-types", "syntax-class-properties"] } diff --git a/packages/babel-plugin-transform-flow-strip-types/test/fixtures/strip-types/strip-type-annotations/input.mjs b/packages/babel-plugin-transform-flow-strip-types/test/fixtures/strip-types/strip-type-annotations/input.mjs index a9aec24aa5df..2d40466b5bf7 100644 --- a/packages/babel-plugin-transform-flow-strip-types/test/fixtures/strip-types/strip-type-annotations/input.mjs +++ b/packages/babel-plugin-transform-flow-strip-types/test/fixtures/strip-types/strip-type-annotations/input.mjs @@ -69,6 +69,10 @@ class Foo10 { static prop1: string; prop2: number; } +class Foo11 { + #prop1: string; + #prop2: number; +} var x: number | string = 4; class Array { concat(items:number | string) {}; } var x: () => number | () => string = fn; diff --git a/packages/babel-plugin-transform-flow-strip-types/test/fixtures/strip-types/strip-type-annotations/options.json b/packages/babel-plugin-transform-flow-strip-types/test/fixtures/strip-types/strip-type-annotations/options.json new file mode 100644 index 000000000000..8bbb3f309f07 --- /dev/null +++ b/packages/babel-plugin-transform-flow-strip-types/test/fixtures/strip-types/strip-type-annotations/options.json @@ -0,0 +1 @@ +{ "plugins": ["transform-flow-strip-types", "syntax-class-properties"] } diff --git a/packages/babel-plugin-transform-flow-strip-types/test/fixtures/strip-types/strip-type-annotations/output.mjs b/packages/babel-plugin-transform-flow-strip-types/test/fixtures/strip-types/strip-type-annotations/output.mjs index 9f1fe551ff2a..74989f4e7ef3 100644 --- a/packages/babel-plugin-transform-flow-strip-types/test/fixtures/strip-types/strip-type-annotations/output.mjs +++ b/packages/babel-plugin-transform-flow-strip-types/test/fixtures/strip-types/strip-type-annotations/output.mjs @@ -123,6 +123,11 @@ class Foo9 {} class Foo10 {} +class Foo11 { + #prop1; + #prop2; +} + var x = 4; class Array { diff --git a/packages/babel-plugin-transform-flow-strip-types/test/fixtures/strip-types/strip-typeapp-call/options.json b/packages/babel-plugin-transform-flow-strip-types/test/fixtures/strip-types/strip-typeapp-call/options.json index 06f4fa1ede0e..81c1ea3a2294 100644 --- a/packages/babel-plugin-transform-flow-strip-types/test/fixtures/strip-types/strip-typeapp-call/options.json +++ b/packages/babel-plugin-transform-flow-strip-types/test/fixtures/strip-types/strip-typeapp-call/options.json @@ -1,3 +1,7 @@ { - "plugins": ["syntax-jsx", "syntax-optional-chaining", "transform-flow-strip-types"] + "plugins": [ + "syntax-jsx", + "syntax-optional-chaining", + "transform-flow-strip-types" + ] } diff --git a/packages/babel-plugin-transform-for-of/package.json b/packages/babel-plugin-transform-for-of/package.json index 59a449f7201a..eda8d9c39c96 100644 --- a/packages/babel-plugin-transform-for-of/package.json +++ b/packages/babel-plugin-transform-for-of/package.json @@ -1,21 +1,24 @@ { "name": "@babel/plugin-transform-for-of", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Compile ES2015 for...of to ES5", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-for-of", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-for-of/test/fixtures/error/invalid-option/options.json b/packages/babel-plugin-transform-for-of/test/fixtures/error/invalid-option/options.json index bdd6772e84f6..2f5c6598efb7 100644 --- a/packages/babel-plugin-transform-for-of/test/fixtures/error/invalid-option/options.json +++ b/packages/babel-plugin-transform-for-of/test/fixtures/error/invalid-option/options.json @@ -1,4 +1,4 @@ { - "plugins": [["transform-for-of", { "assumeArray": true, "loose": true}]], + "plugins": [["transform-for-of", { "assumeArray": true, "loose": true }]], "throws": "The loose and assumeArray options cannot be used together in @babel/plugin-transform-for-of" } diff --git a/packages/babel-plugin-transform-for-of/test/fixtures/for-of-as-array/for-of-import-amd/options.json b/packages/babel-plugin-transform-for-of/test/fixtures/for-of-as-array/for-of-import-amd/options.json index 9277b9005ce3..89a0601dc948 100644 --- a/packages/babel-plugin-transform-for-of/test/fixtures/for-of-as-array/for-of-import-amd/options.json +++ b/packages/babel-plugin-transform-for-of/test/fixtures/for-of-as-array/for-of-import-amd/options.json @@ -1,7 +1,11 @@ { - "plugins": [["transform-for-of", { - "assumeArray": true - }], + "plugins": [ + [ + "transform-for-of", + { + "assumeArray": true + } + ], ["transform-modules-amd"] ] } diff --git a/packages/babel-plugin-transform-for-of/test/fixtures/for-of-as-array/for-of-import-commonjs/options.json b/packages/babel-plugin-transform-for-of/test/fixtures/for-of-as-array/for-of-import-commonjs/options.json index 867a058d6ab9..855454080e78 100644 --- a/packages/babel-plugin-transform-for-of/test/fixtures/for-of-as-array/for-of-import-commonjs/options.json +++ b/packages/babel-plugin-transform-for-of/test/fixtures/for-of-as-array/for-of-import-commonjs/options.json @@ -1,7 +1,11 @@ { - "plugins": [["transform-for-of", { - "assumeArray": true - }], + "plugins": [ + [ + "transform-for-of", + { + "assumeArray": true + } + ], ["transform-modules-commonjs"] ] } diff --git a/packages/babel-plugin-transform-for-of/test/fixtures/for-of-as-array/options.json b/packages/babel-plugin-transform-for-of/test/fixtures/for-of-as-array/options.json index 676ed1a7e9f3..0d441c779e97 100644 --- a/packages/babel-plugin-transform-for-of/test/fixtures/for-of-as-array/options.json +++ b/packages/babel-plugin-transform-for-of/test/fixtures/for-of-as-array/options.json @@ -1,6 +1,10 @@ { - "plugins": [["transform-for-of", { - "assumeArray": true - }] + "plugins": [ + [ + "transform-for-of", + { + "assumeArray": true + } + ] ] } diff --git a/packages/babel-plugin-transform-function-name/package.json b/packages/babel-plugin-transform-function-name/package.json index 4e9e7160e213..d34e1f48c6c6 100644 --- a/packages/babel-plugin-transform-function-name/package.json +++ b/packages/babel-plugin-transform-function-name/package.json @@ -1,22 +1,25 @@ { "name": "@babel/plugin-transform-function-name", - "version": "7.0.0-beta.52", + "version": "7.1.0", "description": "Apply ES2015 function.name semantics to all functions", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-function-name", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-function-name": "7.0.0-beta.52", - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-function-name/test/fixtures/function-name/export-default-arrow-renaming-module-amd/options.json b/packages/babel-plugin-transform-function-name/test/fixtures/function-name/export-default-arrow-renaming-module-amd/options.json index c4fc8e0664a1..206e14372873 100644 --- a/packages/babel-plugin-transform-function-name/test/fixtures/function-name/export-default-arrow-renaming-module-amd/options.json +++ b/packages/babel-plugin-transform-function-name/test/fixtures/function-name/export-default-arrow-renaming-module-amd/options.json @@ -1,3 +1,8 @@ { - "plugins": ["transform-function-name", "transform-shorthand-properties", "transform-arrow-functions", "transform-modules-amd"] + "plugins": [ + "transform-function-name", + "transform-shorthand-properties", + "transform-arrow-functions", + "transform-modules-amd" + ] } diff --git a/packages/babel-plugin-transform-function-name/test/fixtures/function-name/export-default-arrow-renaming-module-es6/options.json b/packages/babel-plugin-transform-function-name/test/fixtures/function-name/export-default-arrow-renaming-module-es6/options.json index f5aa31ca6220..787f790f0166 100644 --- a/packages/babel-plugin-transform-function-name/test/fixtures/function-name/export-default-arrow-renaming-module-es6/options.json +++ b/packages/babel-plugin-transform-function-name/test/fixtures/function-name/export-default-arrow-renaming-module-es6/options.json @@ -1,3 +1,7 @@ { - "plugins": ["transform-function-name", "transform-shorthand-properties", "transform-arrow-functions"] + "plugins": [ + "transform-function-name", + "transform-shorthand-properties", + "transform-arrow-functions" + ] } diff --git a/packages/babel-plugin-transform-function-name/test/fixtures/function-name/export-default-arrow-renaming-module-system/options.json b/packages/babel-plugin-transform-function-name/test/fixtures/function-name/export-default-arrow-renaming-module-system/options.json index 60615c6e9895..49317a23c68b 100644 --- a/packages/babel-plugin-transform-function-name/test/fixtures/function-name/export-default-arrow-renaming-module-system/options.json +++ b/packages/babel-plugin-transform-function-name/test/fixtures/function-name/export-default-arrow-renaming-module-system/options.json @@ -1,3 +1,8 @@ { - "plugins": ["transform-function-name", "transform-shorthand-properties", "transform-arrow-functions", "transform-modules-systemjs"] + "plugins": [ + "transform-function-name", + "transform-shorthand-properties", + "transform-arrow-functions", + "transform-modules-systemjs" + ] } diff --git a/packages/babel-plugin-transform-function-name/test/fixtures/function-name/export-default-arrow-renaming-module-umd/options.json b/packages/babel-plugin-transform-function-name/test/fixtures/function-name/export-default-arrow-renaming-module-umd/options.json index dfcd11cc72d8..af6f07082fbe 100644 --- a/packages/babel-plugin-transform-function-name/test/fixtures/function-name/export-default-arrow-renaming-module-umd/options.json +++ b/packages/babel-plugin-transform-function-name/test/fixtures/function-name/export-default-arrow-renaming-module-umd/options.json @@ -1,3 +1,8 @@ { - "plugins": ["transform-function-name", "transform-shorthand-properties", "transform-arrow-functions", "transform-modules-umd"] + "plugins": [ + "transform-function-name", + "transform-shorthand-properties", + "transform-arrow-functions", + "transform-modules-umd" + ] } diff --git a/packages/babel-plugin-transform-function-name/test/fixtures/function-name/export-default-arrow-renaming/options.json b/packages/babel-plugin-transform-function-name/test/fixtures/function-name/export-default-arrow-renaming/options.json index 213eefa4450f..a1a9cf3f9b62 100644 --- a/packages/babel-plugin-transform-function-name/test/fixtures/function-name/export-default-arrow-renaming/options.json +++ b/packages/babel-plugin-transform-function-name/test/fixtures/function-name/export-default-arrow-renaming/options.json @@ -1,3 +1,8 @@ { - "plugins": ["transform-function-name", "transform-shorthand-properties", "transform-arrow-functions", "transform-modules-commonjs"] + "plugins": [ + "transform-function-name", + "transform-shorthand-properties", + "transform-arrow-functions", + "transform-modules-commonjs" + ] } diff --git a/packages/babel-plugin-transform-function-name/test/fixtures/function-name/with-arrow-functions-transform-spec/options.json b/packages/babel-plugin-transform-function-name/test/fixtures/function-name/with-arrow-functions-transform-spec/options.json index e49c12c03dc9..7f38a616945b 100644 --- a/packages/babel-plugin-transform-function-name/test/fixtures/function-name/with-arrow-functions-transform-spec/options.json +++ b/packages/babel-plugin-transform-function-name/test/fixtures/function-name/with-arrow-functions-transform-spec/options.json @@ -1,3 +1,7 @@ { - "plugins": ["external-helpers", "transform-function-name", [ "transform-arrow-functions", { "spec": true } ]] + "plugins": [ + "external-helpers", + "transform-function-name", + ["transform-arrow-functions", { "spec": true }] + ] } diff --git a/packages/babel-plugin-transform-function-name/test/fixtures/function-name/with-arrow-functions-transform/options.json b/packages/babel-plugin-transform-function-name/test/fixtures/function-name/with-arrow-functions-transform/options.json index 1e8e10b3d66b..1392ef3ae7f6 100644 --- a/packages/babel-plugin-transform-function-name/test/fixtures/function-name/with-arrow-functions-transform/options.json +++ b/packages/babel-plugin-transform-function-name/test/fixtures/function-name/with-arrow-functions-transform/options.json @@ -1,3 +1,7 @@ { - "plugins": ["external-helpers", "transform-function-name", "transform-arrow-functions"] + "plugins": [ + "external-helpers", + "transform-function-name", + "transform-arrow-functions" + ] } diff --git a/packages/babel-plugin-transform-instanceof/package.json b/packages/babel-plugin-transform-instanceof/package.json index e3e82b05e93b..857295ff80b2 100644 --- a/packages/babel-plugin-transform-instanceof/package.json +++ b/packages/babel-plugin-transform-instanceof/package.json @@ -1,21 +1,24 @@ { "name": "@babel/plugin-transform-instanceof", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "This plugin transforms all the ES2015 'instanceof' methods", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-instanceof", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-jscript/package.json b/packages/babel-plugin-transform-jscript/package.json index 1ec9b1d39d64..72c7108e9249 100644 --- a/packages/babel-plugin-transform-jscript/package.json +++ b/packages/babel-plugin-transform-jscript/package.json @@ -1,21 +1,24 @@ { "name": "@babel/plugin-transform-jscript", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Babel plugin to fix buggy JScript named function expressions", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-jscript", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-jscript/test/fixtures/jscript/options.json b/packages/babel-plugin-transform-jscript/test/fixtures/jscript/options.json index acc7a10d6e2d..9010bda65f7f 100644 --- a/packages/babel-plugin-transform-jscript/test/fixtures/jscript/options.json +++ b/packages/babel-plugin-transform-jscript/test/fixtures/jscript/options.json @@ -1,3 +1,9 @@ { - "plugins": ["external-helpers", "transform-block-scoping", "transform-classes", "transform-jscript", "transform-arrow-functions"] + "plugins": [ + "external-helpers", + "transform-block-scoping", + "transform-classes", + "transform-jscript", + "transform-arrow-functions" + ] } diff --git a/packages/babel-plugin-transform-literals/package.json b/packages/babel-plugin-transform-literals/package.json index 154aa3d0845a..489c2b7c29f1 100644 --- a/packages/babel-plugin-transform-literals/package.json +++ b/packages/babel-plugin-transform-literals/package.json @@ -1,21 +1,24 @@ { "name": "@babel/plugin-transform-literals", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Compile ES2015 unicode string and number literals to ES5", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-literals", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-member-expression-literals/package.json b/packages/babel-plugin-transform-member-expression-literals/package.json index e3f249040127..3a5141dae879 100644 --- a/packages/babel-plugin-transform-member-expression-literals/package.json +++ b/packages/babel-plugin-transform-member-expression-literals/package.json @@ -1,21 +1,24 @@ { "name": "@babel/plugin-transform-member-expression-literals", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Ensure that reserved words are quoted in property accesses", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-member-expression-literals", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-modules-amd/package.json b/packages/babel-plugin-transform-modules-amd/package.json index c1d5baf41524..914f171a1031 100644 --- a/packages/babel-plugin-transform-modules-amd/package.json +++ b/packages/babel-plugin-transform-modules-amd/package.json @@ -1,22 +1,25 @@ { "name": "@babel/plugin-transform-modules-amd", - "version": "7.0.0-beta.52", + "version": "7.1.0", "description": "This plugin transforms ES2015 modules to AMD", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-modules-amd", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "dependencies": { - "@babel/helper-module-transforms": "7.0.0-beta.52", - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" }, "keywords": [ "babel-plugin" ], "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/noInterop-export-from/options.json b/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/noInterop-export-from/options.json index fcacbf03174e..4a28969bfec1 100644 --- a/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/noInterop-export-from/options.json +++ b/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/noInterop-export-from/options.json @@ -1,3 +1,6 @@ { - "plugins": ["external-helpers", ["transform-modules-amd", { "noInterop": true }]] + "plugins": [ + "external-helpers", + ["transform-modules-amd", { "noInterop": true }] + ] } diff --git a/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/noInterop-import-default-only/options.json b/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/noInterop-import-default-only/options.json index fcacbf03174e..4a28969bfec1 100644 --- a/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/noInterop-import-default-only/options.json +++ b/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/noInterop-import-default-only/options.json @@ -1,3 +1,6 @@ { - "plugins": ["external-helpers", ["transform-modules-amd", { "noInterop": true }]] + "plugins": [ + "external-helpers", + ["transform-modules-amd", { "noInterop": true }] + ] } diff --git a/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/get-module-name-option/options.json b/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/get-module-name-option/options.json index be939b1999ea..918617aab900 100644 --- a/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/get-module-name-option/options.json +++ b/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/get-module-name-option/options.json @@ -2,8 +2,5 @@ "sourceType": "module", "moduleIds": true, "moduleId": "my custom module name", - "plugins": [ - "external-helpers", - ["transform-modules-amd", { "loose": true }] - ] + "plugins": ["external-helpers", ["transform-modules-amd", { "loose": true }]] } diff --git a/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/module-name/options.json b/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/module-name/options.json index c72a7c5942cc..c231826eafff 100644 --- a/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/module-name/options.json +++ b/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/module-name/options.json @@ -1,8 +1,5 @@ { "sourceType": "module", "moduleIds": true, - "plugins": [ - "external-helpers", - ["transform-modules-amd", { "loose": true }] - ] + "plugins": ["external-helpers", ["transform-modules-amd", { "loose": true }]] } diff --git a/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/noInterop-export-from/options.json b/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/noInterop-export-from/options.json index 97d5cf98f8ba..b8c7153c97ea 100644 --- a/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/noInterop-export-from/options.json +++ b/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/noInterop-export-from/options.json @@ -1,9 +1,12 @@ { "plugins": [ "external-helpers", - ["transform-modules-amd", { - "loose": true, - "noInterop": true - }] + [ + "transform-modules-amd", + { + "loose": true, + "noInterop": true + } + ] ] } diff --git a/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/noInterop-import-default-only/options.json b/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/noInterop-import-default-only/options.json index 97d5cf98f8ba..b8c7153c97ea 100644 --- a/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/noInterop-import-default-only/options.json +++ b/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/noInterop-import-default-only/options.json @@ -1,9 +1,12 @@ { "plugins": [ "external-helpers", - ["transform-modules-amd", { - "loose": true, - "noInterop": true - }] + [ + "transform-modules-amd", + { + "loose": true, + "noInterop": true + } + ] ] } diff --git a/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/options.json b/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/options.json index 9597d1c3f288..5570cb0e3f0c 100644 --- a/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/options.json +++ b/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/options.json @@ -1,6 +1,3 @@ { - "plugins": [ - "external-helpers", - ["transform-modules-amd", { "loose": true }] - ] + "plugins": ["external-helpers", ["transform-modules-amd", { "loose": true }]] } diff --git a/packages/babel-plugin-transform-modules-commonjs/package.json b/packages/babel-plugin-transform-modules-commonjs/package.json index 88f2feddcc7c..8d6c75e22ccd 100644 --- a/packages/babel-plugin-transform-modules-commonjs/package.json +++ b/packages/babel-plugin-transform-modules-commonjs/package.json @@ -1,24 +1,27 @@ { "name": "@babel/plugin-transform-modules-commonjs", - "version": "7.0.0-beta.52", + "version": "7.1.0", "description": "This plugin transforms ES2015 modules to CommonJS", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-modules-commonjs", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "dependencies": { - "@babel/helper-module-transforms": "7.0.0-beta.52", - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/helper-simple-access": "7.0.0-beta.52" + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-simple-access": "^7.1.0" }, "keywords": [ "babel-plugin" ], "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52", - "@babel/plugin-syntax-object-rest-spread": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/disable-strict-mode/options.json b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/disable-strict-mode/options.json index 316544afb3b9..a30f3a83904b 100644 --- a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/disable-strict-mode/options.json +++ b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/disable-strict-mode/options.json @@ -1,3 +1,6 @@ { - "plugins": ["external-helpers", ["transform-modules-commonjs", { "strictMode": false }]] + "plugins": [ + "external-helpers", + ["transform-modules-commonjs", { "strictMode": false }] + ] } diff --git a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/interop/export-all/input.js b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/interop/export-all/input.js new file mode 100644 index 000000000000..f419f4c89cb7 --- /dev/null +++ b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/interop/export-all/input.js @@ -0,0 +1,6 @@ +// The fact that this exports both a normal default, and all of the names via +// re-export is an edge case that is important not to miss. See +// https://github.com/babel/babel/issues/8306 as an example. +import _default from 'react'; +export default _default; +export * from 'react'; diff --git a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/interop/export-all/output.js b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/interop/export-all/output.js new file mode 100644 index 000000000000..95892f7cc67c --- /dev/null +++ b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/interop/export-all/output.js @@ -0,0 +1,25 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var _exportNames = {}; +exports.default = void 0; + +var _react = babelHelpers.interopRequireWildcard(require("react")); + +Object.keys(_react).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _react[key]; + } + }); +}); +// The fact that this exports both a normal default, and all of the names via +// re-export is an edge case that is important not to miss. See +// https://github.com/babel/babel/issues/8306 as an example. +var _default2 = _react.default; +exports.default = _default2; diff --git a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/interop/multi-load/options.json b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/interop/multi-load/options.json index 86fc5ff5a4c3..d456a3168360 100644 --- a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/interop/multi-load/options.json +++ b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/interop/multi-load/options.json @@ -1,7 +1,3 @@ { - "plugins": [ - "transform-modules-commonjs", - "transform-runtime", - "./plugin" - ] + "plugins": ["transform-modules-commonjs", "transform-runtime", "./plugin"] } diff --git a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/misc/copy-getters-setters-star/options.json b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/misc/copy-getters-setters-star/options.json index fd06b45cf2e4..8920c8f09feb 100644 --- a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/misc/copy-getters-setters-star/options.json +++ b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/misc/copy-getters-setters-star/options.json @@ -1,5 +1,3 @@ { - "plugins": [ - ["transform-modules-commonjs", { "mjsStrictNamespace": false }] - ] + "plugins": [["transform-modules-commonjs", { "mjsStrictNamespace": false }]] } diff --git a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/misc/module-exports/options.json b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/misc/module-exports/options.json index f022b433fb0f..de02fc6cc1f7 100644 --- a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/misc/module-exports/options.json +++ b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/misc/module-exports/options.json @@ -1,8 +1,3 @@ { - "plugins": [ - [ - "transform-modules-commonjs", - { "allowCommonJSExports": false } - ] - ] + "plugins": [["transform-modules-commonjs", { "allowCommonJSExports": false }]] } diff --git a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/misc/options.json b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/misc/options.json index 8b5e8767af51..81e5ce12436d 100644 --- a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/misc/options.json +++ b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/misc/options.json @@ -1,5 +1,3 @@ { - "plugins": [ - "transform-modules-commonjs" - ] + "plugins": ["transform-modules-commonjs"] } diff --git a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/noInterop/options.json b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/noInterop/options.json index 3b46be214bea..b44830bf6183 100644 --- a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/noInterop/options.json +++ b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/noInterop/options.json @@ -1,3 +1,6 @@ { - "plugins": ["external-helpers", ["transform-modules-commonjs", { "noInterop": true }]] + "plugins": [ + "external-helpers", + ["transform-modules-commonjs", { "noInterop": true }] + ] } diff --git a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/regression/T7165/options.json b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/regression/T7165/options.json index 71479330eaba..ca258de59ad8 100644 --- a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/regression/T7165/options.json +++ b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/regression/T7165/options.json @@ -1,6 +1,3 @@ { - "plugins": [ - "transform-block-scoping", - "transform-modules-commonjs" - ] + "plugins": ["transform-block-scoping", "transform-modules-commonjs"] } diff --git a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/regression/lazy-7176/options.json b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/regression/lazy-7176/options.json index 4d4cb9542015..cf7a7ac366b6 100644 --- a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/regression/lazy-7176/options.json +++ b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/regression/lazy-7176/options.json @@ -1,6 +1,6 @@ { "plugins": [ - ["transform-modules-commonjs", {"lazy": true}], + ["transform-modules-commonjs", { "lazy": true }], "external-helpers" ] } diff --git a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/strict/export-all/options.json b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/strict/export-all/options.json index 71479330eaba..ca258de59ad8 100644 --- a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/strict/export-all/options.json +++ b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/strict/export-all/options.json @@ -1,6 +1,3 @@ { - "plugins": [ - "transform-block-scoping", - "transform-modules-commonjs" - ] + "plugins": ["transform-block-scoping", "transform-modules-commonjs"] } diff --git a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/strict/options.json b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/strict/options.json index 1654d4e359bd..caedc022efa4 100644 --- a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/strict/options.json +++ b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/strict/options.json @@ -2,6 +2,9 @@ "plugins": [ "external-helpers", "syntax-object-rest-spread", - ["transform-modules-commonjs", { "strict": true, "mjsStrictNamespace": false }] + [ + "transform-modules-commonjs", + { "strict": true, "mjsStrictNamespace": false } + ] ] } diff --git a/packages/babel-plugin-transform-modules-systemjs/package.json b/packages/babel-plugin-transform-modules-systemjs/package.json index 492516f44a4e..ea52c659ec95 100644 --- a/packages/babel-plugin-transform-modules-systemjs/package.json +++ b/packages/babel-plugin-transform-modules-systemjs/package.json @@ -1,23 +1,26 @@ { "name": "@babel/plugin-transform-modules-systemjs", - "version": "7.0.0-beta.52", + "version": "7.1.3", "description": "This plugin transforms ES2015 modules to SystemJS", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-modules-systemjs", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "dependencies": { - "@babel/helper-hoist-variables": "7.0.0-beta.52", - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-hoist-variables": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" }, "keywords": [ "babel-plugin" ], "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52", - "@babel/plugin-syntax-dynamic-import": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0", + "@babel/plugin-syntax-dynamic-import": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-modules-systemjs/src/index.js b/packages/babel-plugin-transform-modules-systemjs/src/index.js index 5f93094be5bb..242d13216377 100644 --- a/packages/babel-plugin-transform-modules-systemjs/src/index.js +++ b/packages/babel-plugin-transform-modules-systemjs/src/index.js @@ -332,8 +332,23 @@ export default declare((api, options) => { const nodes = []; for (const specifier of specifiers) { - // only globals exported this way - if (!path.scope.getBinding(specifier.local.name)) { + const binding = path.scope.getBinding( + specifier.local.name, + ); + // hoisted function export + if ( + binding && + t.isFunctionDeclaration(binding.path.node) + ) { + beforeBody.push( + buildExportCall( + specifier.exported.name, + t.cloneNode(specifier.local), + ), + ); + } + // only globals also exported this way + else if (!binding) { nodes.push( buildExportCall( specifier.exported.name, diff --git a/packages/babel-plugin-transform-modules-systemjs/test/fixtures/dynamic-import/options.json b/packages/babel-plugin-transform-modules-systemjs/test/fixtures/dynamic-import/options.json index d9d5e3ac62f9..7513a834e42e 100644 --- a/packages/babel-plugin-transform-modules-systemjs/test/fixtures/dynamic-import/options.json +++ b/packages/babel-plugin-transform-modules-systemjs/test/fixtures/dynamic-import/options.json @@ -1,3 +1,8 @@ { - "plugins": ["external-helpers", "syntax-dynamic-import", "syntax-import-meta", "transform-modules-systemjs"] + "plugins": [ + "external-helpers", + "syntax-dynamic-import", + "syntax-import-meta", + "transform-modules-systemjs" + ] } diff --git a/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/export-const-destructuring-object-rest/options.json b/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/export-const-destructuring-object-rest/options.json index e0c8a716c796..09137adf8d2e 100644 --- a/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/export-const-destructuring-object-rest/options.json +++ b/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/export-const-destructuring-object-rest/options.json @@ -1,3 +1,7 @@ { - "plugins": ["external-helpers", "transform-modules-systemjs", "syntax-object-rest-spread"] + "plugins": [ + "external-helpers", + "transform-modules-systemjs", + "syntax-object-rest-spread" + ] } diff --git a/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/export-fn-decl/input.mjs b/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/export-fn-decl/input.mjs new file mode 100644 index 000000000000..3c230f186782 --- /dev/null +++ b/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/export-fn-decl/input.mjs @@ -0,0 +1,10 @@ +var testProp = 'test property'; + +function testFunc() { + return 'test function'; +} + +export { + testFunc, + testProp +}; diff --git a/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/export-fn-decl/output.mjs b/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/export-fn-decl/output.mjs new file mode 100644 index 000000000000..c3c2159be301 --- /dev/null +++ b/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/export-fn-decl/output.mjs @@ -0,0 +1,18 @@ +System.register([], function (_export, _context) { + "use strict"; + + var testProp; + + function testFunc() { + return 'test function'; + } + + _export("testFunc", testFunc); + + return { + setters: [], + execute: function () { + _export("testProp", testProp = 'test property'); + } + }; +}); \ No newline at end of file diff --git a/packages/babel-plugin-transform-modules-umd/package.json b/packages/babel-plugin-transform-modules-umd/package.json index 72bf8993a1fa..f34a56f25a8d 100644 --- a/packages/babel-plugin-transform-modules-umd/package.json +++ b/packages/babel-plugin-transform-modules-umd/package.json @@ -1,22 +1,25 @@ { "name": "@babel/plugin-transform-modules-umd", - "version": "7.0.0-beta.52", + "version": "7.1.0", "description": "This plugin transforms ES2015 modules to UMD", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-modules-umd", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "dependencies": { - "@babel/helper-module-transforms": "7.0.0-beta.52", - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" }, "keywords": [ "babel-plugin" ], "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/get-module-name-option/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/get-module-name-option/options.json index b053905b03a9..039bece2c37e 100644 --- a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/get-module-name-option/options.json +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/get-module-name-option/options.json @@ -2,8 +2,5 @@ "sourceType": "module", "moduleIds": true, "moduleId": "my custom module name", - "plugins": [ - "external-helpers", - ["transform-modules-umd", { "loose": true }] - ] + "plugins": ["external-helpers", ["transform-modules-umd", { "loose": true }]] } diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/imports-exact-globals-false-with-overrides/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/imports-exact-globals-false-with-overrides/options.json index d1283677d86b..35718196f409 100644 --- a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/imports-exact-globals-false-with-overrides/options.json +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/imports-exact-globals-false-with-overrides/options.json @@ -1,13 +1,16 @@ { "plugins": [ "external-helpers", - ["transform-modules-umd", { - "globals": { - "foo-bar": "fooBAR", - "./mylib/foo-bar": "mylib.fooBar", - "fizzbuzz": "fizz.buzz" - }, - "loose": true - }] + [ + "transform-modules-umd", + { + "globals": { + "foo-bar": "fooBAR", + "./mylib/foo-bar": "mylib.fooBar", + "fizzbuzz": "fizz.buzz" + }, + "loose": true + } + ] ] } diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/imports-exact-globals-true-with-overrides/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/imports-exact-globals-true-with-overrides/options.json index f03580946955..5206c894ed2c 100644 --- a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/imports-exact-globals-true-with-overrides/options.json +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/imports-exact-globals-true-with-overrides/options.json @@ -1,14 +1,17 @@ { "plugins": [ "external-helpers", - ["transform-modules-umd", { - "globals": { - "foo-bar": "fooBAR", - "./mylib/foo-bar": "mylib.fooBar", - "fizzbuzz": "fizz.buzz" - }, - "exactGlobals": true, - "loose": true - }] + [ + "transform-modules-umd", + { + "globals": { + "foo-bar": "fooBAR", + "./mylib/foo-bar": "mylib.fooBar", + "fizzbuzz": "fizz.buzz" + }, + "exactGlobals": true, + "loose": true + } + ] ] } diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/imports-exact-globals-true/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/imports-exact-globals-true/options.json index b0038cc813f3..3ac6242c2e57 100644 --- a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/imports-exact-globals-true/options.json +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/imports-exact-globals-true/options.json @@ -1,9 +1,12 @@ { "plugins": [ "external-helpers", - ["transform-modules-umd", { - "exactGlobals": true, - "loose": true - }] + [ + "transform-modules-umd", + { + "exactGlobals": true, + "loose": true + } + ] ] } diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-id-with-overridden-global-in-namespace/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-id-with-overridden-global-in-namespace/options.json index c65dd5d94e69..81f94c6a3f12 100644 --- a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-id-with-overridden-global-in-namespace/options.json +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-id-with-overridden-global-in-namespace/options.json @@ -1,13 +1,16 @@ { "plugins": [ "external-helpers", - ["transform-modules-umd", { - "globals": { - "my custom module name": "foo.bar" - }, - "exactGlobals": true, - "loose": true - }] + [ + "transform-modules-umd", + { + "globals": { + "my custom module name": "foo.bar" + }, + "exactGlobals": true, + "loose": true + } + ] ], "moduleId": "my custom module name" } diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-id-with-overridden-global-in-very-nested-namespace/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-id-with-overridden-global-in-very-nested-namespace/options.json index cfe7588ad5fc..c41e884c8fa5 100644 --- a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-id-with-overridden-global-in-very-nested-namespace/options.json +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-id-with-overridden-global-in-very-nested-namespace/options.json @@ -1,13 +1,16 @@ { "plugins": [ "external-helpers", - ["transform-modules-umd", { - "globals": { - "my custom module name": "foo.bar.baz.qux" - }, - "exactGlobals": true, - "loose": true - }] + [ + "transform-modules-umd", + { + "globals": { + "my custom module name": "foo.bar.baz.qux" + }, + "exactGlobals": true, + "loose": true + } + ] ], "moduleId": "my custom module name" } diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-id-with-overridden-global/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-id-with-overridden-global/options.json index cb7f46a5ca76..02190d5d1ddd 100644 --- a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-id-with-overridden-global/options.json +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-id-with-overridden-global/options.json @@ -1,13 +1,16 @@ { "plugins": [ "external-helpers", - ["transform-modules-umd", { - "globals": { - "my custom module name": "baz" - }, - "exactGlobals": true, - "loose": true - }] + [ + "transform-modules-umd", + { + "globals": { + "my custom module name": "baz" + }, + "exactGlobals": true, + "loose": true + } + ] ], "moduleId": "my custom module name" } diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-id/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-id/options.json index 895e18b86360..ffec5e61b846 100644 --- a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-id/options.json +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-id/options.json @@ -1,8 +1,5 @@ { "sourceType": "module", "moduleId": "MyLib", - "plugins": [ - "external-helpers", - ["transform-modules-umd", { "loose": true }] - ] + "plugins": ["external-helpers", ["transform-modules-umd", { "loose": true }]] } diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name-with-overridden-global/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name-with-overridden-global/options.json index 83141a3a9b52..745ff7a7ea53 100644 --- a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name-with-overridden-global/options.json +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name-with-overridden-global/options.json @@ -1,13 +1,16 @@ { "plugins": [ "external-helpers", - ["transform-modules-umd", { - "globals": { - "umd/module-name-with-overridden-global/expected": "baz" - }, - "exactGlobals": true, - "loose": true - }] + [ + "transform-modules-umd", + { + "globals": { + "umd/module-name-with-overridden-global/expected": "baz" + }, + "exactGlobals": true, + "loose": true + } + ] ], "moduleIds": true } diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name/options.json index ab68188b076c..6ee8c312f9bf 100644 --- a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name/options.json +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name/options.json @@ -1,8 +1,5 @@ { "sourceType": "module", "moduleIds": true, - "plugins": [ - "external-helpers", - ["transform-modules-umd", { "loose": true }] - ] + "plugins": ["external-helpers", ["transform-modules-umd", { "loose": true }]] } diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/options.json index 5adcd9509c4d..4558224b4de9 100644 --- a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/options.json +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/options.json @@ -1,6 +1,3 @@ { - "plugins": [ - "external-helpers", - ["transform-modules-umd", { "loose": true }] - ] + "plugins": ["external-helpers", ["transform-modules-umd", { "loose": true }]] } diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/override-export-name/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/override-export-name/options.json index 4ca1bb3aaa3d..3b9f778ff833 100644 --- a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/override-export-name/options.json +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/override-export-name/options.json @@ -1,12 +1,15 @@ { "plugins": [ "external-helpers", - ["transform-modules-umd", { - "globals": { - "actual": "baz" - }, - "exactGlobals": true, - "loose": true - }] + [ + "transform-modules-umd", + { + "globals": { + "actual": "baz" + }, + "exactGlobals": true, + "loose": true + } + ] ] } diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/override-import-name/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/override-import-name/options.json index b6bc2d258645..d7bd8e05b202 100644 --- a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/override-import-name/options.json +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/override-import-name/options.json @@ -1,11 +1,14 @@ { "plugins": [ "external-helpers", - ["transform-modules-umd", { - "globals": { - "es6-promise": "Promise" - }, - "loose": true - }] + [ + "transform-modules-umd", + { + "globals": { + "es6-promise": "Promise" + }, + "loose": true + } + ] ] } diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/imports-exact-globals-false-with-overrides/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/imports-exact-globals-false-with-overrides/options.json index b5e7fbec6045..9150394dc950 100644 --- a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/imports-exact-globals-false-with-overrides/options.json +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/imports-exact-globals-false-with-overrides/options.json @@ -1,12 +1,15 @@ { "plugins": [ "external-helpers", - ["transform-modules-umd", { - "globals": { - "foo-bar": "fooBAR", - "./mylib/foo-bar": "mylib.fooBar", - "fizzbuzz": "fizz.buzz" + [ + "transform-modules-umd", + { + "globals": { + "foo-bar": "fooBAR", + "./mylib/foo-bar": "mylib.fooBar", + "fizzbuzz": "fizz.buzz" + } } - }] + ] ] } diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/imports-exact-globals-true-with-overrides/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/imports-exact-globals-true-with-overrides/options.json index c5be69b192d4..291cf1a9f098 100644 --- a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/imports-exact-globals-true-with-overrides/options.json +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/imports-exact-globals-true-with-overrides/options.json @@ -1,13 +1,16 @@ { "plugins": [ "external-helpers", - ["transform-modules-umd", { - "globals": { - "foo-bar": "fooBAR", - "./mylib/foo-bar": "mylib.fooBar", - "fizzbuzz": "fizz.buzz" - }, - "exactGlobals": true - }] + [ + "transform-modules-umd", + { + "globals": { + "foo-bar": "fooBAR", + "./mylib/foo-bar": "mylib.fooBar", + "fizzbuzz": "fizz.buzz" + }, + "exactGlobals": true + } + ] ] } diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/imports-exact-globals-true/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/imports-exact-globals-true/options.json index 0155b429f007..37d2c6f3de96 100644 --- a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/imports-exact-globals-true/options.json +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/imports-exact-globals-true/options.json @@ -1,8 +1,11 @@ { "plugins": [ "external-helpers", - ["transform-modules-umd", { - "exactGlobals": true - }] + [ + "transform-modules-umd", + { + "exactGlobals": true + } + ] ] } diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-id-with-overridden-global-in-namespace/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-id-with-overridden-global-in-namespace/options.json index 268451f559f7..bfb74325603a 100644 --- a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-id-with-overridden-global-in-namespace/options.json +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-id-with-overridden-global-in-namespace/options.json @@ -1,12 +1,15 @@ { "plugins": [ "external-helpers", - ["transform-modules-umd", { - "globals": { - "my custom module name": "foo.bar" - }, - "exactGlobals": true - }] + [ + "transform-modules-umd", + { + "globals": { + "my custom module name": "foo.bar" + }, + "exactGlobals": true + } + ] ], "moduleId": "my custom module name" } diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-id-with-overridden-global-in-very-nested-namespace/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-id-with-overridden-global-in-very-nested-namespace/options.json index 9d933e14aae8..13f94a5fe65a 100644 --- a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-id-with-overridden-global-in-very-nested-namespace/options.json +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-id-with-overridden-global-in-very-nested-namespace/options.json @@ -1,12 +1,15 @@ { "plugins": [ "external-helpers", - ["transform-modules-umd", { - "globals": { - "my custom module name": "foo.bar.baz.qux" - }, - "exactGlobals": true - }] + [ + "transform-modules-umd", + { + "globals": { + "my custom module name": "foo.bar.baz.qux" + }, + "exactGlobals": true + } + ] ], "moduleId": "my custom module name" } diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-id-with-overridden-global/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-id-with-overridden-global/options.json index 7ff6be693446..13966c9b1a2f 100644 --- a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-id-with-overridden-global/options.json +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-id-with-overridden-global/options.json @@ -1,12 +1,15 @@ { "plugins": [ "external-helpers", - ["transform-modules-umd", { - "globals": { - "my custom module name": "baz" - }, - "exactGlobals": true - }] + [ + "transform-modules-umd", + { + "globals": { + "my custom module name": "baz" + }, + "exactGlobals": true + } + ] ], "moduleId": "my custom module name" } diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-name-with-overridden-global/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-name-with-overridden-global/options.json index 8f52e708b116..369639e804b5 100644 --- a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-name-with-overridden-global/options.json +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-name-with-overridden-global/options.json @@ -1,12 +1,15 @@ { "plugins": [ "external-helpers", - ["transform-modules-umd", { - "globals": { - "umd/module-name-with-overridden-global/expected": "baz" - }, - "exactGlobals": true - }] + [ + "transform-modules-umd", + { + "globals": { + "umd/module-name-with-overridden-global/expected": "baz" + }, + "exactGlobals": true + } + ] ], "moduleIds": true } diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/override-export-name/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/override-export-name/options.json index ecacc2971d4f..779b17b7ea20 100644 --- a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/override-export-name/options.json +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/override-export-name/options.json @@ -1,11 +1,14 @@ { "plugins": [ "external-helpers", - ["transform-modules-umd", { - "globals": { - "actual": "baz" - }, - "exactGlobals": true - }] + [ + "transform-modules-umd", + { + "globals": { + "actual": "baz" + }, + "exactGlobals": true + } + ] ] } diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/override-import-name/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/override-import-name/options.json index b0885c00c50a..4805fd16485b 100644 --- a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/override-import-name/options.json +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/override-import-name/options.json @@ -1,10 +1,13 @@ { "plugins": [ "external-helpers", - ["transform-modules-umd", { - "globals": { + [ + "transform-modules-umd", + { + "globals": { "es6-promise": "Promise" } - }] + } + ] ] } diff --git a/packages/babel-plugin-transform-new-target/package.json b/packages/babel-plugin-transform-new-target/package.json index d039335bc120..136faddc7297 100644 --- a/packages/babel-plugin-transform-new-target/package.json +++ b/packages/babel-plugin-transform-new-target/package.json @@ -1,23 +1,26 @@ { "name": "@babel/plugin-transform-new-target", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Transforms new.target meta property", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-new-target", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52", - "@babel/plugin-proposal-class-properties": "7.0.0-beta.52", - "@babel/plugin-transform-arrow-functions": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0", + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-new-target/test/fixtures/general/class-properties/options.json b/packages/babel-plugin-transform-new-target/test/fixtures/general/class-properties/options.json index 62f45833676f..fafe51d4fbf0 100644 --- a/packages/babel-plugin-transform-new-target/test/fixtures/general/class-properties/options.json +++ b/packages/babel-plugin-transform-new-target/test/fixtures/general/class-properties/options.json @@ -1,3 +1,7 @@ { - "plugins": ["transform-new-target", "transform-arrow-functions", ["proposal-class-properties", {"loose": true}]] + "plugins": [ + "transform-new-target", + "transform-arrow-functions", + ["proposal-class-properties", { "loose": true }] + ] } diff --git a/packages/babel-plugin-transform-object-assign/package.json b/packages/babel-plugin-transform-object-assign/package.json index 6a67c27779ca..bc74f3a91457 100644 --- a/packages/babel-plugin-transform-object-assign/package.json +++ b/packages/babel-plugin-transform-object-assign/package.json @@ -1,22 +1,25 @@ { "name": "@babel/plugin-transform-object-assign", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Replace Object.assign with an inline helper", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-object-assign", "author": "Jed Watson", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-object-set-prototype-of-to-assign/LICENSE b/packages/babel-plugin-transform-object-set-prototype-of-to-assign/LICENSE deleted file mode 100644 index 369e18d94296..000000000000 --- a/packages/babel-plugin-transform-object-set-prototype-of-to-assign/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) 2015 Sebastian McKenzie - -MIT License - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/packages/babel-plugin-transform-object-set-prototype-of-to-assign/package.json b/packages/babel-plugin-transform-object-set-prototype-of-to-assign/package.json index 9e652f57a8d0..cccc0e77f061 100644 --- a/packages/babel-plugin-transform-object-set-prototype-of-to-assign/package.json +++ b/packages/babel-plugin-transform-object-set-prototype-of-to-assign/package.json @@ -1,21 +1,24 @@ { "name": "@babel/plugin-transform-object-set-prototype-of-to-assign", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Turn Object.setPrototypeOf to assignments", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-object-set-prototype-of-to-assign", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-object-super/package.json b/packages/babel-plugin-transform-object-super/package.json index 717a368520c8..7c8a090d2cfe 100644 --- a/packages/babel-plugin-transform-object-super/package.json +++ b/packages/babel-plugin-transform-object-super/package.json @@ -1,22 +1,25 @@ { "name": "@babel/plugin-transform-object-super", - "version": "7.0.0-beta.52", + "version": "7.1.0", "description": "Compile ES2015 object super to ES5", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-object-super", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/helper-replace-supers": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.1.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-object-super/test/fixtures/object-super/options.json b/packages/babel-plugin-transform-object-super/test/fixtures/object-super/options.json index 57174b351e98..6109d3e79027 100644 --- a/packages/babel-plugin-transform-object-super/test/fixtures/object-super/options.json +++ b/packages/babel-plugin-transform-object-super/test/fixtures/object-super/options.json @@ -1,3 +1,7 @@ { - "plugins": ["external-helpers", "transform-object-super", "transform-shorthand-properties"] + "plugins": [ + "external-helpers", + "transform-object-super", + "transform-shorthand-properties" + ] } diff --git a/packages/babel-plugin-transform-parameters/package.json b/packages/babel-plugin-transform-parameters/package.json index 1a11dd79d066..be76841ecf45 100644 --- a/packages/babel-plugin-transform-parameters/package.json +++ b/packages/babel-plugin-transform-parameters/package.json @@ -1,23 +1,26 @@ { "name": "@babel/plugin-transform-parameters", - "version": "7.0.0-beta.52", + "version": "7.1.0", "description": "Compile ES2015 default and rest parameters to ES5", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-parameters", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "dependencies": { - "@babel/helper-call-delegate": "7.0.0-beta.52", - "@babel/helper-get-function-arity": "7.0.0-beta.52", - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-call-delegate": "^7.1.0", + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" }, "keywords": [ "babel-plugin" ], "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-parameters/src/params.js b/packages/babel-plugin-transform-parameters/src/params.js index 391c87160e51..000a8505a581 100644 --- a/packages/babel-plugin-transform-parameters/src/params.js +++ b/packages/babel-plugin-transform-parameters/src/params.js @@ -60,7 +60,8 @@ export default function convertFunctionParams(path, loose) { for (let i = 0; i < params.length; i++) { const param = params[i]; - if (param.isAssignmentPattern() && loose) { + const paramIsAssignmentPattern = param.isAssignmentPattern(); + if (paramIsAssignmentPattern && (loose || node.kind === "set")) { const left = param.get("left"); const right = param.get("right"); @@ -87,13 +88,12 @@ export default function convertFunctionParams(path, loose) { ); param.replaceWith(paramName); } - } else if (param.isAssignmentPattern()) { + } else if (paramIsAssignmentPattern) { if (firstOptionalIndex === null) firstOptionalIndex = i; const left = param.get("left"); const right = param.get("right"); - // if (!state.iife) { if (right.isIdentifier() && !isSafeBinding(scope, right.node)) { // the right hand side references a parameter diff --git a/packages/babel-plugin-transform-parameters/src/rest.js b/packages/babel-plugin-transform-parameters/src/rest.js index 4f0817b857de..da85c7e5ad95 100644 --- a/packages/babel-plugin-transform-parameters/src/rest.js +++ b/packages/babel-plugin-transform-parameters/src/rest.js @@ -228,10 +228,20 @@ export default function convertFunctionRest(path) { const { node, scope } = path; if (!hasRest(node)) return false; - const rest = node.params.pop().argument; + let rest = node.params.pop().argument; const argsId = t.identifier("arguments"); + if (t.isPattern(rest)) { + const pattern = rest; + rest = scope.generateUidIdentifier("ref"); + + const declar = t.variableDeclaration("let", [ + t.variableDeclarator(pattern, rest), + ]); + node.body.body.unshift(declar); + } + // check and optimise for extremely common cases const state = { references: [], diff --git a/packages/babel-plugin-transform-parameters/test/fixtures/parameters/default-setter/exec.js b/packages/babel-plugin-transform-parameters/test/fixtures/parameters/default-setter/exec.js new file mode 100644 index 000000000000..f11b28a62362 --- /dev/null +++ b/packages/babel-plugin-transform-parameters/test/fixtures/parameters/default-setter/exec.js @@ -0,0 +1,9 @@ +const defaultValue = 1; +const obj = { + set field(num = defaultValue) { + this.num = num; + } +}; +obj.field = void 0; + +expect(obj.num).toBe(defaultValue); diff --git a/packages/babel-plugin-transform-parameters/test/fixtures/parameters/default-setter/input.js b/packages/babel-plugin-transform-parameters/test/fixtures/parameters/default-setter/input.js new file mode 100644 index 000000000000..d2fd1cdef573 --- /dev/null +++ b/packages/babel-plugin-transform-parameters/test/fixtures/parameters/default-setter/input.js @@ -0,0 +1,5 @@ +const obj = { + set field(num = 1) { + this.num = num; + } +}; diff --git a/packages/babel-plugin-transform-parameters/test/fixtures/parameters/default-setter/output.js b/packages/babel-plugin-transform-parameters/test/fixtures/parameters/default-setter/output.js new file mode 100644 index 000000000000..d55125d95394 --- /dev/null +++ b/packages/babel-plugin-transform-parameters/test/fixtures/parameters/default-setter/output.js @@ -0,0 +1,10 @@ +var obj = { + set field(num) { + if (num === void 0) { + num = 1; + } + + this.num = num; + } + +}; diff --git a/packages/babel-plugin-transform-parameters/test/fixtures/parameters/regression-4634/options.json b/packages/babel-plugin-transform-parameters/test/fixtures/parameters/regression-4634/options.json index 8782f0868642..058bc43b2796 100644 --- a/packages/babel-plugin-transform-parameters/test/fixtures/parameters/regression-4634/options.json +++ b/packages/babel-plugin-transform-parameters/test/fixtures/parameters/regression-4634/options.json @@ -1,3 +1,9 @@ { - "plugins": ["syntax-flow", "transform-flow-strip-types", "transform-parameters", "transform-destructuring", "transform-arrow-functions"] + "plugins": [ + "syntax-flow", + "transform-flow-strip-types", + "transform-parameters", + "transform-destructuring", + "transform-arrow-functions" + ] } diff --git a/packages/babel-plugin-transform-parameters/test/fixtures/parameters/rest-arrow-functions/options.json b/packages/babel-plugin-transform-parameters/test/fixtures/parameters/rest-arrow-functions/options.json index c1a83eb8fbb8..51a1d6759c31 100644 --- a/packages/babel-plugin-transform-parameters/test/fixtures/parameters/rest-arrow-functions/options.json +++ b/packages/babel-plugin-transform-parameters/test/fixtures/parameters/rest-arrow-functions/options.json @@ -1,6 +1,6 @@ { "plugins": [ - ["proposal-class-properties", {"loose": true}], + ["proposal-class-properties", { "loose": true }], "external-helpers", "syntax-flow", "transform-parameters", diff --git a/packages/babel-plugin-transform-parameters/test/fixtures/parameters/rest-async-arrow-functions/options.json b/packages/babel-plugin-transform-parameters/test/fixtures/parameters/rest-async-arrow-functions/options.json index 367061ac529b..a2a7a5798b33 100644 --- a/packages/babel-plugin-transform-parameters/test/fixtures/parameters/rest-async-arrow-functions/options.json +++ b/packages/babel-plugin-transform-parameters/test/fixtures/parameters/rest-async-arrow-functions/options.json @@ -1,3 +1,8 @@ { - "plugins": ["external-helpers", "transform-parameters", "transform-async-to-generator", "transform-arrow-functions"] + "plugins": [ + "external-helpers", + "transform-parameters", + "transform-async-to-generator", + "transform-arrow-functions" + ] } diff --git a/packages/babel-plugin-transform-parameters/test/fixtures/parameters/rest-patterns/exec.js b/packages/babel-plugin-transform-parameters/test/fixtures/parameters/rest-patterns/exec.js new file mode 100644 index 000000000000..dcb3e1a319e0 --- /dev/null +++ b/packages/babel-plugin-transform-parameters/test/fixtures/parameters/rest-patterns/exec.js @@ -0,0 +1,5 @@ +function foo(...{ length }) { + return length; +} + +expect(foo(1, 2, 3)).toEqual(3); diff --git a/packages/babel-plugin-transform-parameters/test/fixtures/parameters/rest-patterns/input.js b/packages/babel-plugin-transform-parameters/test/fixtures/parameters/rest-patterns/input.js new file mode 100644 index 000000000000..a19bb5e1f2e1 --- /dev/null +++ b/packages/babel-plugin-transform-parameters/test/fixtures/parameters/rest-patterns/input.js @@ -0,0 +1 @@ +function foo(...[a]) {} diff --git a/packages/babel-plugin-transform-parameters/test/fixtures/parameters/rest-patterns/output.js b/packages/babel-plugin-transform-parameters/test/fixtures/parameters/rest-patterns/output.js new file mode 100644 index 000000000000..ba8bf6bb3f5d --- /dev/null +++ b/packages/babel-plugin-transform-parameters/test/fixtures/parameters/rest-patterns/output.js @@ -0,0 +1,7 @@ +function foo() { + for (var _len = arguments.length, _ref = new Array(_len), _key = 0; _key < _len; _key++) { + _ref[_key] = arguments[_key]; + } + + var a = _ref[0]; +} diff --git a/packages/babel-plugin-transform-parameters/test/fixtures/regression/4209/options.json b/packages/babel-plugin-transform-parameters/test/fixtures/regression/4209/options.json index 00f205c1f4b7..b677ef4810d0 100644 --- a/packages/babel-plugin-transform-parameters/test/fixtures/regression/4209/options.json +++ b/packages/babel-plugin-transform-parameters/test/fixtures/regression/4209/options.json @@ -1,3 +1,8 @@ { - "plugins": ["transform-parameters", "transform-classes", "transform-modules-commonjs", "transform-block-scoping"] + "plugins": [ + "transform-parameters", + "transform-classes", + "transform-modules-commonjs", + "transform-block-scoping" + ] } diff --git a/packages/babel-plugin-transform-parameters/test/fixtures/use-loose-option/default-assignment-with-types/options.json b/packages/babel-plugin-transform-parameters/test/fixtures/use-loose-option/default-assignment-with-types/options.json index 2b03e13029be..9fae0859abde 100644 --- a/packages/babel-plugin-transform-parameters/test/fixtures/use-loose-option/default-assignment-with-types/options.json +++ b/packages/babel-plugin-transform-parameters/test/fixtures/use-loose-option/default-assignment-with-types/options.json @@ -1,6 +1,6 @@ { "plugins": [ "transform-flow-strip-types", - ["transform-parameters", { "loose": true } ] + ["transform-parameters", { "loose": true }] ] } diff --git a/packages/babel-plugin-transform-parameters/test/fixtures/use-loose-option/options.json b/packages/babel-plugin-transform-parameters/test/fixtures/use-loose-option/options.json index 1205784cd1b1..aa8f6cf317dd 100644 --- a/packages/babel-plugin-transform-parameters/test/fixtures/use-loose-option/options.json +++ b/packages/babel-plugin-transform-parameters/test/fixtures/use-loose-option/options.json @@ -3,7 +3,7 @@ "proposal-class-properties", "external-helpers", "syntax-flow", - ["transform-parameters", { "loose": true } ], + ["transform-parameters", { "loose": true }], "transform-block-scoping", "transform-spread", "transform-classes", diff --git a/packages/babel-plugin-transform-property-literals/package.json b/packages/babel-plugin-transform-property-literals/package.json index d56080f01b46..0235e684a0e5 100644 --- a/packages/babel-plugin-transform-property-literals/package.json +++ b/packages/babel-plugin-transform-property-literals/package.json @@ -1,21 +1,24 @@ { "name": "@babel/plugin-transform-property-literals", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Ensure that reserved words are quoted in object property keys", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-property-literals", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-property-mutators/package.json b/packages/babel-plugin-transform-property-mutators/package.json index e3234ffd9ab5..65aee855b5ea 100644 --- a/packages/babel-plugin-transform-property-mutators/package.json +++ b/packages/babel-plugin-transform-property-mutators/package.json @@ -1,22 +1,25 @@ { "name": "@babel/plugin-transform-property-mutators", - "version": "7.0.0-beta.52", + "version": "7.1.0", "description": "Compile ES5 property mutator shorthand syntax to Object.defineProperty", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-property-mutators", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-define-map": "7.0.0-beta.52", - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-define-map": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-proto-to-assign/package.json b/packages/babel-plugin-transform-proto-to-assign/package.json index efbb2c6a3e07..c596e6282095 100644 --- a/packages/babel-plugin-transform-proto-to-assign/package.json +++ b/packages/babel-plugin-transform-proto-to-assign/package.json @@ -1,21 +1,24 @@ { "name": "@babel/plugin-transform-proto-to-assign", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Babel plugin for turning __proto__ into a shallow property clone", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-proto-to-assign", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-react-constant-elements/package.json b/packages/babel-plugin-transform-react-constant-elements/package.json index 71b9ba59442c..8d275fc7661f 100644 --- a/packages/babel-plugin-transform-react-constant-elements/package.json +++ b/packages/babel-plugin-transform-react-constant-elements/package.json @@ -1,22 +1,25 @@ { "name": "@babel/plugin-transform-react-constant-elements", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Treat React JSX elements as value types and hoist them to the highest scope", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-react-constant-elements", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-annotate-as-pure": "7.0.0-beta.52", - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/async-function/options.json b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/async-function/options.json index e85df790bc4f..65bce8308611 100644 --- a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/async-function/options.json +++ b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/async-function/options.json @@ -1,3 +1,7 @@ { - "plugins": ["transform-async-to-generator", "transform-react-constant-elements", "syntax-jsx"] + "plugins": [ + "transform-async-to-generator", + "transform-react-constant-elements", + "syntax-jsx" + ] } diff --git a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/class-assign-unreferenced-param-deopt/options.json b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/class-assign-unreferenced-param-deopt/options.json index 3f36f45dbbd7..d0289c551e6c 100644 --- a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/class-assign-unreferenced-param-deopt/options.json +++ b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/class-assign-unreferenced-param-deopt/options.json @@ -1,3 +1,7 @@ { - "plugins": [["proposal-class-properties", {"loose": true}], "transform-react-constant-elements", "syntax-jsx"] + "plugins": [ + ["proposal-class-properties", { "loose": true }], + "transform-react-constant-elements", + "syntax-jsx" + ] } diff --git a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/inline-elements/options.json b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/inline-elements/options.json index 533a4539e5bf..019738130a43 100644 --- a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/inline-elements/options.json +++ b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/inline-elements/options.json @@ -1,3 +1,7 @@ { - "plugins": ["transform-react-constant-elements", "transform-react-inline-elements", "syntax-jsx"] + "plugins": [ + "transform-react-constant-elements", + "transform-react-inline-elements", + "syntax-jsx" + ] } diff --git a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/member-expression-this/options.json b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/member-expression-this/options.json index ae2e4d61956d..9045ec477fee 100644 --- a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/member-expression-this/options.json +++ b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/member-expression-this/options.json @@ -1,3 +1,7 @@ { - "plugins": ["syntax-jsx", "transform-react-constant-elements", ["proposal-class-properties", {"loose": true}]] + "plugins": [ + "syntax-jsx", + "transform-react-constant-elements", + ["proposal-class-properties", { "loose": true }] + ] } diff --git a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/member-expression/options.json b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/member-expression/options.json index ae2e4d61956d..9045ec477fee 100644 --- a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/member-expression/options.json +++ b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/member-expression/options.json @@ -1,3 +1,7 @@ { - "plugins": ["syntax-jsx", "transform-react-constant-elements", ["proposal-class-properties", {"loose": true}]] + "plugins": [ + "syntax-jsx", + "transform-react-constant-elements", + ["proposal-class-properties", { "loose": true }] + ] } diff --git a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/parameter-destructure-multi/options.json b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/parameter-destructure-multi/options.json index 159e5bbbe8da..ded6f4943fc7 100644 --- a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/parameter-destructure-multi/options.json +++ b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/parameter-destructure-multi/options.json @@ -1,4 +1,8 @@ { - - "plugins": ["transform-destructuring", "transform-parameters", "transform-react-constant-elements", "syntax-jsx"] + "plugins": [ + "transform-destructuring", + "transform-parameters", + "transform-react-constant-elements", + "syntax-jsx" + ] } diff --git a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/parameter-destructure-rest/options.json b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/parameter-destructure-rest/options.json index e03716d5e22f..1b0cc13a7a3f 100644 --- a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/parameter-destructure-rest/options.json +++ b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/parameter-destructure-rest/options.json @@ -1,6 +1,11 @@ { - - "plugins": ["transform-destructuring", "transform-parameters", - "transform-spread", "syntax-object-rest-spread", - "transform-react-constant-elements", "syntax-jsx", "external-helpers"] + "plugins": [ + "transform-destructuring", + "transform-parameters", + "transform-spread", + "syntax-object-rest-spread", + "transform-react-constant-elements", + "syntax-jsx", + "external-helpers" + ] } diff --git a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/parameter-destructure-spread-deopt/options.json b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/parameter-destructure-spread-deopt/options.json index e03716d5e22f..1b0cc13a7a3f 100644 --- a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/parameter-destructure-spread-deopt/options.json +++ b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/parameter-destructure-spread-deopt/options.json @@ -1,6 +1,11 @@ { - - "plugins": ["transform-destructuring", "transform-parameters", - "transform-spread", "syntax-object-rest-spread", - "transform-react-constant-elements", "syntax-jsx", "external-helpers"] + "plugins": [ + "transform-destructuring", + "transform-parameters", + "transform-spread", + "syntax-object-rest-spread", + "transform-react-constant-elements", + "syntax-jsx", + "external-helpers" + ] } diff --git a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/parameter-destructure/options.json b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/parameter-destructure/options.json index 159e5bbbe8da..ded6f4943fc7 100644 --- a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/parameter-destructure/options.json +++ b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/parameter-destructure/options.json @@ -1,4 +1,8 @@ { - - "plugins": ["transform-destructuring", "transform-parameters", "transform-react-constant-elements", "syntax-jsx"] + "plugins": [ + "transform-destructuring", + "transform-parameters", + "transform-react-constant-elements", + "syntax-jsx" + ] } diff --git a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/pure-expression-whitelist-deopt/options.json b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/pure-expression-whitelist-deopt/options.json index 61a6bd63f40f..c1df201efa42 100644 --- a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/pure-expression-whitelist-deopt/options.json +++ b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/pure-expression-whitelist-deopt/options.json @@ -1,7 +1,9 @@ { - "plugins": [ - ["transform-react-constant-elements", {"allowMutablePropsOnTags": ["FormattedNumber"]}], + [ + "transform-react-constant-elements", + { "allowMutablePropsOnTags": ["FormattedNumber"] } + ], "syntax-jsx" ] } diff --git a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/pure-expression-whitelist-member/options.json b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/pure-expression-whitelist-member/options.json index f690dd8c3493..350e92374453 100644 --- a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/pure-expression-whitelist-member/options.json +++ b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/pure-expression-whitelist-member/options.json @@ -1,7 +1,9 @@ { - "plugins": [ - ["transform-react-constant-elements", {"allowMutablePropsOnTags": ["FormattedMessage"]}], + [ + "transform-react-constant-elements", + { "allowMutablePropsOnTags": ["FormattedMessage"] } + ], "syntax-jsx" ] } diff --git a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/pure-expression-whitelist/options.json b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/pure-expression-whitelist/options.json index f690dd8c3493..350e92374453 100644 --- a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/pure-expression-whitelist/options.json +++ b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/pure-expression-whitelist/options.json @@ -1,7 +1,9 @@ { - "plugins": [ - ["transform-react-constant-elements", {"allowMutablePropsOnTags": ["FormattedMessage"]}], + [ + "transform-react-constant-elements", + { "allowMutablePropsOnTags": ["FormattedMessage"] } + ], "syntax-jsx" ] } diff --git a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/regression-node-type-export-default/options.json b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/regression-node-type-export-default/options.json index 60d815dd9ac5..72ce72ca0b17 100644 --- a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/regression-node-type-export-default/options.json +++ b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/regression-node-type-export-default/options.json @@ -1,6 +1,3 @@ { - "plugins": [ - "transform-react-jsx", - "transform-react-constant-elements" - ] + "plugins": ["transform-react-jsx", "transform-react-constant-elements"] } diff --git a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/regression-node-type-export/options.json b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/regression-node-type-export/options.json index 60d815dd9ac5..72ce72ca0b17 100644 --- a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/regression-node-type-export/options.json +++ b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/regression-node-type-export/options.json @@ -1,6 +1,3 @@ { - "plugins": [ - "transform-react-jsx", - "transform-react-constant-elements" - ] + "plugins": ["transform-react-jsx", "transform-react-constant-elements"] } diff --git a/packages/babel-plugin-transform-react-display-name/package.json b/packages/babel-plugin-transform-react-display-name/package.json index f68883304eb1..55f2ddf5edd8 100644 --- a/packages/babel-plugin-transform-react-display-name/package.json +++ b/packages/babel-plugin-transform-react-display-name/package.json @@ -1,21 +1,24 @@ { "name": "@babel/plugin-transform-react-display-name", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Add displayName to React.createClass calls", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-react-display-name", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-react-inline-elements/package.json b/packages/babel-plugin-transform-react-inline-elements/package.json index 9a3bbedcba2b..bd010d711564 100644 --- a/packages/babel-plugin-transform-react-inline-elements/package.json +++ b/packages/babel-plugin-transform-react-inline-elements/package.json @@ -1,22 +1,25 @@ { "name": "@babel/plugin-transform-react-inline-elements", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Turn JSX elements into exploded React objects", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-react-inline-elements", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-builder-react-jsx": "7.0.0-beta.52", - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-builder-react-jsx": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-react-inline-elements/test/fixtures/options.json b/packages/babel-plugin-transform-react-inline-elements/test/fixtures/options.json index c0159ffbdb16..ba074de5fb6d 100644 --- a/packages/babel-plugin-transform-react-inline-elements/test/fixtures/options.json +++ b/packages/babel-plugin-transform-react-inline-elements/test/fixtures/options.json @@ -1,3 +1,8 @@ { - "plugins": ["external-helpers", "syntax-jsx", "transform-react-inline-elements", "transform-react-jsx"] + "plugins": [ + "external-helpers", + "syntax-jsx", + "transform-react-inline-elements", + "transform-react-jsx" + ] } diff --git a/packages/babel-plugin-transform-react-jsx-compat/package.json b/packages/babel-plugin-transform-react-jsx-compat/package.json index aa2c6b84a351..e33913bfa0b4 100644 --- a/packages/babel-plugin-transform-react-jsx-compat/package.json +++ b/packages/babel-plugin-transform-react-jsx-compat/package.json @@ -1,22 +1,25 @@ { "name": "@babel/plugin-transform-react-jsx-compat", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Turn JSX into React Pre-0.12 function calls", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-react-jsx-compat", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-builder-react-jsx": "7.0.0-beta.52", - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-builder-react-jsx": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-react-jsx-self/package.json b/packages/babel-plugin-transform-react-jsx-self/package.json index 58f1633205cd..cd7245e2c6d8 100644 --- a/packages/babel-plugin-transform-react-jsx-self/package.json +++ b/packages/babel-plugin-transform-react-jsx-self/package.json @@ -1,22 +1,25 @@ { "name": "@babel/plugin-transform-react-jsx-self", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Add a __self prop to all JSX Elements", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-react-jsx-self", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/plugin-syntax-jsx": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-react-jsx-source/package.json b/packages/babel-plugin-transform-react-jsx-source/package.json index 55214273c625..e8c1bf58df4e 100644 --- a/packages/babel-plugin-transform-react-jsx-source/package.json +++ b/packages/babel-plugin-transform-react-jsx-source/package.json @@ -1,22 +1,25 @@ { "name": "@babel/plugin-transform-react-jsx-source", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Add a __source prop to all JSX Elements", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-react-jsx-source", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/plugin-syntax-jsx": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } 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 71add8d1b52c..70820c61e0eb 100644 --- a/packages/babel-plugin-transform-react-jsx-source/src/index.js +++ b/packages/babel-plugin-transform-react-jsx-source/src/index.js @@ -59,10 +59,13 @@ export default declare(api => { const fileNameIdentifier = path.scope.generateUidIdentifier( FILE_NAME_VAR, ); - path.hub.file.scope.push({ - id: fileNameIdentifier, - init: t.stringLiteral(fileName), - }); + const scope = path.hub.getScope(); + if (scope) { + scope.push({ + id: fileNameIdentifier, + init: t.stringLiteral(fileName), + }); + } state.fileNameIdentifier = fileNameIdentifier; } diff --git a/packages/babel-plugin-transform-react-jsx/package.json b/packages/babel-plugin-transform-react-jsx/package.json index f8b0a6d7bd14..31b772d4c4ef 100644 --- a/packages/babel-plugin-transform-react-jsx/package.json +++ b/packages/babel-plugin-transform-react-jsx/package.json @@ -1,23 +1,26 @@ { "name": "@babel/plugin-transform-react-jsx", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Turn JSX into React function calls", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-react-jsx", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-builder-react-jsx": "7.0.0-beta.52", - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/plugin-syntax-jsx": "7.0.0-beta.52" + "@babel/helper-builder-react-jsx": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/honor-custom-jsx-comment-if-jsx-pragma-option-set/options.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/honor-custom-jsx-comment-if-jsx-pragma-option-set/options.json index e307cfbd7bef..17c61ec6cf9d 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/honor-custom-jsx-comment-if-jsx-pragma-option-set/options.json +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/honor-custom-jsx-comment-if-jsx-pragma-option-set/options.json @@ -1,5 +1,3 @@ { - "plugins": [ - ["transform-react-jsx", {"pragma": "foo.bar"}] - ] -} \ No newline at end of file + "plugins": [["transform-react-jsx", { "pragma": "foo.bar" }]] +} diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/optimisation.react.constant-elements/options.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/optimisation.react.constant-elements/options.json index 2bd190eedc9a..35f1579a971d 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/optimisation.react.constant-elements/options.json +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/optimisation.react.constant-elements/options.json @@ -1,3 +1,8 @@ { - "plugins": ["external-helpers", "transform-react-constant-elements", "transform-classes", "syntax-jsx"] + "plugins": [ + "external-helpers", + "transform-react-constant-elements", + "transform-classes", + "syntax-jsx" + ] } diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/options.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/options.json index 5296f7058aa7..2266a21df9da 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/options.json +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/options.json @@ -1,3 +1,9 @@ { - "plugins": ["external-helpers", "syntax-jsx", "transform-react-jsx", "transform-react-display-name", "transform-arrow-functions"] + "plugins": [ + "external-helpers", + "syntax-jsx", + "transform-react-jsx", + "transform-react-display-name", + "transform-arrow-functions" + ] } diff --git a/packages/babel-plugin-transform-regenerator/package.json b/packages/babel-plugin-transform-regenerator/package.json index d7c9c2eae29b..8a7e6dbe7698 100644 --- a/packages/babel-plugin-transform-regenerator/package.json +++ b/packages/babel-plugin-transform-regenerator/package.json @@ -2,7 +2,7 @@ "name": "@babel/plugin-transform-regenerator", "author": "Ben Newman ", "description": "Explode async and generator functions into a state machine.", - "version": "7.0.0-beta.52", + "version": "7.0.0", "homepage": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-regenerator", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-regenerator", "main": "lib/index.js", @@ -10,11 +10,14 @@ "regenerator-transform": "^0.13.3" }, "license": "MIT", + "publishConfig": { + "access": "public" + }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-regenerator/test/fixtures/arrow-inside-generator/options.json b/packages/babel-plugin-transform-regenerator/test/fixtures/arrow-inside-generator/options.json index 2d12be1f555d..9e14e1cefa56 100644 --- a/packages/babel-plugin-transform-regenerator/test/fixtures/arrow-inside-generator/options.json +++ b/packages/babel-plugin-transform-regenerator/test/fixtures/arrow-inside-generator/options.json @@ -1,5 +1,3 @@ { - "plugins": [ - "transform-regenerator" - ] + "plugins": ["transform-regenerator"] } diff --git a/packages/babel-plugin-transform-regenerator/test/fixtures/class-argument-scope/options.json b/packages/babel-plugin-transform-regenerator/test/fixtures/class-argument-scope/options.json index b207aefdded3..002b4aa0d58e 100644 --- a/packages/babel-plugin-transform-regenerator/test/fixtures/class-argument-scope/options.json +++ b/packages/babel-plugin-transform-regenerator/test/fixtures/class-argument-scope/options.json @@ -1,5 +1,3 @@ { - "presets": [ - "env" - ] + "presets": ["env"] } diff --git a/packages/babel-plugin-transform-regenerator/test/fixtures/function-sent/options.json b/packages/babel-plugin-transform-regenerator/test/fixtures/function-sent/options.json index cf3901e90c4f..521191edd087 100644 --- a/packages/babel-plugin-transform-regenerator/test/fixtures/function-sent/options.json +++ b/packages/babel-plugin-transform-regenerator/test/fixtures/function-sent/options.json @@ -1,3 +1,8 @@ { - "plugins": ["syntax-function-sent", "transform-regenerator", "transform-parameters", "transform-block-scoping"] + "plugins": [ + "syntax-function-sent", + "transform-regenerator", + "transform-parameters", + "transform-block-scoping" + ] } diff --git a/packages/babel-plugin-transform-regenerator/test/fixtures/regression/4219/options.json b/packages/babel-plugin-transform-regenerator/test/fixtures/regression/4219/options.json index 5e6e8af76091..5daf3cffc575 100644 --- a/packages/babel-plugin-transform-regenerator/test/fixtures/regression/4219/options.json +++ b/packages/babel-plugin-transform-regenerator/test/fixtures/regression/4219/options.json @@ -1,7 +1,7 @@ { - "plugins": [ - "transform-parameters", - "transform-spread", - "transform-regenerator" - ] + "plugins": [ + "transform-parameters", + "transform-spread", + "transform-regenerator" + ] } diff --git a/packages/babel-plugin-transform-regenerator/test/fixtures/regression/T7041/output.js b/packages/babel-plugin-transform-regenerator/test/fixtures/regression/T7041/output.js index d122e2c48106..a67193cb03ef 100644 --- a/packages/babel-plugin-transform-regenerator/test/fixtures/regression/T7041/output.js +++ b/packages/babel-plugin-transform-regenerator/test/fixtures/regression/T7041/output.js @@ -1,12 +1,10 @@ var _regeneratorRuntime = require("@babel/runtime/regenerator"); -var _Object$keys = require("@babel/runtime/core-js/object/keys"); - var _marked = /*#__PURE__*/ _regeneratorRuntime.mark(fn); -_Object$keys({}); +Object.keys({}); function fn() { return _regeneratorRuntime.wrap(function fn$(_context) { diff --git a/packages/babel-plugin-transform-regenerator/test/fixtures/regression/options.json b/packages/babel-plugin-transform-regenerator/test/fixtures/regression/options.json index b207aefdded3..002b4aa0d58e 100644 --- a/packages/babel-plugin-transform-regenerator/test/fixtures/regression/options.json +++ b/packages/babel-plugin-transform-regenerator/test/fixtures/regression/options.json @@ -1,5 +1,3 @@ { - "presets": [ - "env" - ] + "presets": ["env"] } diff --git a/packages/babel-plugin-transform-regenerator/test/fixtures/variable-renaming/retain-lines/options.json b/packages/babel-plugin-transform-regenerator/test/fixtures/variable-renaming/retain-lines/options.json index 21fd7445e25e..10db87c9fef0 100644 --- a/packages/babel-plugin-transform-regenerator/test/fixtures/variable-renaming/retain-lines/options.json +++ b/packages/babel-plugin-transform-regenerator/test/fixtures/variable-renaming/retain-lines/options.json @@ -1,6 +1,4 @@ { - "plugins": [ - "transform-regenerator" - ], + "plugins": ["transform-regenerator"], "retainLines": true } diff --git a/packages/babel-plugin-transform-reserved-words/package.json b/packages/babel-plugin-transform-reserved-words/package.json index dde8e2ee9fe9..c5976c384227 100644 --- a/packages/babel-plugin-transform-reserved-words/package.json +++ b/packages/babel-plugin-transform-reserved-words/package.json @@ -1,21 +1,24 @@ { "name": "@babel/plugin-transform-reserved-words", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Ensure that no reserved words are used.", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-reserved-words", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-runtime/.npmignore b/packages/babel-plugin-transform-runtime/.npmignore index f9806945836e..57e1671459aa 100644 --- a/packages/babel-plugin-transform-runtime/.npmignore +++ b/packages/babel-plugin-transform-runtime/.npmignore @@ -1,3 +1,4 @@ +scripts src test *.log diff --git a/packages/babel-plugin-transform-runtime/package.json b/packages/babel-plugin-transform-runtime/package.json index 62ceaf9b3952..167722dd9c42 100644 --- a/packages/babel-plugin-transform-runtime/package.json +++ b/packages/babel-plugin-transform-runtime/package.json @@ -1,22 +1,33 @@ { "name": "@babel/plugin-transform-runtime", - "version": "7.0.0-beta.52", + "version": "7.1.0", "description": "Externalise references to helpers and builtins, automatically polyfilling your code without polluting globals", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-runtime", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-module-imports": "7.0.0-beta.52", - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "resolve": "^1.8.1", + "semver": "^5.5.1" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0", + "@babel/helpers": "^7.0.0", + "@babel/plugin-transform-runtime": "^7.0.0", + "@babel/preset-env": "^7.0.0", + "@babel/runtime": "^7.0.0", + "@babel/template": "^7.0.0", + "@babel/types": "7.0.0-beta.53" } } diff --git a/packages/babel-plugin-transform-runtime/scripts/build-dist.js b/packages/babel-plugin-transform-runtime/scripts/build-dist.js new file mode 100644 index 000000000000..4f8375d284e9 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/scripts/build-dist.js @@ -0,0 +1,159 @@ +"use strict"; + +const path = require("path"); +const outputFile = require("output-file-sync"); +const helpers = require("@babel/helpers"); +const babel = require("@babel/core"); +const template = require("@babel/template"); +const t = require("@babel/types"); + +const transformRuntime = require("../"); +const getCorejs2Definitions = require("../lib/definitions").default; +const corejs2Definitions = getCorejs2Definitions(); + +writeHelpers("@babel/runtime"); + +writeCoreJS2("@babel/runtime-corejs2"); +writeHelpers("@babel/runtime-corejs2", { corejs: 2 }); + +function writeCoreJS2(runtimeName) { + const pkgDirname = getRuntimeRoot(runtimeName); + + const paths = ["is-iterable", "get-iterator"]; + + Object.keys(corejs2Definitions.builtins).forEach(key => { + const path = corejs2Definitions.builtins[key]; + paths.push(path); + }); + + Object.keys(corejs2Definitions.methods).forEach(key => { + const props = corejs2Definitions.methods[key]; + Object.keys(props).forEach(key2 => { + paths.push(props[key2]); + }); + }); + + paths.forEach(function(corePath) { + outputFile( + path.join(pkgDirname, "core-js", `${corePath}.js`), + `module.exports = require("core-js/library/fn/${corePath}");` + ); + }); +} + +function writeHelpers(runtimeName, { corejs } = {}) { + writeHelperFiles(runtimeName, { corejs, esm: false }); + writeHelperFiles(runtimeName, { corejs, esm: true }); +} + +function writeHelperFiles(runtimeName, { esm, corejs }) { + const pkgDirname = getRuntimeRoot(runtimeName); + + for (const helperName of helpers.list) { + const helperFilename = path.join( + pkgDirname, + "helpers", + esm ? "esm" : "", + `${helperName}.js` + ); + + outputFile( + helperFilename, + buildHelper(runtimeName, pkgDirname, helperFilename, helperName, { + esm, + corejs, + }) + ); + } +} + +function getRuntimeRoot(runtimeName) { + return path.resolve( + __dirname, + "..", + "..", + runtimeName.replace(/^@babel\//, "babel-") + ); +} + +function buildHelper( + runtimeName, + pkgDirname, + helperFilename, + helperName, + { esm, corejs } +) { + const tree = t.program([], [], esm ? "module" : "script"); + const dependencies = {}; + let bindings = null; + + if (!esm) { + bindings = []; + for (const dep of helpers.getDependencies(helperName)) { + const id = (dependencies[dep] = t.identifier(t.toIdentifier(dep))); + tree.body.push(template.statement.ast` + var ${id} = require("${`./${dep}`}"); + `); + bindings.push(id.name); + } + } + + const helper = helpers.get( + helperName, + dep => dependencies[dep], + esm ? null : template.expression.ast`module.exports`, + bindings + ); + tree.body.push(...helper.nodes); + + return babel.transformFromAst(tree, null, { + presets: [[require("@babel/preset-env"), { modules: false }]], + plugins: [ + [transformRuntime, { corejs, useESModules: esm }], + buildRuntimeRewritePlugin( + runtimeName, + path.relative(path.dirname(helperFilename), pkgDirname), + helperName + ), + ], + }).code; +} + +function buildRuntimeRewritePlugin(runtimeName, relativePath, helperName) { + function adjustImportPath(node, relativePath) { + node.value = + helpers.list.indexOf(node.value) !== -1 + ? `./${node.value}` + : node.value.replace(runtimeName + "/", relativePath + "/"); + } + + return { + pre(file) { + const original = file.get("helperGenerator"); + file.set("helperGenerator", name => { + // make sure that helpers won't insert circular references to themselves + if (name === helperName) return false; + + return original(name); + }); + }, + visitor: { + ImportDeclaration(path) { + adjustImportPath(path.get("source").node, relativePath); + }, + CallExpression(path) { + if ( + !path.get("callee").isIdentifier({ name: "require" }) || + path.get("arguments").length !== 1 || + !path.get("arguments")[0].isStringLiteral() + ) { + return; + } + + // replace any reference to @babel/runtime and other helpers + // with a relative path + adjustImportPath(path.get("arguments")[0].node, relativePath); + }, + }, + }; +} diff --git a/packages/babel-plugin-transform-runtime/src/definitions.js b/packages/babel-plugin-transform-runtime/src/definitions.js index 159c4cde6864..ac044910a08e 100644 --- a/packages/babel-plugin-transform-runtime/src/definitions.js +++ b/packages/babel-plugin-transform-runtime/src/definitions.js @@ -1,180 +1,167 @@ -export default { - builtins: { - Symbol: "symbol", - Promise: "promise", - Map: "map", - WeakMap: "weak-map", - Set: "set", - WeakSet: "weak-set", - Observable: "observable", - setImmediate: "set-immediate", - clearImmediate: "clear-immediate", - asap: "asap", - //parseFloat: "parse-float", // temporary disabled - //parseInt: "parse-int" // temporary disabled - }, +import semver from "semver"; - methods: { - Array: { - copyWithin: "array/copy-within", - entries: "array/entries", - every: "array/every", - fill: "array/fill", - filter: "array/filter", - findIndex: "array/find-index", - find: "array/find", - forEach: "array/for-each", - from: "array/from", - includes: "array/includes", - indexOf: "array/index-of", - //isArray: "array/is-array", // temporary disabled - join: "array/join", - keys: "array/keys", - lastIndexOf: "array/last-index-of", - map: "array/map", - of: "array/of", - reduceRight: "array/reduce-right", - reduce: "array/reduce", - some: "array/some", - sort: "array/sort", - splice: "array/splice", - values: "array/values", - }, +function hasMinVersion(minVersion, runtimeVersion) { + // If the range is unavailable, we're running the script during Babel's + // build process, and we want to assume that all versions are satisfied so + // that the built output will include all definitions. + if (!runtimeVersion) return true; - JSON: { - stringify: "json/stringify", - }, + // semver.intersects() has some surprising behavior with comparing ranges + // with preprelease versions. We add '^' to ensure that we are always + // comparing ranges with ranges, which sidesteps this logic. + // For example: + // + // semver.intersects(`<7.0.1`, "7.0.0-beta.0") // false - surprising + // semver.intersects(`<7.0.1`, "^7.0.0-beta.0") // true - expected + // + // This is because the first falls back to + // + // semver.satisfies("7.0.0-beta.0", `<7.0.1`) // false - surprising + // + // and this fails because a prerelease version can only satisfy a range + // if it is a prerelease within the same major/minor/patch range. + // + // Note: If this is found to have issues, please also revist the logic in + // babel-core's availableHelper() API. + if (semver.valid(runtimeVersion)) runtimeVersion = `^${runtimeVersion}`; - Object: { - assign: "object/assign", - create: "object/create", - defineProperties: "object/define-properties", - defineProperty: "object/define-property", - entries: "object/entries", - freeze: "object/freeze", - getOwnPropertyDescriptor: "object/get-own-property-descriptor", - getOwnPropertyDescriptors: "object/get-own-property-descriptors", - getOwnPropertyNames: "object/get-own-property-names", - getOwnPropertySymbols: "object/get-own-property-symbols", - getPrototypeOf: "object/get-prototype-of", - isExtensible: "object/is-extensible", - isFrozen: "object/is-frozen", - isSealed: "object/is-sealed", - is: "object/is", - keys: "object/keys", - preventExtensions: "object/prevent-extensions", - seal: "object/seal", - setPrototypeOf: "object/set-prototype-of", - values: "object/values", - }, + return ( + !semver.intersects(`<${minVersion}`, runtimeVersion) && + !semver.intersects(`>=8.0.0`, runtimeVersion) + ); +} - Math: { - acosh: "math/acosh", - asinh: "math/asinh", - atanh: "math/atanh", - cbrt: "math/cbrt", - clz32: "math/clz32", - cosh: "math/cosh", - expm1: "math/expm1", - fround: "math/fround", - hypot: "math/hypot", - imul: "math/imul", - log10: "math/log10", - log1p: "math/log1p", - log2: "math/log2", - sign: "math/sign", - sinh: "math/sinh", - tanh: "math/tanh", - trunc: "math/trunc", - iaddh: "math/iaddh", - isubh: "math/isubh", - imulh: "math/imulh", - umulh: "math/umulh", - }, +export default runtimeVersion => { + // Conditionally include 'Math' because it was not included in the 7.0.0 + // release of '@babel/runtime'. See issue https://github.com/babel/babel/pull/8616. + const includeMathModule = hasMinVersion("7.0.1", runtimeVersion); - Symbol: { - for: "symbol/for", - hasInstance: "symbol/has-instance", - isConcatSpreadable: "symbol/is-concat-spreadable", - iterator: "symbol/iterator", - keyFor: "symbol/key-for", - match: "symbol/match", - replace: "symbol/replace", - search: "symbol/search", - species: "symbol/species", - split: "symbol/split", - toPrimitive: "symbol/to-primitive", - toStringTag: "symbol/to-string-tag", - unscopables: "symbol/unscopables", + return { + builtins: { + Symbol: "symbol", + Promise: "promise", + Map: "map", + WeakMap: "weak-map", + Set: "set", + WeakSet: "weak-set", + setImmediate: "set-immediate", + clearImmediate: "clear-immediate", + parseFloat: "parse-float", + parseInt: "parse-int", }, - String: { - at: "string/at", - codePointAt: "string/code-point-at", - endsWith: "string/ends-with", - fromCodePoint: "string/from-code-point", - includes: "string/includes", - matchAll: "string/match-all", - padStart: "string/pad-start", - padEnd: "string/pad-end", - raw: "string/raw", - repeat: "string/repeat", - startsWith: "string/starts-with", - trim: "string/trim", - trimLeft: "string/trim-left", - trimRight: "string/trim-right", - trimStart: "string/trim-start", - trimEnd: "string/trim-end", - }, + methods: { + Array: { + from: "array/from", + isArray: "array/is-array", + of: "array/of", + }, - Number: { - EPSILON: "number/epsilon", - isFinite: "number/is-finite", - isInteger: "number/is-integer", - isNaN: "number/is-nan", - isSafeInteger: "number/is-safe-integer", - MAX_SAFE_INTEGER: "number/max-safe-integer", - MIN_SAFE_INTEGER: "number/min-safe-integer", - parseFloat: "number/parse-float", - parseInt: "number/parse-int", - }, + JSON: { + stringify: "json/stringify", + }, - Reflect: { - apply: "reflect/apply", - construct: "reflect/construct", - defineProperty: "reflect/define-property", - deleteProperty: "reflect/delete-property", - getOwnPropertyDescriptor: "reflect/get-own-property-descriptor", - getPrototypeOf: "reflect/get-prototype-of", - get: "reflect/get", - has: "reflect/has", - isExtensible: "reflect/is-extensible", - ownKeys: "reflect/own-keys", - preventExtensions: "reflect/prevent-extensions", - setPrototypeOf: "reflect/set-prototype-of", - set: "reflect/set", - defineMetadata: "reflect/define-metadata", - deleteMetadata: "reflect/delete-metadata", - getMetadata: "reflect/get-metadata", - getMetadataKeys: "reflect/get-metadata-keys", - getOwnMetadata: "reflect/get-own-metadata", - getOwnMetadataKeys: "reflect/get-own-metadata-keys", - hasMetadata: "reflect/has-metadata", - hasOwnMetadata: "reflect/has-own-metadata", - metadata: "reflect/metadata", - }, + Object: { + assign: "object/assign", + create: "object/create", + defineProperties: "object/define-properties", + defineProperty: "object/define-property", + entries: "object/entries", + freeze: "object/freeze", + getOwnPropertyDescriptor: "object/get-own-property-descriptor", + getOwnPropertyDescriptors: "object/get-own-property-descriptors", + getOwnPropertyNames: "object/get-own-property-names", + getOwnPropertySymbols: "object/get-own-property-symbols", + getPrototypeOf: "object/get-prototype-of", + isExtensible: "object/is-extensible", + isFrozen: "object/is-frozen", + isSealed: "object/is-sealed", + is: "object/is", + keys: "object/keys", + preventExtensions: "object/prevent-extensions", + seal: "object/seal", + setPrototypeOf: "object/set-prototype-of", + values: "object/values", + }, - System: { - global: "system/global", - }, + ...(includeMathModule + ? { + Math: { + acosh: "math/acosh", + asinh: "math/asinh", + atanh: "math/atanh", + cbrt: "math/cbrt", + clz32: "math/clz32", + cosh: "math/cosh", + expm1: "math/expm1", + fround: "math/fround", + hypot: "math/hypot", + imul: "math/imul", + log10: "math/log10", + log1p: "math/log1p", + log2: "math/log2", + sign: "math/sign", + sinh: "math/sinh", + tanh: "math/tanh", + trunc: "math/trunc", + }, + } + : {}), - Date: { - //now: "date/now" // temporary disabled - }, + Symbol: { + asyncIterator: "symbol/async-iterator", + for: "symbol/for", + hasInstance: "symbol/has-instance", + isConcatSpreadable: "symbol/is-concat-spreadable", + iterator: "symbol/iterator", + keyFor: "symbol/key-for", + match: "symbol/match", + replace: "symbol/replace", + search: "symbol/search", + species: "symbol/species", + split: "symbol/split", + toPrimitive: "symbol/to-primitive", + toStringTag: "symbol/to-string-tag", + unscopables: "symbol/unscopables", + }, + + String: { + at: "string/at", + fromCodePoint: "string/from-code-point", + raw: "string/raw", + }, + + Number: { + EPSILON: "number/epsilon", + isFinite: "number/is-finite", + isInteger: "number/is-integer", + isNaN: "number/is-nan", + isSafeInteger: "number/is-safe-integer", + MAX_SAFE_INTEGER: "number/max-safe-integer", + MIN_SAFE_INTEGER: "number/min-safe-integer", + parseFloat: "number/parse-float", + parseInt: "number/parse-int", + }, + + Reflect: { + apply: "reflect/apply", + construct: "reflect/construct", + defineProperty: "reflect/define-property", + deleteProperty: "reflect/delete-property", + getOwnPropertyDescriptor: "reflect/get-own-property-descriptor", + getPrototypeOf: "reflect/get-prototype-of", + get: "reflect/get", + has: "reflect/has", + isExtensible: "reflect/is-extensible", + ownKeys: "reflect/own-keys", + preventExtensions: "reflect/prevent-extensions", + setPrototypeOf: "reflect/set-prototype-of", + set: "reflect/set", + }, - Function: { - // Warning: /virtual/ method - prototype, not static, version - //bind: "function/virtual/bind" // temporary disabled + Date: { + now: "date/now", + }, }, - }, + }; }; diff --git a/packages/babel-plugin-transform-runtime/src/index.js b/packages/babel-plugin-transform-runtime/src/index.js index dfb5d41306cc..4f3a854028e6 100644 --- a/packages/babel-plugin-transform-runtime/src/index.js +++ b/packages/babel-plugin-transform-runtime/src/index.js @@ -1,36 +1,153 @@ +import path from "path"; +import resolve from "resolve"; import { declare } from "@babel/helper-plugin-utils"; import { addDefault, isModule } from "@babel/helper-module-imports"; import { types as t } from "@babel/core"; -import definitions from "./definitions"; +import getDefinitions from "./definitions"; + +function resolveAbsoluteRuntime(moduleName: string, dirname: string) { + try { + return path.dirname( + resolve.sync(`${moduleName}/package.json`, { basedir: dirname }), + ); + } catch (err) { + if (err.code !== "MODULE_NOT_FOUND") throw err; + + throw Object.assign( + new Error(`Failed to resolve "${moduleName}" relative to "${dirname}"`), + { + code: "BABEL_RUNTIME_NOT_FOUND", + runtime: moduleName, + dirname, + }, + ); + } +} -export default declare((api, options) => { +function supportsStaticESM(caller) { + return !!(caller && caller.supportsStaticESM); +} + +export default declare((api, options, dirname) => { api.assertVersion(7); const { - helpers, - moduleName = "@babel/runtime", - polyfill, - regenerator, - useBuiltIns, - useESModules, + corejs: corejsVersion = false, + helpers: useRuntimeHelpers = true, + regenerator: useRuntimeRegenerator = true, + useESModules = false, + version: runtimeVersion = "7.0.0-beta.0", + absoluteRuntime = false, } = options; - const regeneratorEnabled = regenerator !== false; - const notPolyfillOrDoesUseBuiltIns = polyfill === false || useBuiltIns; - const isPolyfillAndUseBuiltIns = polyfill && useBuiltIns; - const baseHelpersDir = useBuiltIns ? "helpers/builtin" : "helpers"; - const helpersDir = useESModules ? `${baseHelpersDir}/es6` : baseHelpersDir; + + const definitions = getDefinitions(runtimeVersion); + + if (typeof useRuntimeRegenerator !== "boolean") { + throw new Error( + "The 'regenerator' option must be undefined, or a boolean.", + ); + } + if (typeof useRuntimeHelpers !== "boolean") { + throw new Error("The 'helpers' option must be undefined, or a boolean."); + } + if (typeof useESModules !== "boolean" && useESModules !== "auto") { + throw new Error( + "The 'useESModules' option must be undefined, or a boolean, or 'auto'.", + ); + } + if ( + typeof absoluteRuntime !== "boolean" && + typeof absoluteRuntime !== "string" + ) { + throw new Error( + "The 'absoluteRuntime' option must be undefined, a boolean, or a string.", + ); + } + if ( + corejsVersion !== false && + (typeof corejsVersion !== "number" || corejsVersion !== 2) && + (typeof corejsVersion !== "string" || corejsVersion !== "2") + ) { + throw new Error( + `The 'corejs' option must be undefined, false, 2 or '2', ` + + `but got ${JSON.stringify(corejsVersion)}.`, + ); + } + if (typeof runtimeVersion !== "string") { + throw new Error(`The 'version' option must be a version string.`); + } function has(obj, key) { return Object.prototype.hasOwnProperty.call(obj, key); } + if (has(options, "useBuiltIns")) { + if (options.useBuiltIns) { + throw new Error( + "The 'useBuiltIns' option has been removed. The @babel/runtime " + + "module now uses builtins by default.", + ); + } else { + throw new Error( + "The 'useBuiltIns' option has been removed. Use the 'corejs'" + + "option with value '2' to polyfill with CoreJS 2.x via @babel/runtime.", + ); + } + } + if (has(options, "polyfill")) { + if (options.polyfill === false) { + throw new Error( + "The 'polyfill' option has been removed. The @babel/runtime " + + "module now skips polyfilling by default.", + ); + } else { + throw new Error( + "The 'polyfill' option has been removed. Use the 'corejs'" + + "option with value '2' to polyfill with CoreJS 2.x via @babel/runtime.", + ); + } + } + if (has(options, "moduleName")) { + throw new Error( + "The 'moduleName' option has been removed. @babel/transform-runtime " + + "no longer supports arbitrary runtimes. If you were using this to " + + "set an absolute path for Babel's standard runtimes, please use the " + + "'absoluteRuntime' option.", + ); + } + + const esModules = + useESModules === "auto" ? api.caller(supportsStaticESM) : useESModules; + + const injectCoreJS2 = `${corejsVersion}` === "2"; + const moduleName = injectCoreJS2 + ? "@babel/runtime-corejs2" + : "@babel/runtime"; const HEADER_HELPERS = ["interopRequireWildcard", "interopRequireDefault"]; + let modulePath = moduleName; + if (absoluteRuntime !== false) { + modulePath = resolveAbsoluteRuntime( + moduleName, + path.resolve(dirname, absoluteRuntime === true ? "." : absoluteRuntime), + ); + } + return { pre(file) { - if (helpers !== false) { + if (useRuntimeHelpers) { file.set("helperGenerator", name => { + // If the helper didn't exist yet at the version given, we bail + // out and let Babel either insert it directly, or throw an error + // so that plugins can handle that case properly. + if ( + file.availableHelper && + !file.availableHelper(name, runtimeVersion) + ) { + return; + } + const isInteropHelper = HEADER_HELPERS.indexOf(name) !== -1; // Explicitly set the CommonJS interop helpers to their reserve @@ -39,22 +156,19 @@ export default declare((api, options) => { const blockHoist = isInteropHelper && !isModule(file.path) ? 4 : undefined; + const helpersDir = + esModules && file.path.node.sourceType === "module" + ? "helpers/esm" + : "helpers"; + return this.addDefaultImport( - `${moduleName}/${helpersDir}/${name}`, + `${modulePath}/${helpersDir}/${name}`, name, blockHoist, ); }); } - if (isPolyfillAndUseBuiltIns) { - throw new Error( - "The polyfill option conflicts with useBuiltIns; use one or the other", - ); - } - - this.moduleName = moduleName; - const cache = new Map(); this.addDefaultImport = (source, nameHint, blockHoist) => { @@ -83,17 +197,17 @@ export default declare((api, options) => { visitor: { ReferencedIdentifier(path) { const { node, parent, scope } = path; - if (node.name === "regeneratorRuntime" && regeneratorEnabled) { + if (node.name === "regeneratorRuntime" && useRuntimeRegenerator) { path.replaceWith( this.addDefaultImport( - `${this.moduleName}/regenerator`, + `${modulePath}/regenerator`, "regeneratorRuntime", ), ); return; } - if (notPolyfillOrDoesUseBuiltIns) return; + if (!injectCoreJS2) return; if (t.isMemberExpression(parent)) return; if (!has(definitions.builtins, node.name)) return; @@ -102,7 +216,7 @@ export default declare((api, options) => { // Symbol() -> _core.Symbol(); new Promise -> new _core.Promise path.replaceWith( this.addDefaultImport( - `${moduleName}/core-js/${definitions.builtins[node.name]}`, + `${modulePath}/core-js/${definitions.builtins[node.name]}`, node.name, ), ); @@ -110,7 +224,7 @@ export default declare((api, options) => { // arr[Symbol.iterator]() -> _core.$for.getIterator(arr) CallExpression(path) { - if (notPolyfillOrDoesUseBuiltIns) return; + if (!injectCoreJS2) return; // we can't compile this if (path.node.arguments.length) return; @@ -125,7 +239,7 @@ export default declare((api, options) => { path.replaceWith( t.callExpression( this.addDefaultImport( - `${moduleName}/core-js/get-iterator`, + `${modulePath}/core-js/get-iterator`, "getIterator", ), [callee.object], @@ -135,7 +249,7 @@ export default declare((api, options) => { // Symbol.iterator in arr -> core.$for.isIterable(arr) BinaryExpression(path) { - if (notPolyfillOrDoesUseBuiltIns) return; + if (!injectCoreJS2) return; if (path.node.operator !== "in") return; if (!path.get("left").matchesPattern("Symbol.iterator")) return; @@ -143,7 +257,7 @@ export default declare((api, options) => { path.replaceWith( t.callExpression( this.addDefaultImport( - `${moduleName}/core-js/is-iterable`, + `${modulePath}/core-js/is-iterable`, "isIterable", ), [path.node.right], @@ -154,7 +268,7 @@ export default declare((api, options) => { // Array.from -> _core.Array.from MemberExpression: { enter(path) { - if (notPolyfillOrDoesUseBuiltIns) return; + if (!injectCoreJS2) return; if (!path.isReferenced()) return; const { node } = path; @@ -185,14 +299,14 @@ export default declare((api, options) => { path.replaceWith( this.addDefaultImport( - `${moduleName}/core-js/${methods[prop.name]}`, + `${modulePath}/core-js/${methods[prop.name]}`, `${obj.name}$${prop.name}`, ), ); }, exit(path) { - if (notPolyfillOrDoesUseBuiltIns) return; + if (!injectCoreJS2) return; if (!path.isReferenced()) return; const { node } = path; @@ -204,7 +318,7 @@ export default declare((api, options) => { path.replaceWith( t.memberExpression( this.addDefaultImport( - `${moduleName}/core-js/${definitions.builtins[obj.name]}`, + `${modulePath}/core-js/${definitions.builtins[obj.name]}`, obj.name, ), node.property, @@ -216,5 +330,3 @@ export default declare((api, options) => { }, }; }); - -export { definitions }; diff --git a/packages/babel-plugin-transform-runtime/src/options.json b/packages/babel-plugin-transform-runtime/src/options.json deleted file mode 100644 index b987a67bba30..000000000000 --- a/packages/babel-plugin-transform-runtime/src/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "plugins": ["transform-runtime", "transform-regenerator"] -} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/relative/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/relative/input.js new file mode 100644 index 000000000000..4e6a6de65314 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/relative/input.js @@ -0,0 +1 @@ +class Foo {} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/relative/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/relative/options.json new file mode 100644 index 000000000000..126af9dc11a8 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/relative/options.json @@ -0,0 +1,6 @@ +{ + "plugins": [ + "transform-classes", + ["transform-runtime", { "absoluteRuntime": "./subfolder" }] + ] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/relative/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/relative/output.js new file mode 100644 index 000000000000..e783188c9e48 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/relative/output.js @@ -0,0 +1,7 @@ +var _classCallCheck = require("/packages/babel-plugin-transform-runtime/node_modules/@babel/runtime/helpers/classCallCheck"); + +let Foo = function Foo() { + "use strict"; + + _classCallCheck(this, Foo); +}; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true/input.js new file mode 100644 index 000000000000..4e6a6de65314 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true/input.js @@ -0,0 +1 @@ +class Foo {} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true/options.json new file mode 100644 index 000000000000..a8370f48c37d --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true/options.json @@ -0,0 +1,6 @@ +{ + "plugins": [ + "transform-classes", + ["transform-runtime", { "absoluteRuntime": true }] + ] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true/output.js new file mode 100644 index 000000000000..e783188c9e48 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true/output.js @@ -0,0 +1,7 @@ +var _classCallCheck = require("/packages/babel-plugin-transform-runtime/node_modules/@babel/runtime/helpers/classCallCheck"); + +let Foo = function Foo() { + "use strict"; + + _classCallCheck(this, Foo); +}; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/aliased-constructors/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/aliased-constructors/input.js new file mode 100644 index 000000000000..b7c61b92b0ee --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/aliased-constructors/input.js @@ -0,0 +1,7 @@ +obj.constructor === Object; +obj.constructor === Promise; + +Symbol(); +Symbol("test"); + +new Map(); diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/aliased-constructors/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/aliased-constructors/options.json new file mode 100644 index 000000000000..5c04c7763001 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/aliased-constructors/options.json @@ -0,0 +1,3 @@ +{ + "plugins": [["transform-runtime", { "corejs": 2 }], "transform-regenerator"] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/aliased-constructors/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/aliased-constructors/output.js new file mode 100644 index 000000000000..4e753ff15d6f --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/aliased-constructors/output.js @@ -0,0 +1,14 @@ +var _Map = require("@babel/runtime-corejs2/core-js/map"); + +var _Symbol = require("@babel/runtime-corejs2/core-js/symbol"); + +var _Promise = require("@babel/runtime-corejs2/core-js/promise"); + +obj.constructor === Object; +obj.constructor === _Promise; + +_Symbol(); + +_Symbol("test"); + +new _Map(); diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/catch-all/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/catch-all/input.js new file mode 100644 index 000000000000..8e9b31529424 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/catch-all/input.js @@ -0,0 +1 @@ +Promise.resolve; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/catch-all/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/catch-all/options.json new file mode 100644 index 000000000000..5c04c7763001 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/catch-all/options.json @@ -0,0 +1,3 @@ +{ + "plugins": [["transform-runtime", { "corejs": 2 }], "transform-regenerator"] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/catch-all/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/catch-all/output.js new file mode 100644 index 000000000000..de4a16bd915b --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/catch-all/output.js @@ -0,0 +1,3 @@ +var _Promise = require("@babel/runtime-corejs2/core-js/promise"); + +_Promise.resolve; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/class/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/class/input.js new file mode 100644 index 000000000000..4e6a6de65314 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/class/input.js @@ -0,0 +1 @@ +class Foo {} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/class/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/class/options.json new file mode 100644 index 000000000000..2972db7d1a72 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/class/options.json @@ -0,0 +1,3 @@ +{ + "plugins": [["transform-runtime", { "corejs": 2 }], "transform-classes"] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/class/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/class/output.js new file mode 100644 index 000000000000..132a249e9768 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/class/output.js @@ -0,0 +1,7 @@ +var _classCallCheck = require("@babel/runtime-corejs2/helpers/classCallCheck"); + +let Foo = function Foo() { + "use strict"; + + _classCallCheck(this, Foo); +}; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/es6-for-of/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/es6-for-of/input.js new file mode 100644 index 000000000000..48e5f59b2c6b --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/es6-for-of/input.js @@ -0,0 +1,3 @@ +for (var i of arr) { + +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/es6-for-of/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/es6-for-of/options.json new file mode 100644 index 000000000000..5b5b7b35f106 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/es6-for-of/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-for-of", ["transform-runtime", { "corejs": 2 }]] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/es6-for-of/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/es6-for-of/output.js new file mode 100644 index 000000000000..be11791731f3 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/es6-for-of/output.js @@ -0,0 +1,24 @@ +var _getIterator = require("@babel/runtime-corejs2/core-js/get-iterator"); + +var _iteratorNormalCompletion = true; +var _didIteratorError = false; +var _iteratorError = undefined; + +try { + for (var _iterator = _getIterator(arr), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var i = _step.value; + } +} catch (err) { + _didIteratorError = true; + _iteratorError = err; +} finally { + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime/custom-runtime/input.mjs b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/full/input.mjs similarity index 100% rename from packages/babel-plugin-transform-runtime/test/fixtures/runtime/custom-runtime/input.mjs rename to packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/full/input.mjs diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/full/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/full/options.json new file mode 100644 index 000000000000..5c04c7763001 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/full/options.json @@ -0,0 +1,3 @@ +{ + "plugins": [["transform-runtime", { "corejs": 2 }], "transform-regenerator"] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime/custom-runtime/output.mjs b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/full/output.mjs similarity index 77% rename from packages/babel-plugin-transform-runtime/test/fixtures/runtime/custom-runtime/output.mjs rename to packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/full/output.mjs index 656dd6d0308b..bb91155014fe 100644 --- a/packages/babel-plugin-transform-runtime/test/fixtures/runtime/custom-runtime/output.mjs +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/full/output.mjs @@ -1,5 +1,5 @@ -import _regeneratorRuntime from "foo/regenerator"; -import _Symbol from "foo/core-js/symbol"; +import _regeneratorRuntime from "@babel/runtime-corejs2/regenerator"; +import _Symbol from "@babel/runtime-corejs2/core-js/symbol"; var _marked = /*#__PURE__*/ diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/math-undefined-version/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/math-undefined-version/input.js new file mode 100644 index 000000000000..5355a96916ad --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/math-undefined-version/input.js @@ -0,0 +1,33 @@ +Math.acosh; + +Math.asinh; + +Math.atanh; + +Math.cbrt; + +Math.clz32; + +Math.cosh; + +Math.expm1; + +Math.fround; + +Math.hypot; + +Math.imul; + +Math.log10; + +Math.log1p; + +Math.log2; + +Math.sign; + +Math.sinh; + +Math.tanh; + +Math.trunc; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/math-undefined-version/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/math-undefined-version/options.json new file mode 100644 index 000000000000..8f919429fac3 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/math-undefined-version/options.json @@ -0,0 +1,11 @@ +{ + "plugins": [ + [ + "transform-runtime", + { + "corejs": 2 + } + ], + "transform-regenerator" + ] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/math-undefined-version/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/math-undefined-version/output.js new file mode 100644 index 000000000000..4c905ed110dc --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/math-undefined-version/output.js @@ -0,0 +1,17 @@ +Math.acosh; +Math.asinh; +Math.atanh; +Math.cbrt; +Math.clz32; +Math.cosh; +Math.expm1; +Math.fround; +Math.hypot; +Math.imul; +Math.log10; +Math.log1p; +Math.log2; +Math.sign; +Math.sinh; +Math.tanh; +Math.trunc; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/math/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/math/input.js new file mode 100644 index 000000000000..5355a96916ad --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/math/input.js @@ -0,0 +1,33 @@ +Math.acosh; + +Math.asinh; + +Math.atanh; + +Math.cbrt; + +Math.clz32; + +Math.cosh; + +Math.expm1; + +Math.fround; + +Math.hypot; + +Math.imul; + +Math.log10; + +Math.log1p; + +Math.log2; + +Math.sign; + +Math.sinh; + +Math.tanh; + +Math.trunc; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/math/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/math/options.json new file mode 100644 index 000000000000..fdced378cb30 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/math/options.json @@ -0,0 +1,12 @@ +{ + "plugins": [ + [ + "transform-runtime", + { + "corejs": 2, + "version": "^7.0.2" + } + ], + "transform-regenerator" + ] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/math/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/math/output.js new file mode 100644 index 000000000000..7b773a5ec2fe --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/math/output.js @@ -0,0 +1,51 @@ +var _Math$trunc = require("@babel/runtime-corejs2/core-js/math/trunc"); + +var _Math$tanh = require("@babel/runtime-corejs2/core-js/math/tanh"); + +var _Math$sinh = require("@babel/runtime-corejs2/core-js/math/sinh"); + +var _Math$sign = require("@babel/runtime-corejs2/core-js/math/sign"); + +var _Math$log2 = require("@babel/runtime-corejs2/core-js/math/log2"); + +var _Math$log1p = require("@babel/runtime-corejs2/core-js/math/log1p"); + +var _Math$log = require("@babel/runtime-corejs2/core-js/math/log10"); + +var _Math$imul = require("@babel/runtime-corejs2/core-js/math/imul"); + +var _Math$hypot = require("@babel/runtime-corejs2/core-js/math/hypot"); + +var _Math$fround = require("@babel/runtime-corejs2/core-js/math/fround"); + +var _Math$expm = require("@babel/runtime-corejs2/core-js/math/expm1"); + +var _Math$cosh = require("@babel/runtime-corejs2/core-js/math/cosh"); + +var _Math$clz = require("@babel/runtime-corejs2/core-js/math/clz32"); + +var _Math$cbrt = require("@babel/runtime-corejs2/core-js/math/cbrt"); + +var _Math$atanh = require("@babel/runtime-corejs2/core-js/math/atanh"); + +var _Math$asinh = require("@babel/runtime-corejs2/core-js/math/asinh"); + +var _Math$acosh = require("@babel/runtime-corejs2/core-js/math/acosh"); + +_Math$acosh; +_Math$asinh; +_Math$atanh; +_Math$cbrt; +_Math$clz; +_Math$cosh; +_Math$expm; +_Math$fround; +_Math$hypot; +_Math$imul; +_Math$log; +_Math$log1p; +_Math$log2; +_Math$sign; +_Math$sinh; +_Math$tanh; +_Math$trunc; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/modules-helpers/input.mjs b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/modules-helpers/input.mjs new file mode 100644 index 000000000000..368b10631035 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/modules-helpers/input.mjs @@ -0,0 +1,5 @@ +import foo from "foo"; + +class Example { + method() {} +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/modules-helpers/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/modules-helpers/options.json new file mode 100644 index 000000000000..5d178b7e91e5 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/modules-helpers/options.json @@ -0,0 +1,7 @@ +{ + "plugins": [ + ["transform-runtime", { "corejs": 2 }], + "transform-modules-commonjs", + "transform-classes" + ] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/modules-helpers/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/modules-helpers/output.js new file mode 100644 index 000000000000..8b91c079a609 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/modules-helpers/output.js @@ -0,0 +1,23 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass")); + +var _foo = _interopRequireDefault(require("foo")); + +let Example = +/*#__PURE__*/ +function () { + function Example() { + (0, _classCallCheck2.default)(this, Example); + } + + (0, _createClass2.default)(Example, [{ + key: "method", + value: function method() {} + }]); + return Example; +}(); diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/modules/input.mjs b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/modules/input.mjs new file mode 100644 index 000000000000..ce4c7df806a2 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/modules/input.mjs @@ -0,0 +1,4 @@ +import foo from "bar"; +foo; + +export * from "mod"; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/modules/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/modules/options.json new file mode 100644 index 000000000000..b1cff64aeeb1 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/modules/options.json @@ -0,0 +1,6 @@ +{ + "plugins": [ + ["transform-runtime", { "corejs": 2 }], + "transform-modules-commonjs" + ] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/modules/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/modules/output.js new file mode 100644 index 000000000000..d7ece9528b1a --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/modules/output.js @@ -0,0 +1,28 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault"); + +var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property"); + +var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _bar = _interopRequireDefault(require("bar")); + +var _mod = require("mod"); + +_Object$keys(_mod).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + + _Object$defineProperty(exports, key, { + enumerable: true, + get: function () { + return _mod[key]; + } + }); +}); + +_bar.default; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/no-helpers/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/no-helpers/input.js new file mode 100644 index 000000000000..4e6a6de65314 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/no-helpers/input.js @@ -0,0 +1 @@ +class Foo {} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/no-helpers/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/no-helpers/options.json new file mode 100644 index 000000000000..aaf9a14cac82 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/no-helpers/options.json @@ -0,0 +1,6 @@ +{ + "plugins": [ + ["transform-runtime", { "helpers": false, "corejs": 2 }], + "transform-classes" + ] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/no-helpers/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/no-helpers/output.js new file mode 100644 index 000000000000..b8dfb3198372 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/no-helpers/output.js @@ -0,0 +1,7 @@ +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +let Foo = function Foo() { + "use strict"; + + _classCallCheck(this, Foo); +}; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/regenerator-runtime/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/regenerator-runtime/input.js new file mode 100644 index 000000000000..ae6cc4d8c8f1 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/regenerator-runtime/input.js @@ -0,0 +1,2 @@ +void function* () { +}; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/regenerator-runtime/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/regenerator-runtime/options.json new file mode 100644 index 000000000000..5c04c7763001 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/regenerator-runtime/options.json @@ -0,0 +1,3 @@ +{ + "plugins": [["transform-runtime", { "corejs": 2 }], "transform-regenerator"] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/regenerator-runtime/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/regenerator-runtime/output.js new file mode 100644 index 000000000000..a068476f9946 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/regenerator-runtime/output.js @@ -0,0 +1,13 @@ +var _regeneratorRuntime = require("@babel/runtime-corejs2/regenerator"); + +void +/*#__PURE__*/ +_regeneratorRuntime.mark(function _callee() { + return _regeneratorRuntime.wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + case "end": + return _context.stop(); + } + }, _callee, this); +}); diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/symbol-iterator-in/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/symbol-iterator-in/input.js new file mode 100644 index 000000000000..49e71aa52d70 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/symbol-iterator-in/input.js @@ -0,0 +1 @@ +Symbol.iterator in Object(arr); diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/symbol-iterator-in/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/symbol-iterator-in/options.json new file mode 100644 index 000000000000..5c04c7763001 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/symbol-iterator-in/options.json @@ -0,0 +1,3 @@ +{ + "plugins": [["transform-runtime", { "corejs": 2 }], "transform-regenerator"] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/symbol-iterator-in/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/symbol-iterator-in/output.js new file mode 100644 index 000000000000..8d5e3c048d4f --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/symbol-iterator-in/output.js @@ -0,0 +1,3 @@ +var _isIterable = require("@babel/runtime-corejs2/core-js/is-iterable"); + +_isIterable(Object(arr)); diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/symbol-iterator/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/symbol-iterator/input.js new file mode 100644 index 000000000000..ae1f0b9df59b --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/symbol-iterator/input.js @@ -0,0 +1 @@ +Symbol.iterator; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/symbol-iterator/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/symbol-iterator/options.json new file mode 100644 index 000000000000..5c04c7763001 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/symbol-iterator/options.json @@ -0,0 +1,3 @@ +{ + "plugins": [["transform-runtime", { "corejs": 2 }], "transform-regenerator"] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/symbol-iterator/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/symbol-iterator/output.js new file mode 100644 index 000000000000..dc708b45cc42 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime-corejs2/symbol-iterator/output.js @@ -0,0 +1,3 @@ +var _Symbol$iterator = require("@babel/runtime-corejs2/core-js/symbol/iterator"); + +_Symbol$iterator; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime/aliased-constructors/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime/aliased-constructors/output.js index a7cfe5735c19..70099860ad38 100644 --- a/packages/babel-plugin-transform-runtime/test/fixtures/runtime/aliased-constructors/output.js +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime/aliased-constructors/output.js @@ -1,14 +1,5 @@ -var _Map = require("@babel/runtime/core-js/map"); - -var _Symbol = require("@babel/runtime/core-js/symbol"); - -var _Promise = require("@babel/runtime/core-js/promise"); - obj.constructor === Object; -obj.constructor === _Promise; - -_Symbol(); - -_Symbol("test"); - -new _Map(); +obj.constructor === Promise; +Symbol(); +Symbol("test"); +new Map(); diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime/catch-all/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime/catch-all/output.js index c3a34c250300..8e9b31529424 100644 --- a/packages/babel-plugin-transform-runtime/test/fixtures/runtime/catch-all/output.js +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime/catch-all/output.js @@ -1,3 +1 @@ -var _Promise = require("@babel/runtime/core-js/promise"); - -_Promise.resolve; +Promise.resolve; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime/custom-runtime/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/runtime/custom-runtime/options.json deleted file mode 100644 index d8a7d30b95c6..000000000000 --- a/packages/babel-plugin-transform-runtime/test/fixtures/runtime/custom-runtime/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "plugins": [["transform-runtime", { "moduleName": "foo" }], "transform-regenerator"] -} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime/es6-for-of/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime/es6-for-of/output.js index 0087e226c082..ec97a710aed5 100644 --- a/packages/babel-plugin-transform-runtime/test/fixtures/runtime/es6-for-of/output.js +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime/es6-for-of/output.js @@ -1,11 +1,9 @@ -var _getIterator = require("@babel/runtime/core-js/get-iterator"); - var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { - for (var _iterator = _getIterator(arr), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + for (var _iterator = arr[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var i = _step.value; } } catch (err) { diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime/full/output.mjs b/packages/babel-plugin-transform-runtime/test/fixtures/runtime/full/output.mjs index 3442c144258e..7fe64e68c7b5 100644 --- a/packages/babel-plugin-transform-runtime/test/fixtures/runtime/full/output.mjs +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime/full/output.mjs @@ -1,12 +1,11 @@ import _regeneratorRuntime from "@babel/runtime/regenerator"; -import _Symbol from "@babel/runtime/core-js/symbol"; var _marked = /*#__PURE__*/ _regeneratorRuntime.mark(giveWord); import foo, * as bar from "someModule"; -export const myWord = _Symbol("abc"); +export const myWord = Symbol("abc"); export function giveWord() { return _regeneratorRuntime.wrap(function giveWord$(_context) { while (1) switch (_context.prev = _context.next) { diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime/modules/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime/modules/output.js index 3bfab64ad959..260de19e94a1 100644 --- a/packages/babel-plugin-transform-runtime/test/fixtures/runtime/modules/output.js +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime/modules/output.js @@ -2,10 +2,6 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); -var _Object$defineProperty = require("@babel/runtime/core-js/object/define-property"); - -var _Object$keys = require("@babel/runtime/core-js/object/keys"); - Object.defineProperty(exports, "__esModule", { value: true }); @@ -14,15 +10,13 @@ var _bar = _interopRequireDefault(require("bar")); var _mod = require("mod"); -_Object$keys(_mod).forEach(function (key) { +Object.keys(_mod).forEach(function (key) { if (key === "default" || key === "__esModule") return; - - _Object$defineProperty(exports, key, { + Object.defineProperty(exports, key, { enumerable: true, get: function () { return _mod[key]; } }); }); - _bar.default; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime/symbol-iterator-in/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime/symbol-iterator-in/output.js index e4e3264bb5aa..49e71aa52d70 100644 --- a/packages/babel-plugin-transform-runtime/test/fixtures/runtime/symbol-iterator-in/output.js +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime/symbol-iterator-in/output.js @@ -1,3 +1 @@ -var _isIterable = require("@babel/runtime/core-js/is-iterable"); - -_isIterable(Object(arr)); +Symbol.iterator in Object(arr); diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/runtime/symbol-iterator/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/runtime/symbol-iterator/output.js index 22731130e80e..ae1f0b9df59b 100644 --- a/packages/babel-plugin-transform-runtime/test/fixtures/runtime/symbol-iterator/output.js +++ b/packages/babel-plugin-transform-runtime/test/fixtures/runtime/symbol-iterator/output.js @@ -1,3 +1 @@ -var _Symbol$iterator = require("@babel/runtime/core-js/symbol/iterator"); - -_Symbol$iterator; +Symbol.iterator; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useBuiltIns-useESModules/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/corejs-useES6Modules/input.mjs similarity index 100% rename from packages/babel-plugin-transform-runtime/test/fixtures/use-options/useBuiltIns-useESModules/input.js rename to packages/babel-plugin-transform-runtime/test/fixtures/use-options/corejs-useES6Modules/input.mjs diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/use-options/corejs-useES6Modules/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/corejs-useES6Modules/options.json new file mode 100644 index 000000000000..63e7c90646fa --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/corejs-useES6Modules/options.json @@ -0,0 +1,6 @@ +{ + "plugins": [ + ["transform-runtime", { "corejs": 2, "useESModules": true }], + "transform-classes" + ] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/use-options/corejs-useES6Modules/output.mjs b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/corejs-useES6Modules/output.mjs new file mode 100644 index 000000000000..828c9aa787ef --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/corejs-useES6Modules/output.mjs @@ -0,0 +1,18 @@ +import _classCallCheck from "@babel/runtime-corejs2/helpers/esm/classCallCheck"; +import _possibleConstructorReturn from "@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn"; +import _getPrototypeOf from "@babel/runtime-corejs2/helpers/esm/getPrototypeOf"; +import _inherits from "@babel/runtime-corejs2/helpers/esm/inherits"; + +let Foo = +/*#__PURE__*/ +function (_Bar) { + _inherits(Foo, _Bar); + + function Foo() { + _classCallCheck(this, Foo); + + return _possibleConstructorReturn(this, _getPrototypeOf(Foo).apply(this, arguments)); + } + + return Foo; +}(Bar); diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useBuiltIns/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/corejs/input.mjs similarity index 100% rename from packages/babel-plugin-transform-runtime/test/fixtures/use-options/useBuiltIns/input.js rename to packages/babel-plugin-transform-runtime/test/fixtures/use-options/corejs/input.mjs diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/use-options/corejs/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/corejs/options.json new file mode 100644 index 000000000000..2972db7d1a72 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/corejs/options.json @@ -0,0 +1,3 @@ +{ + "plugins": [["transform-runtime", { "corejs": 2 }], "transform-classes"] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/use-options/corejs/output.mjs b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/corejs/output.mjs new file mode 100644 index 000000000000..44f4d72a0409 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/corejs/output.mjs @@ -0,0 +1,18 @@ +import _classCallCheck from "@babel/runtime-corejs2/helpers/classCallCheck"; +import _possibleConstructorReturn from "@babel/runtime-corejs2/helpers/possibleConstructorReturn"; +import _getPrototypeOf from "@babel/runtime-corejs2/helpers/getPrototypeOf"; +import _inherits from "@babel/runtime-corejs2/helpers/inherits"; + +let Foo = +/*#__PURE__*/ +function (_Bar) { + _inherits(Foo, _Bar); + + function Foo() { + _classCallCheck(this, Foo); + + return _possibleConstructorReturn(this, _getPrototypeOf(Foo).apply(this, arguments)); + } + + return Foo; +}(Bar); diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useBuiltIns-useESModules/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useBuiltIns-useESModules/options.json deleted file mode 100644 index ad048c74b1be..000000000000 --- a/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useBuiltIns-useESModules/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "plugins": [["transform-runtime", { "useBuiltIns": true, "useESModules": true }], "transform-classes"] -} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useBuiltIns-useESModules/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useBuiltIns-useESModules/output.js deleted file mode 100644 index d5ad90a1c26a..000000000000 --- a/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useBuiltIns-useESModules/output.js +++ /dev/null @@ -1,23 +0,0 @@ -var _classCallCheck = require("@babel/runtime/helpers/builtin/es6/classCallCheck"); - -var _possibleConstructorReturn = require("@babel/runtime/helpers/builtin/es6/possibleConstructorReturn"); - -var _getPrototypeOf = require("@babel/runtime/helpers/builtin/es6/getPrototypeOf"); - -var _inherits = require("@babel/runtime/helpers/builtin/es6/inherits"); - -let Foo = -/*#__PURE__*/ -function (_Bar) { - "use strict"; - - _inherits(Foo, _Bar); - - function Foo() { - _classCallCheck(this, Foo); - - return _possibleConstructorReturn(this, _getPrototypeOf(Foo).apply(this, arguments)); - } - - return Foo; -}(Bar); diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useBuiltIns/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useBuiltIns/options.json deleted file mode 100644 index a24c7157143a..000000000000 --- a/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useBuiltIns/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "plugins": [["transform-runtime", { "useBuiltIns": true }], "transform-classes"] -} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules-cjs-auto/input.js similarity index 100% rename from packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules/input.js rename to packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules-cjs-auto/input.js diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules-cjs-auto/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules-cjs-auto/options.json new file mode 100644 index 000000000000..ad753739a70f --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules-cjs-auto/options.json @@ -0,0 +1,10 @@ +{ + "caller": { + "name": "babel-test", + "supportsStaticESM": true + }, + "plugins": [ + ["transform-runtime", { "useESModules": "auto" }], + "transform-classes" + ] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules-cjs-auto/output.js similarity index 56% rename from packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules/output.js rename to packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules-cjs-auto/output.js index 9d1599d1f254..39882dcd466a 100644 --- a/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules/output.js +++ b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules-cjs-auto/output.js @@ -1,10 +1,10 @@ -var _classCallCheck = require("@babel/runtime/helpers/es6/classCallCheck"); +var _classCallCheck = require("@babel/runtime/helpers/classCallCheck"); -var _possibleConstructorReturn = require("@babel/runtime/helpers/es6/possibleConstructorReturn"); +var _possibleConstructorReturn = require("@babel/runtime/helpers/possibleConstructorReturn"); -var _getPrototypeOf = require("@babel/runtime/helpers/es6/getPrototypeOf"); +var _getPrototypeOf = require("@babel/runtime/helpers/getPrototypeOf"); -var _inherits = require("@babel/runtime/helpers/es6/inherits"); +var _inherits = require("@babel/runtime/helpers/inherits"); let Foo = /*#__PURE__*/ diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules-cjs/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules-cjs/input.js new file mode 100644 index 000000000000..dcde0c7bf9a2 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules-cjs/input.js @@ -0,0 +1 @@ +class Foo extends Bar {} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules-cjs/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules-cjs/options.json new file mode 100644 index 000000000000..35cc8ccbfc63 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules-cjs/options.json @@ -0,0 +1,10 @@ +{ + "caller": { + "name": "babel-test", + "supportsStaticESM": true + }, + "plugins": [ + ["transform-runtime", { "useESModules": true }], + "transform-classes" + ] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useBuiltIns/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules-cjs/output.js similarity index 54% rename from packages/babel-plugin-transform-runtime/test/fixtures/use-options/useBuiltIns/output.js rename to packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules-cjs/output.js index 0dcb1a6dc16c..39882dcd466a 100644 --- a/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useBuiltIns/output.js +++ b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules-cjs/output.js @@ -1,10 +1,10 @@ -var _classCallCheck = require("@babel/runtime/helpers/builtin/classCallCheck"); +var _classCallCheck = require("@babel/runtime/helpers/classCallCheck"); -var _possibleConstructorReturn = require("@babel/runtime/helpers/builtin/possibleConstructorReturn"); +var _possibleConstructorReturn = require("@babel/runtime/helpers/possibleConstructorReturn"); -var _getPrototypeOf = require("@babel/runtime/helpers/builtin/getPrototypeOf"); +var _getPrototypeOf = require("@babel/runtime/helpers/getPrototypeOf"); -var _inherits = require("@babel/runtime/helpers/builtin/inherits"); +var _inherits = require("@babel/runtime/helpers/inherits"); let Foo = /*#__PURE__*/ diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules-mjs-auto/input.mjs b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules-mjs-auto/input.mjs new file mode 100644 index 000000000000..dcde0c7bf9a2 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules-mjs-auto/input.mjs @@ -0,0 +1 @@ +class Foo extends Bar {} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules-mjs-auto/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules-mjs-auto/options.json new file mode 100644 index 000000000000..ad753739a70f --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules-mjs-auto/options.json @@ -0,0 +1,10 @@ +{ + "caller": { + "name": "babel-test", + "supportsStaticESM": true + }, + "plugins": [ + ["transform-runtime", { "useESModules": "auto" }], + "transform-classes" + ] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules-mjs-auto/output.mjs b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules-mjs-auto/output.mjs new file mode 100644 index 000000000000..0247fa0b5556 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules-mjs-auto/output.mjs @@ -0,0 +1,18 @@ +import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck"; +import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn"; +import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf"; +import _inherits from "@babel/runtime/helpers/esm/inherits"; + +let Foo = +/*#__PURE__*/ +function (_Bar) { + _inherits(Foo, _Bar); + + function Foo() { + _classCallCheck(this, Foo); + + return _possibleConstructorReturn(this, _getPrototypeOf(Foo).apply(this, arguments)); + } + + return Foo; +}(Bar); diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules-mjs/input.mjs b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules-mjs/input.mjs new file mode 100644 index 000000000000..dcde0c7bf9a2 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules-mjs/input.mjs @@ -0,0 +1 @@ +class Foo extends Bar {} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules-mjs/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules-mjs/options.json new file mode 100644 index 000000000000..35cc8ccbfc63 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules-mjs/options.json @@ -0,0 +1,10 @@ +{ + "caller": { + "name": "babel-test", + "supportsStaticESM": true + }, + "plugins": [ + ["transform-runtime", { "useESModules": true }], + "transform-classes" + ] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules-mjs/output.mjs b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules-mjs/output.mjs new file mode 100644 index 000000000000..0247fa0b5556 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules-mjs/output.mjs @@ -0,0 +1,18 @@ +import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck"; +import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn"; +import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf"; +import _inherits from "@babel/runtime/helpers/esm/inherits"; + +let Foo = +/*#__PURE__*/ +function (_Bar) { + _inherits(Foo, _Bar); + + function Foo() { + _classCallCheck(this, Foo); + + return _possibleConstructorReturn(this, _getPrototypeOf(Foo).apply(this, arguments)); + } + + return Foo; +}(Bar); diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules/options.json deleted file mode 100644 index 92d77833b5a7..000000000000 --- a/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "plugins": [["transform-runtime", { "useESModules": true }], "transform-classes"] -} diff --git a/packages/babel-plugin-transform-shorthand-properties/package.json b/packages/babel-plugin-transform-shorthand-properties/package.json index 150b0e9ec17e..a3443de13770 100644 --- a/packages/babel-plugin-transform-shorthand-properties/package.json +++ b/packages/babel-plugin-transform-shorthand-properties/package.json @@ -1,21 +1,24 @@ { "name": "@babel/plugin-transform-shorthand-properties", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Compile ES2015 shorthand properties to ES5", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-shorthand-properties", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-spread/package.json b/packages/babel-plugin-transform-spread/package.json index 063448ddd449..40efc0cb2d9e 100644 --- a/packages/babel-plugin-transform-spread/package.json +++ b/packages/babel-plugin-transform-spread/package.json @@ -1,21 +1,24 @@ { "name": "@babel/plugin-transform-spread", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Compile ES2015 spread to ES5", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-spread", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-spread/src/index.js b/packages/babel-plugin-transform-spread/src/index.js index 0a65a2501648..50592fafbf12 100644 --- a/packages/babel-plugin-transform-spread/src/index.js +++ b/packages/babel-plugin-transform-spread/src/index.js @@ -143,7 +143,7 @@ export default declare((api, options) => { } path.replaceWith( - t.callExpression(path.hub.file.addHelper("construct"), [ + t.callExpression(path.hub.addHelper("construct"), [ node.callee, args, ]), diff --git a/packages/babel-plugin-transform-spread/test/fixtures/regression/6647/options.json b/packages/babel-plugin-transform-spread/test/fixtures/regression/6647/options.json index e9934ced5981..000d1f70d2b4 100644 --- a/packages/babel-plugin-transform-spread/test/fixtures/regression/6647/options.json +++ b/packages/babel-plugin-transform-spread/test/fixtures/regression/6647/options.json @@ -1,3 +1,7 @@ { - "plugins": ["external-helpers", "transform-spread", "transform-modules-commonjs"] + "plugins": [ + "external-helpers", + "transform-spread", + "transform-modules-commonjs" + ] } diff --git a/packages/babel-plugin-transform-sticky-regex/package.json b/packages/babel-plugin-transform-sticky-regex/package.json index 6feb4a5793e8..d643470debde 100644 --- a/packages/babel-plugin-transform-sticky-regex/package.json +++ b/packages/babel-plugin-transform-sticky-regex/package.json @@ -1,22 +1,25 @@ { "name": "@babel/plugin-transform-sticky-regex", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Compile ES2015 sticky regex to an ES5 RegExp constructor", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-sticky-regex", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/helper-regex": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-strict-mode/package.json b/packages/babel-plugin-transform-strict-mode/package.json index 0ecf11aa3eb8..fec6a0363e06 100644 --- a/packages/babel-plugin-transform-strict-mode/package.json +++ b/packages/babel-plugin-transform-strict-mode/package.json @@ -1,21 +1,24 @@ { "name": "@babel/plugin-transform-strict-mode", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "This plugin places a 'use strict'; directive at the top of all files to enable strict mode", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-strict-mode", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-template-literals/package.json b/packages/babel-plugin-transform-template-literals/package.json index c581103dce01..4eb558db7f8a 100644 --- a/packages/babel-plugin-transform-template-literals/package.json +++ b/packages/babel-plugin-transform-template-literals/package.json @@ -1,22 +1,25 @@ { "name": "@babel/plugin-transform-template-literals", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Compile ES2015 template literals to ES5", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-template-literals", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "dependencies": { - "@babel/helper-annotate-as-pure": "7.0.0-beta.52", - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" }, "keywords": [ "babel-plugin" ], "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-template-literals/test/fixtures/loose/options.json b/packages/babel-plugin-transform-template-literals/test/fixtures/loose/options.json index 96ed4bbec388..b49f4c01916d 100644 --- a/packages/babel-plugin-transform-template-literals/test/fixtures/loose/options.json +++ b/packages/babel-plugin-transform-template-literals/test/fixtures/loose/options.json @@ -1,3 +1,3 @@ { - "plugins": [["transform-template-literals", {"loose": true}]] + "plugins": [["transform-template-literals", { "loose": true }]] } diff --git a/packages/babel-plugin-transform-typeof-symbol/package.json b/packages/babel-plugin-transform-typeof-symbol/package.json index 1ca2407ce5e7..7b5cdb2bddce 100644 --- a/packages/babel-plugin-transform-typeof-symbol/package.json +++ b/packages/babel-plugin-transform-typeof-symbol/package.json @@ -1,21 +1,24 @@ { "name": "@babel/plugin-transform-typeof-symbol", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "This transformer wraps all typeof expressions with a method that replicates native behaviour. (ie. returning “symbol” for symbols)", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-typeof-symbol", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-typescript/package.json b/packages/babel-plugin-transform-typescript/package.json index 7b2691bac1fb..9452b5a83d88 100644 --- a/packages/babel-plugin-transform-typescript/package.json +++ b/packages/babel-plugin-transform-typescript/package.json @@ -1,23 +1,26 @@ { "name": "@babel/plugin-transform-typescript", - "version": "7.0.0-beta.52", + "version": "7.1.0", "description": "Transform TypeScript into ES.next", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-typescript", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin", "typescript" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/plugin-syntax-typescript": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-typescript": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-plugin-transform-typescript/src/index.js b/packages/babel-plugin-transform-typescript/src/index.js index f7f2b304f64b..34261f03932d 100644 --- a/packages/babel-plugin-transform-typescript/src/index.js +++ b/packages/babel-plugin-transform-typescript/src/index.js @@ -20,6 +20,8 @@ interface State { programPath: any; } +const PARSED_PARAMS = new WeakSet(); + export default declare((api, { jsxPragma = "React" }) => { api.assertVersion(7); @@ -40,7 +42,7 @@ export default declare((api, { jsxPragma = "React" }) => { // Note: this will allow both `import { } from "m"` and `import "m";`. // In TypeScript, the former would be elided. if (stmt.node.specifiers.length === 0) { - return; + continue; } let allElided = true; @@ -96,65 +98,9 @@ export default declare((api, { jsxPragma = "React" }) => { if (node.abstract) node.abstract = null; if (node.optional) node.optional = null; - if (node.kind !== "constructor") { - return; - } - - // Collect parameter properties - const parameterProperties = []; - for (const param of node.params) { - if (param.type === "TSParameterProperty") { - parameterProperties.push(param.parameter); - } - } - - if (!parameterProperties.length) { - return; - } - - const assigns = parameterProperties.map(p => { - let name; - if (t.isIdentifier(p)) { - name = p.name; - } else if (t.isAssignmentPattern(p) && t.isIdentifier(p.left)) { - name = p.left.name; - } else { - throw path.buildCodeFrameError( - "Parameter properties can not be destructuring patterns.", - ); - } - - const assign = t.assignmentExpression( - "=", - t.memberExpression(t.thisExpression(), t.identifier(name)), - t.identifier(name), - ); - return t.expressionStatement(assign); - }); - - const statements = node.body.body; - - const first = statements[0]; - const startsWithSuperCall = - first !== undefined && - t.isExpressionStatement(first) && - t.isCallExpression(first.expression) && - t.isSuper(first.expression.callee); - - // Make sure to put parameter properties *after* the `super` call. - // TypeScript will enforce that a 'super()' call is the first statement - // when there are parameter properties. - node.body.body = startsWithSuperCall - ? [first, ...assigns, ...statements.slice(1)] - : [...assigns, ...statements]; - // Rest handled by Function visitor }, - TSParameterProperty(path) { - path.replaceWith(path.node.parameter); - }, - ClassProperty(path) { const { node } = path; @@ -186,14 +132,74 @@ export default declare((api, { jsxPragma = "React" }) => { if (node.superTypeParameters) node.superTypeParameters = null; if (node.implements) node.implements = null; - // Same logic is used in babel-plugin-transform-flow-strip-types: - // We do this here instead of in a `ClassProperty` visitor because the class transform - // would transform the class before we reached the class property. + // Similar to the logic in `transform-flow-strip-types`, we need to + // handle `TSParameterProperty` and `ClassProperty` here because the + // class transform would transform the class, causing more specific + // visitors to not run. path.get("body.body").forEach(child => { - if (child.isClassProperty()) { - child.node.typeAnnotation = null; + const childNode = child.node; + + if (t.isClassMethod(childNode, { kind: "constructor" })) { + // Collects parameter properties so that we can add an assignment + // for each of them in the constructor body + // + // We use a WeakSet to ensure an assignment for a parameter + // property is only added once. This is necessary for cases like + // using `transform-classes`, which causes this visitor to run + // twice. + const parameterProperties = []; + for (const param of childNode.params) { + if ( + param.type === "TSParameterProperty" && + !PARSED_PARAMS.has(param.parameter) + ) { + PARSED_PARAMS.add(param.parameter); + parameterProperties.push(param.parameter); + } + } + + if (parameterProperties.length) { + const assigns = parameterProperties.map(p => { + let name; + if (t.isIdentifier(p)) { + name = p.name; + } else if (t.isAssignmentPattern(p) && t.isIdentifier(p.left)) { + name = p.left.name; + } else { + throw path.buildCodeFrameError( + "Parameter properties can not be destructuring patterns.", + ); + } + + const assign = t.assignmentExpression( + "=", + t.memberExpression(t.thisExpression(), t.identifier(name)), + t.identifier(name), + ); + return t.expressionStatement(assign); + }); + + const statements = childNode.body.body; + + const first = statements[0]; + + const startsWithSuperCall = + first !== undefined && + t.isExpressionStatement(first) && + t.isCallExpression(first.expression) && + t.isSuper(first.expression.callee); + + // Make sure to put parameter properties *after* the `super` + // call. TypeScript will enforce that a 'super()' call is the + // first statement when there are parameter properties. + childNode.body.body = startsWithSuperCall + ? [first, ...assigns, ...statements.slice(1)] + : [...assigns, ...statements]; + } + } else if (child.isClassProperty()) { + childNode.typeAnnotation = null; - if (!child.node.value && !child.node.decorators) { + if (!childNode.value && !childNode.decorators) { child.remove(); } } @@ -208,6 +214,13 @@ export default declare((api, { jsxPragma = "React" }) => { if (p0 && t.isIdentifier(p0) && p0.name === "this") { node.params.shift(); } + + // We replace `TSParameterProperty` here so that transforms that + // rely on a `Function` visitor to deal with arguments, like + // `transform-parameters`, work properly. + node.params = node.params.map(p => { + return p.type === "TSParameterProperty" ? p.parameter : p; + }); }, TSModuleDeclaration(path) { @@ -250,7 +263,11 @@ export default declare((api, { jsxPragma = "React" }) => { }, TSAsExpression(path) { - path.replaceWith(path.node.expression); + let { node } = path; + do { + node = node.expression; + } while (t.isTSAsExpression(node)); + path.replaceWith(node); }, TSNonNullExpression(path) { @@ -264,6 +281,14 @@ export default declare((api, { jsxPragma = "React" }) => { NewExpression(path) { path.node.typeParameters = null; }, + + JSXOpeningElement(path) { + path.node.typeParameters = null; + }, + + TaggedTemplateExpression(path) { + path.node.typeParameters = null; + }, }, }; diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/cast/multiple-assert-and-assign/input.js b/packages/babel-plugin-transform-typescript/test/fixtures/cast/multiple-assert-and-assign/input.js new file mode 100644 index 000000000000..c35da37ddffe --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/cast/multiple-assert-and-assign/input.js @@ -0,0 +1 @@ +(a as number as any) = 42; \ No newline at end of file diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/cast/multiple-assert-and-assign/output.js b/packages/babel-plugin-transform-typescript/test/fixtures/cast/multiple-assert-and-assign/output.js new file mode 100644 index 000000000000..e095ff18d1f2 --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/cast/multiple-assert-and-assign/output.js @@ -0,0 +1 @@ +a = 42; diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/class/parameter-properties-with-class-and-super/input.js b/packages/babel-plugin-transform-typescript/test/fixtures/class/parameter-properties-with-class-and-super/input.js new file mode 100644 index 000000000000..2ed9bcc85abc --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/class/parameter-properties-with-class-and-super/input.js @@ -0,0 +1,5 @@ +class Employee extends Person { + constructor(public name: string) { + super(); + } +} diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/class/parameter-properties-with-class-and-super/options.json b/packages/babel-plugin-transform-typescript/test/fixtures/class/parameter-properties-with-class-and-super/options.json new file mode 100644 index 000000000000..c52e76546c41 --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/class/parameter-properties-with-class-and-super/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-typescript", "transform-classes"] +} diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/class/parameter-properties-with-class-and-super/output.js b/packages/babel-plugin-transform-typescript/test/fixtures/class/parameter-properties-with-class-and-super/output.js new file mode 100644 index 000000000000..0d266ddf94e6 --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/class/parameter-properties-with-class-and-super/output.js @@ -0,0 +1,31 @@ +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (call && (typeof call === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +let Employee = +/*#__PURE__*/ +function (_Person) { + "use strict"; + + _inherits(Employee, _Person); + + function Employee(name) { + var _this; + + _classCallCheck(this, Employee); + + _this = _possibleConstructorReturn(this, _getPrototypeOf(Employee).call(this)); + _this.name = name; + return _this; + } + + return Employee; +}(Person); diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/class/parameter-properties-with-class/input.js b/packages/babel-plugin-transform-typescript/test/fixtures/class/parameter-properties-with-class/input.js new file mode 100644 index 000000000000..d1e95ee93c56 --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/class/parameter-properties-with-class/input.js @@ -0,0 +1,3 @@ +class Person { + constructor(public name: string) {} +} diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/class/parameter-properties-with-class/options.json b/packages/babel-plugin-transform-typescript/test/fixtures/class/parameter-properties-with-class/options.json new file mode 100644 index 000000000000..c52e76546c41 --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/class/parameter-properties-with-class/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-typescript", "transform-classes"] +} diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/class/parameter-properties-with-class/output.js b/packages/babel-plugin-transform-typescript/test/fixtures/class/parameter-properties-with-class/output.js new file mode 100644 index 000000000000..d59f465ff951 --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/class/parameter-properties-with-class/output.js @@ -0,0 +1,15 @@ +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +let Person = +/*#__PURE__*/ +function () { + "use strict"; + + function Person(name) { + _classCallCheck(this, Person); + + this.name = name; + } + + return Person; +}(); diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/class/parameter-properties-with-parameters/input.mjs b/packages/babel-plugin-transform-typescript/test/fixtures/class/parameter-properties-with-parameters/input.mjs new file mode 100644 index 000000000000..e21ba592b616 --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/class/parameter-properties-with-parameters/input.mjs @@ -0,0 +1,3 @@ +export default class Example { + constructor(public arg1 = null) { } +} diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/class/parameter-properties-with-parameters/options.json b/packages/babel-plugin-transform-typescript/test/fixtures/class/parameter-properties-with-parameters/options.json new file mode 100644 index 000000000000..e4c16fc7dcbf --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/class/parameter-properties-with-parameters/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-typescript", "transform-parameters"] +} diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/class/parameter-properties-with-parameters/output.mjs b/packages/babel-plugin-transform-typescript/test/fixtures/class/parameter-properties-with-parameters/output.mjs new file mode 100644 index 000000000000..c41b0e530880 --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/class/parameter-properties-with-parameters/output.mjs @@ -0,0 +1,7 @@ +export default class Example { + constructor() { + let arg1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + this.arg1 = arg1; + } + +} diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/class/properties/options.json b/packages/babel-plugin-transform-typescript/test/fixtures/class/properties/options.json index 43bd3d375961..14b2876dc1cf 100644 --- a/packages/babel-plugin-transform-typescript/test/fixtures/class/properties/options.json +++ b/packages/babel-plugin-transform-typescript/test/fixtures/class/properties/options.json @@ -1,6 +1,3 @@ { - "plugins": [ - "transform-typescript", - ["syntax-decorators", { "legacy": true }] - ] + "plugins": ["transform-typescript", ["syntax-decorators", { "legacy": true }]] } diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/enum/const/options.json b/packages/babel-plugin-transform-typescript/test/fixtures/enum/const/options.json index e64a9bc9fd64..26f55acbbd35 100644 --- a/packages/babel-plugin-transform-typescript/test/fixtures/enum/const/options.json +++ b/packages/babel-plugin-transform-typescript/test/fixtures/enum/const/options.json @@ -1 +1 @@ -{ "throws": "'const' enums are not supported." } \ No newline at end of file +{ "throws": "'const' enums are not supported." } diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/enum/non-foldable-constant/options.json b/packages/babel-plugin-transform-typescript/test/fixtures/enum/non-foldable-constant/options.json index 32e95fb26a01..f0cc17142b58 100644 --- a/packages/babel-plugin-transform-typescript/test/fixtures/enum/non-foldable-constant/options.json +++ b/packages/babel-plugin-transform-typescript/test/fixtures/enum/non-foldable-constant/options.json @@ -1,3 +1,3 @@ { - "throws": "Enum member must have initializer." + "throws": "Enum member must have initializer." } diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/exports/interface/input.mjs b/packages/babel-plugin-transform-typescript/test/fixtures/exports/interface/input.mjs new file mode 100644 index 000000000000..7049da8742da --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/exports/interface/input.mjs @@ -0,0 +1,2 @@ +export interface I {} +export default interface A {} diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/function/tuple-parameter/input.js b/packages/babel-plugin-transform-typescript/test/fixtures/function/tuple-parameter/input.js new file mode 100644 index 000000000000..954c72a82aaa --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/function/tuple-parameter/input.js @@ -0,0 +1 @@ +function foo(...args: [number, string?, ...number[]]) {} diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/function/tuple-parameter/output.js b/packages/babel-plugin-transform-typescript/test/fixtures/function/tuple-parameter/output.js new file mode 100644 index 000000000000..3b940d105755 --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/function/tuple-parameter/output.js @@ -0,0 +1 @@ +function foo(...args) {} diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/imports/elide-preact-no/options.json b/packages/babel-plugin-transform-typescript/test/fixtures/imports/elide-preact-no/options.json index 5bd8727ebb19..7991464b9fc9 100644 --- a/packages/babel-plugin-transform-typescript/test/fixtures/imports/elide-preact-no/options.json +++ b/packages/babel-plugin-transform-typescript/test/fixtures/imports/elide-preact-no/options.json @@ -1,3 +1,3 @@ { - "plugins": [["transform-typescript", { "jsxPragma": "h", "isTSX": true }]] + "plugins": [["transform-typescript", { "jsxPragma": "h", "isTSX": true }]] } diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/imports/elide-react-no-2/options.json b/packages/babel-plugin-transform-typescript/test/fixtures/imports/elide-react-no-2/options.json index 20970e7cd0f4..2c7aa7bce294 100644 --- a/packages/babel-plugin-transform-typescript/test/fixtures/imports/elide-react-no-2/options.json +++ b/packages/babel-plugin-transform-typescript/test/fixtures/imports/elide-react-no-2/options.json @@ -1,3 +1,3 @@ { - "plugins": [["transform-typescript", { "isTSX": true }]] + "plugins": [["transform-typescript", { "isTSX": true }]] } diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/imports/elide-react-no-3/options.json b/packages/babel-plugin-transform-typescript/test/fixtures/imports/elide-react-no-3/options.json index 20970e7cd0f4..2c7aa7bce294 100644 --- a/packages/babel-plugin-transform-typescript/test/fixtures/imports/elide-react-no-3/options.json +++ b/packages/babel-plugin-transform-typescript/test/fixtures/imports/elide-react-no-3/options.json @@ -1,3 +1,3 @@ { - "plugins": [["transform-typescript", { "isTSX": true }]] + "plugins": [["transform-typescript", { "isTSX": true }]] } diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/imports/elide-react-no/options.json b/packages/babel-plugin-transform-typescript/test/fixtures/imports/elide-react-no/options.json index 20970e7cd0f4..2c7aa7bce294 100644 --- a/packages/babel-plugin-transform-typescript/test/fixtures/imports/elide-react-no/options.json +++ b/packages/babel-plugin-transform-typescript/test/fixtures/imports/elide-react-no/options.json @@ -1,3 +1,3 @@ { - "plugins": [["transform-typescript", { "isTSX": true }]] + "plugins": [["transform-typescript", { "isTSX": true }]] } diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/imports/elision/input.mjs b/packages/babel-plugin-transform-typescript/test/fixtures/imports/elision/input.mjs index 3584b160d8d7..b2f4e11d19a3 100644 --- a/packages/babel-plugin-transform-typescript/test/fixtures/imports/elision/input.mjs +++ b/packages/babel-plugin-transform-typescript/test/fixtures/imports/elision/input.mjs @@ -1,3 +1,4 @@ +import "lib"; import A, { B, Used } from "lib"; import Used2, { C } from "lib"; import * as D from "lib"; diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/imports/elision/output.mjs b/packages/babel-plugin-transform-typescript/test/fixtures/imports/elision/output.mjs index 5dbb5a144e7e..d79833b14ce2 100644 --- a/packages/babel-plugin-transform-typescript/test/fixtures/imports/elision/output.mjs +++ b/packages/babel-plugin-transform-typescript/test/fixtures/imports/elision/output.mjs @@ -1,3 +1,4 @@ +import "lib"; import { Used } from "lib"; import Used2 from "lib"; import * as Used3 from "lib"; diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/type-arguments/tagged-template/input.js b/packages/babel-plugin-transform-typescript/test/fixtures/type-arguments/tagged-template/input.js new file mode 100644 index 000000000000..53bbc3e3edbe --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/type-arguments/tagged-template/input.js @@ -0,0 +1 @@ +f``; diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/type-arguments/tagged-template/output.js b/packages/babel-plugin-transform-typescript/test/fixtures/type-arguments/tagged-template/output.js new file mode 100644 index 000000000000..5b25c53f6108 --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/type-arguments/tagged-template/output.js @@ -0,0 +1 @@ +f``; diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/type-arguments/tsx/input.js b/packages/babel-plugin-transform-typescript/test/fixtures/type-arguments/tsx/input.js new file mode 100644 index 000000000000..520e35ee9097 --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/type-arguments/tsx/input.js @@ -0,0 +1,2 @@ +>; +/>; diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/type-arguments/tsx/options.json b/packages/babel-plugin-transform-typescript/test/fixtures/type-arguments/tsx/options.json new file mode 100644 index 000000000000..2c7aa7bce294 --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/type-arguments/tsx/options.json @@ -0,0 +1,3 @@ +{ + "plugins": [["transform-typescript", { "isTSX": true }]] +} diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/type-arguments/tsx/output.js b/packages/babel-plugin-transform-typescript/test/fixtures/type-arguments/tsx/output.js new file mode 100644 index 000000000000..c2d492ae05ae --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/type-arguments/tsx/output.js @@ -0,0 +1,2 @@ +; +; diff --git a/packages/babel-plugin-transform-unicode-regex/package.json b/packages/babel-plugin-transform-unicode-regex/package.json index 059ef6bae346..53587d4fbeb8 100644 --- a/packages/babel-plugin-transform-unicode-regex/package.json +++ b/packages/babel-plugin-transform-unicode-regex/package.json @@ -1,23 +1,26 @@ { "name": "@babel/plugin-transform-unicode-regex", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Compile ES2015 Unicode regex to ES5", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-unicode-regex", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/helper-regex": "7.0.0-beta.52", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0", "regexpu-core": "^4.1.3" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-polyfill/package.json b/packages/babel-polyfill/package.json index 70255b8f7664..3e5ed2cba3ee 100644 --- a/packages/babel-polyfill/package.json +++ b/packages/babel-polyfill/package.json @@ -1,14 +1,17 @@ { "name": "@babel/polyfill", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Provides polyfills necessary for a full ES2015+ environment", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", "license": "MIT", + "publishConfig": { + "access": "public" + }, "repository": "https://github.com/babel/babel/tree/master/packages/babel-polyfill", "main": "lib/index.js", "dependencies": { "core-js": "^2.5.7", - "regenerator-runtime": "^0.11.1" + "regenerator-runtime": "^0.12.0" } } diff --git a/packages/babel-polyfill/src/index.js b/packages/babel-polyfill/src/index.js index 5661b7c75ad9..d2bea4df332d 100644 --- a/packages/babel-polyfill/src/index.js +++ b/packages/babel-polyfill/src/index.js @@ -1,4 +1,19 @@ -import "core-js/shim"; +// Cover all standardized ES6 APIs. +import "core-js/es6"; + +// Standard now +import "core-js/fn/array/includes"; +import "core-js/fn/string/pad-start"; +import "core-js/fn/string/pad-end"; +import "core-js/fn/symbol/async-iterator"; +import "core-js/fn/object/get-own-property-descriptors"; +import "core-js/fn/object/values"; +import "core-js/fn/object/entries"; +import "core-js/fn/promise/finally"; + +// Ensure that we polyfill ES6 compat for anything web-related, if it exists. +import "core-js/web"; + import "regenerator-runtime/runtime"; if (global._babelPolyfill && typeof console !== "undefined" && console.warn) { diff --git a/packages/babel-polyfill/src/noConflict.js b/packages/babel-polyfill/src/noConflict.js index ae74735ec3e6..ec7c002ffffe 100644 --- a/packages/babel-polyfill/src/noConflict.js +++ b/packages/babel-polyfill/src/noConflict.js @@ -1,2 +1,17 @@ -import "core-js/shim"; +// Cover all standardized ES6 APIs. +import "core-js/es6"; + +// Standard now +import "core-js/fn/array/includes"; +import "core-js/fn/string/pad-start"; +import "core-js/fn/string/pad-end"; +import "core-js/fn/symbol/async-iterator"; +import "core-js/fn/object/get-own-property-descriptors"; +import "core-js/fn/object/values"; +import "core-js/fn/object/entries"; +import "core-js/fn/promise/finally"; + +// Ensure that we polyfill ES6 compat for anything web-related, if it exists. +import "core-js/web"; + import "regenerator-runtime/runtime"; diff --git a/packages/babel-preset-env-standalone/package.json b/packages/babel-preset-env-standalone/package.json index 490ce76a7660..5f799bb5c835 100644 --- a/packages/babel-preset-env-standalone/package.json +++ b/packages/babel-preset-env-standalone/package.json @@ -1,6 +1,6 @@ { "name": "@babel/preset-env-standalone", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Standalone build of babel-prest-env for use in non-Node.js environments.", "main": "babel-preset-env.js", "files": [ @@ -9,9 +9,10 @@ "src" ], "devDependencies": { - "@babel/plugin-transform-new-target": "7.0.0-beta.52", - "@babel/preset-env": "7.0.0-beta.52", - "@babel/standalone": "7.0.0-beta.52" + "@babel/plugin-proposal-json-strings": "^7.0.0", + "@babel/plugin-transform-new-target": "^7.0.0", + "@babel/preset-env": "^7.0.0", + "@babel/standalone": "^7.0.0" }, "keywords": [ "babel", @@ -24,6 +25,9 @@ "transpiler" ], "license": "MIT", + "publishConfig": { + "access": "public" + }, "bugs": { "url": "https://github.com/babel/babel/issues" }, diff --git a/packages/babel-preset-env-standalone/src/available-plugins.js b/packages/babel-preset-env-standalone/src/available-plugins.js index 4828e353f1c3..b149f981bb36 100644 --- a/packages/babel-preset-env-standalone/src/available-plugins.js +++ b/packages/babel-preset-env-standalone/src/available-plugins.js @@ -2,6 +2,7 @@ import { availablePlugins, registerPlugin } from "@babel/standalone"; const notIncludedPlugins = { "transform-new-target": require("@babel/plugin-transform-new-target"), + "proposal-json-strings": require("@babel/plugin-proposal-json-strings"), }; Object.keys(notIncludedPlugins).forEach(pluginName => { diff --git a/packages/babel-preset-env/data/built-in-features.js b/packages/babel-preset-env/data/built-in-features.js index 89d4474dadce..b8672b091ea5 100644 --- a/packages/babel-preset-env/data/built-in-features.js +++ b/packages/babel-preset-env/data/built-in-features.js @@ -277,7 +277,7 @@ const es = { "es6.string.from-code-point": "String static methods / String.fromCodePoint", "es6.string.includes": "String.prototype methods / String.prototype.includes", "es6.string.italics": "String.prototype HTML methods", - "es6.string.iterator": "String properties and methods / Property access on strings", + "es6.string.iterator": "String.prototype methods / String.prototype[Symbol.iterator]", "es6.string.link": "String.prototype HTML methods", // "String.prototype methods / String.prototype.normalize" not implemented "es7.string.pad-start": "String padding / String.prototype.padStart", diff --git a/packages/babel-preset-env/data/built-ins.json b/packages/babel-preset-env/data/built-ins.json index 91877c456b45..175a9dc2b88b 100644 --- a/packages/babel-preset-env/data/built-ins.json +++ b/packages/babel-preset-env/data/built-ins.json @@ -206,7 +206,8 @@ "firefox": "5", "safari": "10.1", "ie": "9", - "ios": "10.3" + "ios": "10.3", + "electron": "3" }, "es6.array.species": { "chrome": "51", @@ -618,7 +619,8 @@ "safari": "9", "node": "8.10", "ios": "9", - "opera": "49" + "opera": "49", + "electron": "3" }, "es7.object.define-setter": { "chrome": "62", @@ -627,7 +629,8 @@ "safari": "9", "node": "8.10", "ios": "9", - "opera": "49" + "opera": "49", + "electron": "3" }, "es6.object.define-property": { "chrome": "5", @@ -719,7 +722,8 @@ "safari": "9", "node": "8.10", "ios": "9", - "opera": "49" + "opera": "49", + "electron": "3" }, "es7.object.lookup-setter": { "chrome": "62", @@ -727,7 +731,8 @@ "safari": "9", "node": "8.10", "ios": "9", - "opera": "49" + "opera": "49", + "electron": "3" }, "es6.object.prevent-extensions": { "chrome": "44", @@ -832,10 +837,12 @@ }, "es7.promise.finally": { "chrome": "63", + "edge": "18", "firefox": "58", "safari": "11.1", "ios": "11.3", - "opera": "50" + "opera": "50", + "electron": "3" }, "es6.reflect.apply": { "chrome": "49", @@ -1052,8 +1059,10 @@ "es7.symbol.async-iterator": { "chrome": "63", "firefox": "57", - "safari": "tp", - "opera": "50" + "safari": "12", + "ios": "12", + "opera": "50", + "electron": "3" }, "es6.string.anchor": { "chrome": "5", @@ -1176,16 +1185,14 @@ "electron": "1.1" }, "es6.string.iterator": { - "chrome": "5", - "opera": "10.10", + "chrome": "38", "edge": "12", - "firefox": "2", - "safari": "3.1", - "node": "0.10", - "ie": "8", - "android": "4.0", - "ios": "6", - "electron": "1.1" + "firefox": "36", + "safari": "9", + "node": "0.12", + "ios": "9", + "opera": "25", + "electron": "0.2" }, "es6.string.link": { "chrome": "5", @@ -1430,5 +1437,13 @@ "ios": "9", "opera": "38", "electron": "1.2" + }, + "es7.array.flat-map": { + "chrome": "69", + "firefox": "62", + "safari": "12", + "ios": "12", + "opera": "56", + "electron": "4" } } diff --git a/packages/babel-preset-env/data/plugin-features.js b/packages/babel-preset-env/data/plugin-features.js index aa88a21c5c1a..bb5861370d67 100644 --- a/packages/babel-preset-env/data/plugin-features.js +++ b/packages/babel-preset-env/data/plugin-features.js @@ -54,10 +54,14 @@ const es = { }, "transform-spread": { - features: ["spread (...) operator"], + features: "spread syntax for iterable objects", }, "transform-parameters": { - features: ["default function parameters", "rest parameters"], + features: [ + "default function parameters", + "rest parameters", + "destructuring, parameters / defaults, arrow function", + ], }, "transform-destructuring": { features: [ @@ -90,6 +94,9 @@ const es = { "proposal-async-generator-functions": "Asynchronous Iterators", "proposal-object-rest-spread": "object rest/spread properties", "proposal-unicode-property-regex": "RegExp Unicode Property Escapes", + + "proposal-json-strings": "", // Awaiting mapping in compat-table + "proposal-optional-catch-binding": "optional catch binding", }; const proposals = require("./shipped-proposals").features; diff --git a/packages/babel-preset-env/data/plugins.json b/packages/babel-preset-env/data/plugins.json index 876b3d57278f..c8a5e48dabb4 100644 --- a/packages/babel-preset-env/data/plugins.json +++ b/packages/babel-preset-env/data/plugins.json @@ -124,7 +124,8 @@ "safari": "11.1", "node": "8.10", "ios": "11.3", - "opera": "49" + "opera": "49", + "electron": "3" }, "transform-unicode-regex": { "chrome": "50", @@ -148,7 +149,6 @@ }, "transform-parameters": { "chrome": "49", - "edge": "14", "firefox": "53", "safari": "10", "node": "6", @@ -228,8 +228,10 @@ "proposal-async-generator-functions": { "chrome": "63", "firefox": "57", - "safari": "tp", - "opera": "50" + "safari": "12", + "ios": "12", + "opera": "50", + "electron": "3" }, "proposal-object-rest-spread": { "chrome": "60", @@ -238,19 +240,22 @@ "node": "8.3", "ios": "11.3", "opera": "47", - "electron": "2" + "electron": "2.1" }, "proposal-unicode-property-regex": { "chrome": "64", "safari": "11.1", "ios": "11.3", - "opera": "51" + "opera": "51", + "electron": "3" }, + "proposal-json-strings": {}, "proposal-optional-catch-binding": { "chrome": "66", "firefox": "58", "safari": "11.1", "ios": "11.3", - "opera": "53" + "opera": "53", + "electron": "3" } } diff --git a/packages/babel-preset-env/data/shipped-proposals.js b/packages/babel-preset-env/data/shipped-proposals.js index 23b7450117f0..a5723716ca8c 100644 --- a/packages/babel-preset-env/data/shipped-proposals.js +++ b/packages/babel-preset-env/data/shipped-proposals.js @@ -1,17 +1,18 @@ // These mappings represent the builtin/feature proposals that have been // shipped by browsers, and are enabled by the `shippedProposals` option. -const builtIns = {}; - -const features = { - "proposal-optional-catch-binding": "optional catch binding", +const builtIns = { + "es7.array.flat-map": "Array.prototype.{flat, flatMap} / Array.prototype.flatMap" }; +const features = {}; + const pluginSyntaxMap = new Map([ ["proposal-async-generator-functions", "syntax-async-generators"], ["proposal-object-rest-spread", "syntax-object-rest-spread"], ["proposal-optional-catch-binding", "syntax-optional-catch-binding"], ["proposal-unicode-property-regex", null], + ["proposal-json-strings", "syntax-json-strings"], ]); module.exports = { builtIns, features, pluginSyntaxMap }; diff --git a/packages/babel-preset-env/package.json b/packages/babel-preset-env/package.json index cc3ed69d64c8..5fc94d541154 100644 --- a/packages/babel-preset-env/package.json +++ b/packages/babel-preset-env/package.json @@ -1,67 +1,71 @@ { "name": "@babel/preset-env", - "version": "7.0.0-beta.52", + "version": "7.1.0", "description": "A Babel preset for each environment.", "author": "Henry Zhu ", "homepage": "https://babeljs.io/", "license": "MIT", + "publishConfig": { + "access": "public" + }, "repository": "https://github.com/babel/babel/tree/master/packages/babel-preset-env", "main": "lib/index.js", "scripts": { "build-data": "node ./scripts/build-data.js; node ./scripts/build-modules-support.js" }, "dependencies": { - "@babel/helper-module-imports": "7.0.0-beta.52", - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/plugin-proposal-async-generator-functions": "7.0.0-beta.52", - "@babel/plugin-proposal-object-rest-spread": "7.0.0-beta.52", - "@babel/plugin-proposal-optional-catch-binding": "7.0.0-beta.52", - "@babel/plugin-proposal-unicode-property-regex": "7.0.0-beta.52", - "@babel/plugin-syntax-async-generators": "7.0.0-beta.52", - "@babel/plugin-syntax-object-rest-spread": "7.0.0-beta.52", - "@babel/plugin-syntax-optional-catch-binding": "7.0.0-beta.52", - "@babel/plugin-transform-arrow-functions": "7.0.0-beta.52", - "@babel/plugin-transform-async-to-generator": "7.0.0-beta.52", - "@babel/plugin-transform-block-scoped-functions": "7.0.0-beta.52", - "@babel/plugin-transform-block-scoping": "7.0.0-beta.52", - "@babel/plugin-transform-classes": "7.0.0-beta.52", - "@babel/plugin-transform-computed-properties": "7.0.0-beta.52", - "@babel/plugin-transform-destructuring": "7.0.0-beta.52", - "@babel/plugin-transform-dotall-regex": "7.0.0-beta.52", - "@babel/plugin-transform-duplicate-keys": "7.0.0-beta.52", - "@babel/plugin-transform-exponentiation-operator": "7.0.0-beta.52", - "@babel/plugin-transform-for-of": "7.0.0-beta.52", - "@babel/plugin-transform-function-name": "7.0.0-beta.52", - "@babel/plugin-transform-literals": "7.0.0-beta.52", - "@babel/plugin-transform-modules-amd": "7.0.0-beta.52", - "@babel/plugin-transform-modules-commonjs": "7.0.0-beta.52", - "@babel/plugin-transform-modules-systemjs": "7.0.0-beta.52", - "@babel/plugin-transform-modules-umd": "7.0.0-beta.52", - "@babel/plugin-transform-new-target": "7.0.0-beta.52", - "@babel/plugin-transform-object-super": "7.0.0-beta.52", - "@babel/plugin-transform-parameters": "7.0.0-beta.52", - "@babel/plugin-transform-regenerator": "7.0.0-beta.52", - "@babel/plugin-transform-shorthand-properties": "7.0.0-beta.52", - "@babel/plugin-transform-spread": "7.0.0-beta.52", - "@babel/plugin-transform-sticky-regex": "7.0.0-beta.52", - "@babel/plugin-transform-template-literals": "7.0.0-beta.52", - "@babel/plugin-transform-typeof-symbol": "7.0.0-beta.52", - "@babel/plugin-transform-unicode-regex": "7.0.0-beta.52", - "browserslist": "^3.0.0", + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-async-generator-functions": "^7.1.0", + "@babel/plugin-proposal-json-strings": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.0.0", + "@babel/plugin-syntax-async-generators": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.0.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.0.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-async-to-generator": "^7.1.0", + "@babel/plugin-transform-block-scoped-functions": "^7.0.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.1.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.0.0", + "@babel/plugin-transform-dotall-regex": "^7.0.0", + "@babel/plugin-transform-duplicate-keys": "^7.0.0", + "@babel/plugin-transform-exponentiation-operator": "^7.1.0", + "@babel/plugin-transform-for-of": "^7.0.0", + "@babel/plugin-transform-function-name": "^7.1.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-modules-amd": "^7.1.0", + "@babel/plugin-transform-modules-commonjs": "^7.1.0", + "@babel/plugin-transform-modules-systemjs": "^7.0.0", + "@babel/plugin-transform-modules-umd": "^7.1.0", + "@babel/plugin-transform-new-target": "^7.0.0", + "@babel/plugin-transform-object-super": "^7.1.0", + "@babel/plugin-transform-parameters": "^7.1.0", + "@babel/plugin-transform-regenerator": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-sticky-regex": "^7.0.0", + "@babel/plugin-transform-template-literals": "^7.0.0", + "@babel/plugin-transform-typeof-symbol": "^7.0.0", + "@babel/plugin-transform-unicode-regex": "^7.0.0", + "browserslist": "^4.1.0", "invariant": "^2.2.2", "js-levenshtein": "^1.1.3", "semver": "^5.3.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/cli": "7.0.0-beta.52", - "@babel/core": "7.0.0-beta.52", - "@babel/helper-fixtures": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52", - "compat-table": "kangax/compat-table#90d02e486227d179d2ce9b850dbb3f9846443cab", - "electron-to-chromium": "^1.3.27", - "request": "^2.83.0" + "@babel/cli": "^7.0.0", + "@babel/core": "^7.0.0", + "@babel/helper-fixtures": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0", + "caniuse-db": "1.0.30000851", + "compat-table": "kangax/compat-table#e3630aade96bbe1d228498c18168fe7f2cd15697", + "electron-to-chromium": "1.3.79" } } diff --git a/packages/babel-preset-env/scripts/build-modules-support.js b/packages/babel-preset-env/scripts/build-modules-support.js index edbdd85b8b83..1ce611078c15 100644 --- a/packages/babel-preset-env/scripts/build-modules-support.js +++ b/packages/babel-preset-env/scripts/build-modules-support.js @@ -1,77 +1,37 @@ const path = require("path"); const fs = require("fs"); -const request = require("request"); -// This mapping represents browsers who have shipped ES Modules Support. -// For more information, checkout the specifications: -// * https://www.ecma-international.org/ecma-262/6.0/#sec-modules -// * https://html.spec.whatwg.org/multipage/scripting.html#attr-script-type -const lastKnown = { - chrome: 61, - safari: 10.1, - ios_saf: 10.3, - edge: 16, -}; +const moduleSupport = require("caniuse-db/features-json/es6-module.json"); const acceptedWithCaveats = { safari: true, ios_saf: true, }; -function input() { - return new Promise(function(resolve, reject) { - request( - "https://raw.githubusercontent.com/Fyrd/caniuse/master/features-json/es6-module.json", - function(error, response, body) { - if (error || response.statusCode !== 200) { - return reject( - new Error( - `Error retrieving es6-module.json. ${ - error ? error : `statusCode=${response.statusCode}` - }` - ) - ); - } - - try { - const { stats } = JSON.parse(body); - const allowedBrowsers = {}; - - Object.keys(stats).forEach(browser => { - if (browser !== "and_chr") { - const browserVersions = stats[browser]; - const allowedVersions = Object.keys(browserVersions) - .filter(value => { - return acceptedWithCaveats[browser] - ? browserVersions[value][0] === "a" - : browserVersions[value] === "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]; - } - } - }); - - resolve(allowedBrowsers); - } catch (error) { - return reject(new Error(`Error parsing es6-module.json.`)); - } - } - ); - }); -} - -function output(minVersions) { - const dataPath = path.join(__dirname, "../data/built-in-modules.json"); - const data = { - "es6.module": minVersions, - }; - fs.writeFileSync(dataPath, `${JSON.stringify(data, null, 2)}\n`); -} - -Promise.resolve(input()) - .then(minVersions => output(minVersions)) - .catch(output(lastKnown)); +const { stats } = moduleSupport; + +const allowedBrowsers = {}; + +Object.keys(stats).forEach(browser => { + if (browser !== "and_chr") { + const browserVersions = stats[browser]; + const allowedVersions = Object.keys(browserVersions) + .filter(value => { + return acceptedWithCaveats[browser] + ? browserVersions[value][0] === "a" + : browserVersions[value] === "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]; + } + } +}); + +const dataPath = path.join(__dirname, "../data/built-in-modules.json"); +const data = { + "es6.module": allowedBrowsers, +}; +fs.writeFileSync(dataPath, `${JSON.stringify(data, null, 2)}\n`); diff --git a/packages/babel-preset-env/src/available-plugins.js b/packages/babel-preset-env/src/available-plugins.js index 730c41131268..559e5478a4b3 100644 --- a/packages/babel-preset-env/src/available-plugins.js +++ b/packages/babel-preset-env/src/available-plugins.js @@ -4,6 +4,7 @@ export default { "syntax-optional-catch-binding": require("@babel/plugin-syntax-optional-catch-binding"), "transform-async-to-generator": require("@babel/plugin-transform-async-to-generator"), "proposal-async-generator-functions": require("@babel/plugin-proposal-async-generator-functions"), + "proposal-json-strings": require("@babel/plugin-proposal-json-strings"), "transform-arrow-functions": require("@babel/plugin-transform-arrow-functions"), "transform-block-scoped-functions": require("@babel/plugin-transform-block-scoped-functions"), "transform-block-scoping": require("@babel/plugin-transform-block-scoping"), diff --git a/packages/babel-preset-env/src/built-in-definitions.js b/packages/babel-preset-env/src/built-in-definitions.js index 121ffc84f87e..bcad0d8651d5 100644 --- a/packages/babel-preset-env/src/built-in-definitions.js +++ b/packages/babel-preset-env/src/built-in-definitions.js @@ -46,6 +46,7 @@ export const definitions = { every: ["es6.array.is-array"], fill: ["es6.array.fill"], filter: ["es6.array.filter"], + finally: ["es7.promise.finally"], find: ["es6.array.find"], findIndex: ["es6.array.find-index"], fixed: ["es6.string.fixed"], diff --git a/packages/babel-preset-env/src/index.js b/packages/babel-preset-env/src/index.js index bed18c728b98..338a25a6ab07 100644 --- a/packages/babel-preset-env/src/index.js +++ b/packages/babel-preset-env/src/index.js @@ -155,6 +155,10 @@ const filterItems = ( return result; }; +function supportsStaticESM(caller) { + return !!(caller && caller.supportsStaticESM); +} + export default declare((api, opts) => { api.assertVersion(7); @@ -232,9 +236,15 @@ export default declare((api, opts) => { const plugins = []; const pluginUseBuiltIns = useBuiltIns !== false; - // NOTE: not giving spec here yet to avoid compatibility issues when - // transform-modules-commonjs gets its spec mode - if (modules !== false && moduleTransformations[modules]) { + if ( + modules !== false && + moduleTransformations[modules] && + // TODO: Remove the 'api.caller' check eventually. Just here to prevent + // unnecessary breakage in the short term for users on older betas/RCs. + (modules !== "auto" || !api.caller || !api.caller(supportsStaticESM)) + ) { + // NOTE: not giving spec here yet to avoid compatibility issues when + // transform-modules-commonjs gets its spec mode plugins.push([getPlugin(moduleTransformations[modules]), { loose }]); } diff --git a/packages/babel-preset-env/src/module-transformations.js b/packages/babel-preset-env/src/module-transformations.js index ad50bdc263a7..a98f8dd04461 100644 --- a/packages/babel-preset-env/src/module-transformations.js +++ b/packages/babel-preset-env/src/module-transformations.js @@ -1,4 +1,5 @@ export default { + auto: "transform-modules-commonjs", amd: "transform-modules-amd", commonjs: "transform-modules-commonjs", cjs: "transform-modules-commonjs", diff --git a/packages/babel-preset-env/src/normalize-options.js b/packages/babel-preset-env/src/normalize-options.js index 838625ecc20d..75144356e137 100644 --- a/packages/babel-preset-env/src/normalize-options.js +++ b/packages/babel-preset-env/src/normalize-options.js @@ -5,6 +5,7 @@ import browserslist from "browserslist"; import builtInsList from "../data/built-ins.json"; import { defaultWebIncludes } from "./default-includes"; import moduleTransformations from "./module-transformations"; +import { isBrowsersQueryValid } from "./targets-parser"; import { getValues, findSuggestion } from "./utils"; import pluginsList from "../data/plugins.json"; import { TopLevelOptions, ModulesOption, UseBuiltInsOption } from "./options"; @@ -92,6 +93,16 @@ export const checkDuplicateIncludeExcludes = ( ); }; +const normalizeTargets = (targets: any): Targets => { + // TODO: Allow to use only query or strings as a targets from next breaking change. + if (isBrowsersQueryValid(targets)) { + return { browsers: targets }; + } + return { + ...targets, + }; +}; + export const validateConfigPathOption = ( configPath: string = process.cwd(), ) => { @@ -128,13 +139,16 @@ export const validateIgnoreBrowserslistConfig = ( ); export const validateModulesOption = ( - modulesOpt: ModuleOption = ModulesOption.commonjs, + modulesOpt: ModuleOption = ModulesOption.auto, ) => { invariant( ModulesOption[modulesOpt] || ModulesOption[modulesOpt] === ModulesOption.false, - `Invalid Option: The 'modules' option must be either 'false' to indicate no modules, or a - module type which can be be one of: 'commonjs' (default), 'amd', 'umd', 'systemjs'.`, + `Invalid Option: The 'modules' option must be one of \n` + + ` - 'false' to indicate no module processing\n` + + ` - a specific module type: 'commonjs', 'amd', 'umd', 'systemjs'` + + ` - 'auto' (default) which will automatically select 'false' if the current\n` + + ` process is known to support ES module syntax, or "commonjs" otherwise\n`, ); return modulesOpt; @@ -200,9 +214,7 @@ export default function normalizeOptions(opts: Options) { false, ), spec: validateBoolOption(TopLevelOptions.spec, opts.spec, false), - targets: { - ...opts.targets, - }, + targets: normalizeTargets(opts.targets), useBuiltIns: validateUseBuiltInsOption(opts.useBuiltIns), }; } diff --git a/packages/babel-preset-env/src/options.js b/packages/babel-preset-env/src/options.js index b201bac97115..e1f08ccd9be3 100644 --- a/packages/babel-preset-env/src/options.js +++ b/packages/babel-preset-env/src/options.js @@ -15,6 +15,7 @@ export const TopLevelOptions = { export const ModulesOption = { false: false, + auto: "auto", amd: "amd", commonjs: "commonjs", cjs: "cjs", diff --git a/packages/babel-preset-env/src/targets-parser.js b/packages/babel-preset-env/src/targets-parser.js index ab009b00495a..c2a446d7ea84 100644 --- a/packages/babel-preset-env/src/targets-parser.js +++ b/packages/babel-preset-env/src/targets-parser.js @@ -15,6 +15,8 @@ import browserModulesData from "../data/built-in-modules.json"; import { TargetNames } from "./options"; import type { Targets } from "./types"; +const browserslistDefaults = browserslist.defaults; + const validateTargetNames = (validTargets, targets) => { for (const target in targets) { if (!TargetNames[target]) { @@ -36,10 +38,12 @@ const browserNameMap = { ie: "ie", ios_saf: "ios", safari: "safari", + node: "node", }; -const isBrowsersQueryValid = (browsers: string | Array): boolean => - typeof browsers === "string" || Array.isArray(browsers); +export const isBrowsersQueryValid = ( + browsers: string | Array | Targets, +): boolean => typeof browsers === "string" || Array.isArray(browsers); const validateBrowsers = browsers => { invariant( @@ -172,12 +176,22 @@ const getTargets = (targets: Object = {}, options: Object = {}): Targets => { // Parse browsers target via browserslist const browsersquery = validateBrowsers(targets.browsers); - if (!options.ignoreBrowserslistConfig) { + const shouldParseBrowsers = !!targets.browsers; + const shouldSearchForConfig = + !options.ignoreBrowserslistConfig && !Object.keys(targets).length; + + if (shouldParseBrowsers || shouldSearchForConfig) { browserslist.defaults = objectToBrowserslist(targets); - const browsers = browserslist(browsersquery, { path: options.configPath }); + const browsers = browserslist(browsersquery, { + path: options.configPath, + }); + const queryBrowsers = getLowestVersions(browsers); targets = mergeBrowsers(queryBrowsers, targets); + + // Reset browserslist defaults + browserslist.defaults = browserslistDefaults; } // Parse remaining targets diff --git a/packages/babel-preset-env/test/debug-fixtures/android/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/android/stdout.txt index 32f42d128042..a9ce8a7dea8a 100644 --- a/packages/babel-preset-env/test/debug-fixtures/android/stdout.txt +++ b/packages/babel-preset-env/test/debug-fixtures/android/stdout.txt @@ -5,7 +5,7 @@ Using targets: "android": "4" } -Using modules transform: commonjs +Using modules transform: auto Using plugins: transform-template-literals { "android":"4" } @@ -34,6 +34,8 @@ Using plugins: proposal-async-generator-functions { "android":"4" } proposal-object-rest-spread { "android":"4" } proposal-unicode-property-regex { "android":"4" } + proposal-json-strings { "android":"4" } + proposal-optional-catch-binding { "android":"4" } Using polyfills with `entry` option: @@ -127,6 +129,7 @@ Using polyfills with `entry` option: es6.string.ends-with { "android":"4" } es6.string.from-code-point { "android":"4" } es6.string.includes { "android":"4" } + es6.string.iterator { "android":"4" } es7.string.pad-start { "android":"4" } es7.string.pad-end { "android":"4" } es6.string.raw { "android":"4" } diff --git a/packages/babel-preset-env/test/debug-fixtures/builtins-no-import/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/builtins-no-import/stdout.txt index a45e0cafb795..6f6c5128333e 100644 --- a/packages/babel-preset-env/test/debug-fixtures/builtins-no-import/stdout.txt +++ b/packages/babel-preset-env/test/debug-fixtures/builtins-no-import/stdout.txt @@ -5,7 +5,7 @@ Using targets: "node": "6" } -Using modules transform: commonjs +Using modules transform: auto Using plugins: transform-function-name { "node":"6" } @@ -17,8 +17,10 @@ Using plugins: proposal-async-generator-functions { "node":"6" } proposal-object-rest-spread { "node":"6" } proposal-unicode-property-regex { "node":"6" } + proposal-json-strings { "node":"6" } + proposal-optional-catch-binding { "node":"6" } Using polyfills with `entry` option: [/src/in.js] `import '@babel/polyfill'` was not found. -Successfully compiled 1 file with Babel. \ No newline at end of file +Successfully compiled 1 file with Babel. diff --git a/packages/babel-preset-env/test/debug-fixtures/builtins-uglify/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/builtins-uglify/stdout.txt index 6fd3b4e1eceb..a56973565bc3 100644 --- a/packages/babel-preset-env/test/debug-fixtures/builtins-uglify/stdout.txt +++ b/packages/babel-preset-env/test/debug-fixtures/builtins-uglify/stdout.txt @@ -37,6 +37,8 @@ Using plugins: proposal-async-generator-functions { "chrome":"55" } proposal-object-rest-spread { "chrome":"55" } proposal-unicode-property-regex { "chrome":"55" } + proposal-json-strings { "chrome":"55" } + proposal-optional-catch-binding { "chrome":"55" } Using polyfills with `entry` option: diff --git a/packages/babel-preset-env/test/debug-fixtures/builtins/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/builtins/stdout.txt index d348725928d5..d3b723ee32be 100644 --- a/packages/babel-preset-env/test/debug-fixtures/builtins/stdout.txt +++ b/packages/babel-preset-env/test/debug-fixtures/builtins/stdout.txt @@ -7,7 +7,7 @@ Using targets: "node": "6" } -Using modules transform: commonjs +Using modules transform: auto Using plugins: transform-template-literals { "ie":"10" } @@ -36,6 +36,8 @@ Using plugins: proposal-async-generator-functions { "chrome":"54", "ie":"10", "node":"6" } proposal-object-rest-spread { "chrome":"54", "ie":"10", "node":"6" } proposal-unicode-property-regex { "chrome":"54", "ie":"10", "node":"6" } + proposal-json-strings { "chrome":"54", "ie":"10", "node":"6" } + proposal-optional-catch-binding { "chrome":"54", "ie":"10", "node":"6" } Using polyfills with `entry` option: @@ -138,6 +140,7 @@ Using polyfills with `entry` option: es6.string.from-code-point { "ie":"10" } es6.string.includes { "ie":"10" } es6.string.italics { "ie":"10" } + es6.string.iterator { "ie":"10" } es6.string.link { "ie":"10" } es7.string.pad-start { "chrome":"54", "ie":"10", "node":"6" } es7.string.pad-end { "chrome":"54", "ie":"10", "node":"6" } diff --git a/packages/babel-preset-env/test/debug-fixtures/electron/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/electron/stdout.txt index 888b2f76e614..85f4e177155b 100644 --- a/packages/babel-preset-env/test/debug-fixtures/electron/stdout.txt +++ b/packages/babel-preset-env/test/debug-fixtures/electron/stdout.txt @@ -12,7 +12,7 @@ Using targets: "electron": "0.36" } -Using modules transform: commonjs +Using modules transform: auto Using plugins: transform-function-name { "electron":"0.36" } @@ -29,6 +29,8 @@ Using plugins: proposal-async-generator-functions { "electron":"0.36" } proposal-object-rest-spread { "electron":"0.36" } proposal-unicode-property-regex { "electron":"0.36" } + proposal-json-strings { "electron":"0.36" } + proposal-optional-catch-binding { "electron":"0.36" } Using polyfills with `entry` option: @@ -98,7 +100,6 @@ Using polyfills with `entry` option: es6.string.fontcolor { "electron":"0.36" } es6.string.fontsize { "electron":"0.36" } es6.string.italics { "electron":"0.36" } - es6.string.iterator { "electron":"0.36" } es6.string.link { "electron":"0.36" } es7.string.pad-start { "electron":"0.36" } es7.string.pad-end { "electron":"0.36" } diff --git a/packages/babel-preset-env/test/debug-fixtures/force-all-transforms/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/force-all-transforms/stdout.txt index cc9723986135..ed62042f16cc 100644 --- a/packages/babel-preset-env/test/debug-fixtures/force-all-transforms/stdout.txt +++ b/packages/babel-preset-env/test/debug-fixtures/force-all-transforms/stdout.txt @@ -34,6 +34,8 @@ Using plugins: proposal-async-generator-functions { "chrome":"55" } proposal-object-rest-spread { "chrome":"55" } proposal-unicode-property-regex { "chrome":"55" } + proposal-json-strings { "chrome":"55" } + proposal-optional-catch-binding { "chrome":"55" } Using polyfills with `entry` option: diff --git a/packages/babel-preset-env/test/debug-fixtures/plugins-only/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/plugins-only/stdout.txt index fe38b35270a7..460d1d4440e3 100644 --- a/packages/babel-preset-env/test/debug-fixtures/plugins-only/stdout.txt +++ b/packages/babel-preset-env/test/debug-fixtures/plugins-only/stdout.txt @@ -13,7 +13,7 @@ Using targets: "node": "7.4" } -Using modules transform: commonjs +Using modules transform: auto Using plugins: transform-literals { "firefox":"52" } @@ -24,6 +24,8 @@ Using plugins: proposal-async-generator-functions { "firefox":"52", "node":"7.4" } proposal-object-rest-spread { "firefox":"52", "node":"7.4" } proposal-unicode-property-regex { "firefox":"52", "node":"7.4" } + proposal-json-strings { "firefox":"52", "node":"7.4" } + proposal-optional-catch-binding { "firefox":"52", "node":"7.4" } Using polyfills: No polyfills were added, since the `useBuiltIns` option was not set. -Successfully compiled 1 file with Babel. \ No newline at end of file +Successfully compiled 1 file with Babel. diff --git a/packages/babel-preset-env/test/debug-fixtures/shippedProposals-chrome60/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/shippedProposals-chrome60/stdout.txt index 99e76ef7e16f..951d93305d40 100644 --- a/packages/babel-preset-env/test/debug-fixtures/shippedProposals-chrome60/stdout.txt +++ b/packages/babel-preset-env/test/debug-fixtures/shippedProposals-chrome60/stdout.txt @@ -5,13 +5,14 @@ Using targets: "chrome": "60" } -Using modules transform: commonjs +Using modules transform: auto Using plugins: transform-dotall-regex { "chrome":"60" } proposal-async-generator-functions { "chrome":"60" } syntax-object-rest-spread { "chrome":"60" } proposal-unicode-property-regex { "chrome":"60" } + proposal-json-strings { "chrome":"60" } proposal-optional-catch-binding { "chrome":"60" } Using polyfills with `entry` option: @@ -24,7 +25,8 @@ Using polyfills with `entry` option: es7.object.lookup-setter { "chrome":"60" } es7.promise.finally { "chrome":"60" } es7.symbol.async-iterator { "chrome":"60" } + es7.array.flat-map { "chrome":"60" } web.timers { "chrome":"60" } web.immediate { "chrome":"60" } web.dom.iterable { "chrome":"60" } -Successfully compiled 1 file with Babel. \ No newline at end of file +Successfully compiled 1 file with Babel. diff --git a/packages/babel-preset-env/test/debug-fixtures/shippedProposals/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/shippedProposals/stdout.txt index ea90165dbbe1..7afc25b3b6cb 100644 --- a/packages/babel-preset-env/test/debug-fixtures/shippedProposals/stdout.txt +++ b/packages/babel-preset-env/test/debug-fixtures/shippedProposals/stdout.txt @@ -3,7 +3,7 @@ Using targets: {} -Using modules transform: commonjs +Using modules transform: auto Using plugins: transform-template-literals {} @@ -32,6 +32,7 @@ Using plugins: proposal-async-generator-functions {} proposal-object-rest-spread {} proposal-unicode-property-regex {} + proposal-json-strings {} proposal-optional-catch-binding {} Using polyfills with `entry` option: @@ -178,7 +179,8 @@ Using polyfills with `entry` option: es6.typed.float64-array {} es6.weak-map {} es6.weak-set {} + es7.array.flat-map {} web.timers {} web.immediate {} web.dom.iterable {} -Successfully compiled 1 file with Babel. \ No newline at end of file +Successfully compiled 1 file with Babel. diff --git a/packages/babel-preset-env/test/debug-fixtures/specific-targets/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/specific-targets/stdout.txt index da1dc462cd77..8733b4c2341a 100644 --- a/packages/babel-preset-env/test/debug-fixtures/specific-targets/stdout.txt +++ b/packages/babel-preset-env/test/debug-fixtures/specific-targets/stdout.txt @@ -10,7 +10,7 @@ Using targets: "safari": "7" } -Using modules transform: commonjs +Using modules transform: auto Using plugins: transform-template-literals { "ie":"10", "safari":"7" } @@ -39,6 +39,8 @@ Using plugins: proposal-async-generator-functions { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } proposal-object-rest-spread { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } proposal-unicode-property-regex { "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" } + proposal-optional-catch-binding { "chrome":"54", "edge":"13", "firefox":"49", "ie":"10", "ios":"9", "safari":"7" } Using polyfills with `entry` option: @@ -142,6 +144,7 @@ Using polyfills with `entry` option: es6.string.from-code-point { "ie":"10", "safari":"7" } es6.string.includes { "ie":"10", "safari":"7" } es6.string.italics { "ie":"10" } + es6.string.iterator { "ie":"10", "safari":"7" } es6.string.link { "ie":"10" } es7.string.pad-start { "chrome":"54", "edge":"13", "ie":"10", "ios":"9", "safari":"7" } es7.string.pad-end { "chrome":"54", "edge":"13", "ie":"10", "ios":"9", "safari":"7" } diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-none/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/usage-none/stdout.txt index 7f52fcadcb3b..b53b349d9cac 100644 --- a/packages/babel-preset-env/test/debug-fixtures/usage-none/stdout.txt +++ b/packages/babel-preset-env/test/debug-fixtures/usage-none/stdout.txt @@ -7,7 +7,7 @@ Using targets: "ie": "11" } -Using modules transform: commonjs +Using modules transform: auto Using plugins: transform-template-literals { "ie":"11" } @@ -35,10 +35,12 @@ Using plugins: proposal-async-generator-functions { "chrome":"52", "firefox":"50", "ie":"11" } proposal-object-rest-spread { "chrome":"52", "firefox":"50", "ie":"11" } proposal-unicode-property-regex { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-json-strings { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-optional-catch-binding { "chrome":"52", "firefox":"50", "ie":"11" } Using polyfills with `usage` option: [/src/in.js] Based on your code and targets, none were added. [/src/in2.js] Based on your code and targets, none were added. -Successfully compiled 2 files with Babel. \ No newline at end of file +Successfully compiled 2 files with Babel. diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-with-import/stderr.txt b/packages/babel-preset-env/test/debug-fixtures/usage-with-import/stderr.txt index 03517b16fbc6..72ca7e1a1f99 100644 --- a/packages/babel-preset-env/test/debug-fixtures/usage-with-import/stderr.txt +++ b/packages/babel-preset-env/test/debug-fixtures/usage-with-import/stderr.txt @@ -1,2 +1,2 @@ - When setting `useBuiltIns: 'usage'`, polyfills are automatically imported when needed. - Please remove the `import '@babel/polyfill'` call or use `useBuiltIns: 'entry'` instead. +When setting `useBuiltIns: 'usage'`, polyfills are automatically imported when needed. + Please remove the `import '@babel/polyfill'` call or use `useBuiltIns: 'entry'` instead. \ No newline at end of file diff --git a/packages/babel-preset-env/test/debug-fixtures/usage-with-import/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/usage-with-import/stdout.txt index f081a8e44a1c..c898cba7907e 100644 --- a/packages/babel-preset-env/test/debug-fixtures/usage-with-import/stdout.txt +++ b/packages/babel-preset-env/test/debug-fixtures/usage-with-import/stdout.txt @@ -5,15 +5,17 @@ Using targets: "chrome": "55" } -Using modules transform: commonjs +Using modules transform: auto Using plugins: transform-dotall-regex { "chrome":"55" } proposal-async-generator-functions { "chrome":"55" } proposal-object-rest-spread { "chrome":"55" } proposal-unicode-property-regex { "chrome":"55" } + proposal-json-strings { "chrome":"55" } + proposal-optional-catch-binding { "chrome":"55" } Using polyfills with `usage` option: [/src/in.js] Based on your code and targets, none were added. -Successfully compiled 1 file with Babel. \ No newline at end of file +Successfully compiled 1 file with Babel. diff --git a/packages/babel-preset-env/test/debug-fixtures/usage/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/usage/stdout.txt index cfda6d7e23cf..b3ecb28095c6 100644 --- a/packages/babel-preset-env/test/debug-fixtures/usage/stdout.txt +++ b/packages/babel-preset-env/test/debug-fixtures/usage/stdout.txt @@ -7,7 +7,7 @@ Using targets: "ie": "11" } -Using modules transform: commonjs +Using modules transform: auto Using plugins: transform-template-literals { "ie":"11" } @@ -35,12 +35,15 @@ Using plugins: proposal-async-generator-functions { "chrome":"52", "firefox":"50", "ie":"11" } proposal-object-rest-spread { "chrome":"52", "firefox":"50", "ie":"11" } proposal-unicode-property-regex { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-json-strings { "chrome":"52", "firefox":"50", "ie":"11" } + proposal-optional-catch-binding { "chrome":"52", "firefox":"50", "ie":"11" } Using polyfills with `usage` option: [/src/in.js] Added following polyfills: es6.promise { "ie":"11" } es6.map { "firefox":"50", "ie":"11" } + es6.string.iterator { "ie":"11" } es6.array.iterator { "ie":"11" } web.dom.iterable { "chrome":"52", "firefox":"50", "ie":"11" } diff --git a/packages/babel-preset-env/test/debug-fixtures/versions-decimals/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/versions-decimals/stdout.txt index 73d1851f3286..35cba07b44bc 100644 --- a/packages/babel-preset-env/test/debug-fixtures/versions-decimals/stdout.txt +++ b/packages/babel-preset-env/test/debug-fixtures/versions-decimals/stdout.txt @@ -16,7 +16,7 @@ Using targets: "node": "6.1" } -Using modules transform: commonjs +Using modules transform: auto Using plugins: transform-template-literals { "ie":"10" } @@ -45,6 +45,8 @@ Using plugins: proposal-async-generator-functions { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } proposal-object-rest-spread { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } proposal-unicode-property-regex { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } + proposal-json-strings { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } + proposal-optional-catch-binding { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } Using polyfills with `entry` option: @@ -165,7 +167,7 @@ Using polyfills with `entry` option: es6.string.from-code-point { "ie":"10" } es6.string.includes { "ie":"10" } es6.string.italics { "electron":"0.36", "ie":"10" } - es6.string.iterator { "electron":"0.36" } + es6.string.iterator { "ie":"10" } es6.string.link { "electron":"0.36", "ie":"10" } es7.string.pad-start { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } es7.string.pad-end { "chrome":"54", "electron":"0.36", "ie":"10", "node":"6.1" } diff --git a/packages/babel-preset-env/test/debug-fixtures/versions-strings/stdout.txt b/packages/babel-preset-env/test/debug-fixtures/versions-strings/stdout.txt index dba1eb217230..fa70be96c6a2 100644 --- a/packages/babel-preset-env/test/debug-fixtures/versions-strings/stdout.txt +++ b/packages/babel-preset-env/test/debug-fixtures/versions-strings/stdout.txt @@ -7,7 +7,7 @@ Using targets: "node": "6.10" } -Using modules transform: commonjs +Using modules transform: auto Using plugins: transform-template-literals { "ie":"10" } @@ -36,6 +36,8 @@ Using plugins: proposal-async-generator-functions { "chrome":"54", "ie":"10", "node":"6.10" } proposal-object-rest-spread { "chrome":"54", "ie":"10", "node":"6.10" } proposal-unicode-property-regex { "chrome":"54", "ie":"10", "node":"6.10" } + proposal-json-strings { "chrome":"54", "ie":"10", "node":"6.10" } + proposal-optional-catch-binding { "chrome":"54", "ie":"10", "node":"6.10" } Using polyfills with `entry` option: @@ -138,6 +140,7 @@ Using polyfills with `entry` option: es6.string.from-code-point { "ie":"10" } es6.string.includes { "ie":"10" } es6.string.italics { "ie":"10" } + es6.string.iterator { "ie":"10" } es6.string.link { "ie":"10" } es7.string.pad-start { "chrome":"54", "ie":"10", "node":"6.10" } es7.string.pad-end { "chrome":"54", "ie":"10", "node":"6.10" } diff --git a/packages/babel-preset-env/test/fixtures/dom-iterable/symbol-iterator-in/options.json b/packages/babel-preset-env/test/fixtures/dom-iterable/symbol-iterator-in/options.json index fa0e9434e26d..0724294c9bee 100644 --- a/packages/babel-preset-env/test/fixtures/dom-iterable/symbol-iterator-in/options.json +++ b/packages/babel-preset-env/test/fixtures/dom-iterable/symbol-iterator-in/options.json @@ -1,8 +1,11 @@ { "presets": [ - ["../../../../lib", { - "useBuiltIns": "usage", - "modules": false - }] + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "modules": false + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/dom-iterable/symbol-iterator/options.json b/packages/babel-preset-env/test/fixtures/dom-iterable/symbol-iterator/options.json index fa0e9434e26d..0724294c9bee 100644 --- a/packages/babel-preset-env/test/fixtures/dom-iterable/symbol-iterator/options.json +++ b/packages/babel-preset-env/test/fixtures/dom-iterable/symbol-iterator/options.json @@ -1,8 +1,11 @@ { "presets": [ - ["../../../../lib", { - "useBuiltIns": "usage", - "modules": false - }] + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "modules": false + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/dom-iterable/yield-non-star/options.json b/packages/babel-preset-env/test/fixtures/dom-iterable/yield-non-star/options.json index d87fce3e6a93..66d4ffba1a52 100644 --- a/packages/babel-preset-env/test/fixtures/dom-iterable/yield-non-star/options.json +++ b/packages/babel-preset-env/test/fixtures/dom-iterable/yield-non-star/options.json @@ -1,11 +1,14 @@ { "presets": [ - ["../../../../lib", { - "useBuiltIns": "usage", - "targets": { - "chrome": 55 - }, - "modules": false - }] + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "targets": { + "chrome": 55 + }, + "modules": false + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/dom-iterable/yield-star/options.json b/packages/babel-preset-env/test/fixtures/dom-iterable/yield-star/options.json index d87fce3e6a93..66d4ffba1a52 100644 --- a/packages/babel-preset-env/test/fixtures/dom-iterable/yield-star/options.json +++ b/packages/babel-preset-env/test/fixtures/dom-iterable/yield-star/options.json @@ -1,11 +1,14 @@ { "presets": [ - ["../../../../lib", { - "useBuiltIns": "usage", - "targets": { - "chrome": 55 - }, - "modules": false - }] + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "targets": { + "chrome": 55 + }, + "modules": false + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/modules/auto-cjs/input.mjs b/packages/babel-preset-env/test/fixtures/modules/auto-cjs/input.mjs new file mode 100644 index 000000000000..e5a2b28c2fd3 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/modules/auto-cjs/input.mjs @@ -0,0 +1,2 @@ +import mod from "mod"; +console.log(mod); diff --git a/packages/babel-preset-env/test/fixtures/modules/auto-cjs/options.json b/packages/babel-preset-env/test/fixtures/modules/auto-cjs/options.json new file mode 100644 index 000000000000..f336d939f3cf --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/modules/auto-cjs/options.json @@ -0,0 +1,7 @@ +{ + "caller": { + "name": "test-fixture", + "supportsStaticESM": false + }, + "presets": ["env"] +} diff --git a/packages/babel-preset-env/test/fixtures/modules/auto-cjs/output.js b/packages/babel-preset-env/test/fixtures/modules/auto-cjs/output.js new file mode 100644 index 000000000000..d79cb698b5b8 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/modules/auto-cjs/output.js @@ -0,0 +1,7 @@ +"use strict"; + +var _mod = _interopRequireDefault(require("mod")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +console.log(_mod.default); diff --git a/packages/babel-preset-env/test/fixtures/modules/auto-esm/input.mjs b/packages/babel-preset-env/test/fixtures/modules/auto-esm/input.mjs new file mode 100644 index 000000000000..e5a2b28c2fd3 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/modules/auto-esm/input.mjs @@ -0,0 +1,2 @@ +import mod from "mod"; +console.log(mod); diff --git a/packages/babel-preset-env/test/fixtures/modules/auto-esm/options.json b/packages/babel-preset-env/test/fixtures/modules/auto-esm/options.json new file mode 100644 index 000000000000..c4294fee0e57 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/modules/auto-esm/options.json @@ -0,0 +1,7 @@ +{ + "caller": { + "name": "test-fixture", + "supportsStaticESM": true + }, + "presets": ["env"] +} diff --git a/packages/babel-preset-env/test/fixtures/modules/auto-esm/output.mjs b/packages/babel-preset-env/test/fixtures/modules/auto-esm/output.mjs new file mode 100644 index 000000000000..e5a2b28c2fd3 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/modules/auto-esm/output.mjs @@ -0,0 +1,2 @@ +import mod from "mod"; +console.log(mod); diff --git a/packages/babel-preset-env/test/fixtures/modules/auto-unknown/input.mjs b/packages/babel-preset-env/test/fixtures/modules/auto-unknown/input.mjs new file mode 100644 index 000000000000..e5a2b28c2fd3 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/modules/auto-unknown/input.mjs @@ -0,0 +1,2 @@ +import mod from "mod"; +console.log(mod); diff --git a/packages/babel-preset-env/test/fixtures/modules/auto-unknown/options.json b/packages/babel-preset-env/test/fixtures/modules/auto-unknown/options.json new file mode 100644 index 000000000000..002b4aa0d58e --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/modules/auto-unknown/options.json @@ -0,0 +1,3 @@ +{ + "presets": ["env"] +} diff --git a/packages/babel-preset-env/test/fixtures/modules/auto-unknown/output.js b/packages/babel-preset-env/test/fixtures/modules/auto-unknown/output.js new file mode 100644 index 000000000000..d79cb698b5b8 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/modules/auto-unknown/output.js @@ -0,0 +1,7 @@ +"use strict"; + +var _mod = _interopRequireDefault(require("mod")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +console.log(_mod.default); diff --git a/packages/babel-preset-env/test/fixtures/plugin-options/filters-duplicates/options.json b/packages/babel-preset-env/test/fixtures/plugin-options/filters-duplicates/options.json index f8b18da61852..de03c1982f7b 100644 --- a/packages/babel-preset-env/test/fixtures/plugin-options/filters-duplicates/options.json +++ b/packages/babel-preset-env/test/fixtures/plugin-options/filters-duplicates/options.json @@ -1,11 +1,14 @@ { "plugins": [ - ["../../../../lib/use-built-ins-entry-plugin", { - "polyfills": [ - "es6.typed.data-view", - "es6.typed.data-view", - "es6.reflect.apply" - ] - }] + [ + "../../../../lib/use-built-ins-entry-plugin", + { + "polyfills": [ + "es6.typed.data-view", + "es6.typed.data-view", + "es6.reflect.apply" + ] + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/plugin-options/regenerator-false/options.json b/packages/babel-preset-env/test/fixtures/plugin-options/regenerator-false/options.json index e46957a874f6..122e5e85dd14 100644 --- a/packages/babel-preset-env/test/fixtures/plugin-options/regenerator-false/options.json +++ b/packages/babel-preset-env/test/fixtures/plugin-options/regenerator-false/options.json @@ -1,8 +1,11 @@ { "plugins": [ - ["../../../../lib/use-built-ins-entry-plugin", { - "regenerator": false, - "polyfills": [] - }] + [ + "../../../../lib/use-built-ins-entry-plugin", + { + "regenerator": false, + "polyfills": [] + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/plugin-options/regenerator-true/options.json b/packages/babel-preset-env/test/fixtures/plugin-options/regenerator-true/options.json index e274811992b4..f68b3a1f0efc 100644 --- a/packages/babel-preset-env/test/fixtures/plugin-options/regenerator-true/options.json +++ b/packages/babel-preset-env/test/fixtures/plugin-options/regenerator-true/options.json @@ -1,8 +1,11 @@ { "plugins": [ - ["../../../../lib/use-built-ins-entry-plugin", { - "regenerator": true, - "polyfills": [] - }] + [ + "../../../../lib/use-built-ins-entry-plugin", + { + "regenerator": true, + "polyfills": [] + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/plugins-integration/issue-7527/options.json b/packages/babel-preset-env/test/fixtures/plugins-integration/issue-7527/options.json index 5506781ec8a9..26bf537b2805 100644 --- a/packages/babel-preset-env/test/fixtures/plugins-integration/issue-7527/options.json +++ b/packages/babel-preset-env/test/fixtures/plugins-integration/issue-7527/options.json @@ -1,4 +1,4 @@ { "plugins": [], "presets": ["../../../../lib"] -} \ No newline at end of file +} diff --git a/packages/babel-preset-env/test/fixtures/plugins-integration/issue-7527/output.js b/packages/babel-preset-env/test/fixtures/plugins-integration/issue-7527/output.js index fff577465ce6..d0111f1a27ab 100644 --- a/packages/babel-preset-env/test/fixtures/plugins-integration/issue-7527/output.js +++ b/packages/babel-preset-env/test/fixtures/plugins-integration/issue-7527/output.js @@ -10,12 +10,14 @@ function _assertThisInitialized(self) { if (self === void 0) { throw new Referen function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null) return null; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); } +function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); } function isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } function _construct(Parent, args, Class) { if (isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); } +function _isNativeFunction(fn) { return Function.toString.call(fn).indexOf("[native code]") !== -1; } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/browserslist-config-ignore-with-false/browserslist b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/browserslist-config-ignore/browserslist similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/browserslist-config-ignore-with-false/browserslist rename to packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/browserslist-config-ignore/browserslist diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/browserslist-config-ignore/input.mjs b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/browserslist-config-ignore/input.mjs new file mode 100644 index 000000000000..f9e8d5a95638 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/browserslist-config-ignore/input.mjs @@ -0,0 +1 @@ +const a = new Map(); diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/browserslist-config-ignore/options.json b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/browserslist-config-ignore/options.json new file mode 100644 index 000000000000..39282366760a --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/browserslist-config-ignore/options.json @@ -0,0 +1,14 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "configPath": "../fixtures/preset-options-add-used-built-ins/browserslist-config-ignore", + "modules": false, + "targets": { "esmodules": true }, + "useBuiltIns": "usage", + "debug": true + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/browserslist-config-ignore/output.mjs b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/browserslist-config-ignore/output.mjs new file mode 100644 index 000000000000..ecbade1e6b58 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/browserslist-config-ignore/output.mjs @@ -0,0 +1,2 @@ +import "core-js/modules/web.dom.iterable"; +const a = new Map(); diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-false/options.json b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-false/options.json index 33eed3635392..d7fc8663bd78 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-false/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-false/options.json @@ -1,8 +1,11 @@ { "presets": [ - ["../../../../lib", { - "useBuiltIns": false, - "modules": false - }] + [ + "../../../../lib", + { + "useBuiltIns": false, + "modules": false + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-evaluated-class-methods/options.json b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-evaluated-class-methods/options.json index fa0e9434e26d..0724294c9bee 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-evaluated-class-methods/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-evaluated-class-methods/options.json @@ -1,8 +1,11 @@ { "presets": [ - ["../../../../lib", { - "useBuiltIns": "usage", - "modules": false - }] + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "modules": false + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-evaluated-instance-methods/options.json b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-evaluated-instance-methods/options.json index fa0e9434e26d..0724294c9bee 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-evaluated-instance-methods/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-evaluated-instance-methods/options.json @@ -1,8 +1,11 @@ { "presets": [ - ["../../../../lib", { - "useBuiltIns": "usage", - "modules": false - }] + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "modules": false + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-instance-methods-native-support/options.json b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-instance-methods-native-support/options.json index e41e024eb2b7..b1891c2b584f 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-instance-methods-native-support/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-instance-methods-native-support/options.json @@ -1,11 +1,14 @@ { "presets": [ - ["../../../../lib", { - "useBuiltIns": "usage", - "modules": false, - "targets": { - "chrome": 58 + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "modules": false, + "targets": { + "chrome": 58 + } } - }] + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-instance-methods/options.json b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-instance-methods/options.json index fa0e9434e26d..0724294c9bee 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-instance-methods/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-instance-methods/options.json @@ -1,8 +1,11 @@ { "presets": [ - ["../../../../lib", { - "useBuiltIns": "usage", - "modules": false - }] + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "modules": false + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-native-support/options.json b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-native-support/options.json index e41e024eb2b7..b1891c2b584f 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-native-support/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used-native-support/options.json @@ -1,11 +1,14 @@ { "presets": [ - ["../../../../lib", { - "useBuiltIns": "usage", - "modules": false, - "targets": { - "chrome": 58 + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "modules": false, + "targets": { + "chrome": 58 + } } - }] + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used/options.json b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used/options.json index fa0e9434e26d..0724294c9bee 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/builtins-used/options.json @@ -1,8 +1,11 @@ { "presets": [ - ["../../../../lib", { - "useBuiltIns": "usage", - "modules": false - }] + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "modules": false + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/for-of-destructure-with/options.json b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/for-of-destructure-with/options.json index e73fe7b3bba6..c7849884df3f 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/for-of-destructure-with/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/for-of-destructure-with/options.json @@ -1,11 +1,14 @@ { "presets": [ - ["../../../../lib", { - "targets": { - "node": "7" - }, - "useBuiltIns": "usage", - "modules": false - }] + [ + "../../../../lib", + { + "targets": { + "node": "7" + }, + "useBuiltIns": "usage", + "modules": false + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/for-of-destructure-without/options.json b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/for-of-destructure-without/options.json index 5fa73d0603ff..895761e20beb 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/for-of-destructure-without/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/for-of-destructure-without/options.json @@ -1,11 +1,14 @@ { "presets": [ - ["../../../../lib", { - "targets": { - "node": "8" - }, - "useBuiltIns": "usage", - "modules": false - }] + [ + "../../../../lib", + { + "targets": { + "node": "8" + }, + "useBuiltIns": "usage", + "modules": false + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/no-builtins-used/options.json b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/no-builtins-used/options.json index fa0e9434e26d..0724294c9bee 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/no-builtins-used/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/no-builtins-used/options.json @@ -1,8 +1,11 @@ { "presets": [ - ["../../../../lib", { - "useBuiltIns": "usage", - "modules": false - }] + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "modules": false + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-all/output.mjs b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-all/output.mjs index 8cbb78b643ca..2a50ee751f7d 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-all/output.mjs +++ b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-all/output.mjs @@ -1,5 +1,6 @@ import "core-js/modules/web.dom.iterable"; import "core-js/modules/es6.array.iterator"; +import "core-js/modules/es6.string.iterator"; import "core-js/modules/es6.promise"; var p = Promise.resolve(0); Promise.all([p]).then(function (outcome) { diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-finally/input.mjs b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-finally/input.mjs new file mode 100644 index 000000000000..bb634febe9b9 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-finally/input.mjs @@ -0,0 +1,4 @@ +var p = Promise.resolve(0); +p.finally(() => { + alert("OK"); +}); diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-finally/options.json b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-finally/options.json new file mode 100644 index 000000000000..eeb3ed89dd1f --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-finally/options.json @@ -0,0 +1,14 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "browsers": ["ie > 10"] + }, + "useBuiltIns": "usage", + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-finally/output.mjs b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-finally/output.mjs new file mode 100644 index 000000000000..966401f6c67f --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-finally/output.mjs @@ -0,0 +1,6 @@ +import "core-js/modules/es7.promise.finally"; +import "core-js/modules/es6.promise"; +var p = Promise.resolve(0); +p.finally(function () { + alert("OK"); +}); diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-race/output.mjs b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-race/output.mjs index cd121f34f7ac..099125598ebe 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-race/output.mjs +++ b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-race/output.mjs @@ -1,5 +1,6 @@ import "core-js/modules/web.dom.iterable"; import "core-js/modules/es6.array.iterator"; +import "core-js/modules/es6.string.iterator"; import "core-js/modules/es6.promise"; var p = Promise.resolve(0); Promise.race([p]).then(function (outcome) { diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-async-native-support/options.json b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-async-native-support/options.json index 241b880ce4b2..708d581db624 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-async-native-support/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-async-native-support/options.json @@ -1,11 +1,14 @@ { "presets": [ - ["../../../../lib", { - "useBuiltIns": "usage", - "modules": false, - "targets": { - "chrome": 55 + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "modules": false, + "targets": { + "chrome": 55 + } } - }] + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-async/options.json b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-async/options.json index fa0e9434e26d..0724294c9bee 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-async/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-async/options.json @@ -1,8 +1,11 @@ { "presets": [ - ["../../../../lib", { - "useBuiltIns": "usage", - "modules": false - }] + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "modules": false + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-generator-native-support/options.json b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-generator-native-support/options.json index ec40d7f0000f..455a456415fa 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-generator-native-support/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-generator-native-support/options.json @@ -1,11 +1,14 @@ { "presets": [ - ["../../../../lib", { - "useBuiltIns": "usage", - "modules": false, - "targets": { - "node": 6 + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "modules": false, + "targets": { + "node": 6 + } } - }] + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-generator/options.json b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-generator/options.json index fa0e9434e26d..0724294c9bee 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-generator/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/regenerator-used-generator/options.json @@ -1,8 +1,11 @@ { "presets": [ - ["../../../../lib", { - "useBuiltIns": "usage", - "modules": false - }] + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "modules": false + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/remove-babel-polyfill-import/options.json b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/remove-babel-polyfill-import/options.json index fa0e9434e26d..0724294c9bee 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/remove-babel-polyfill-import/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/remove-babel-polyfill-import/options.json @@ -1,8 +1,11 @@ { "presets": [ - ["../../../../lib", { - "useBuiltIns": "usage", - "modules": false - }] + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "modules": false + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/source-type-script-query/input.js b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/source-type-script-query/input.js new file mode 100644 index 000000000000..39f9e5858b8c --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/source-type-script-query/input.js @@ -0,0 +1,8 @@ +require("foo"); + +const x = new Promise(resolve => { + const p = []; + + if (p.includes("a")) { + } +}); diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/source-type-script-query/options.json b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/source-type-script-query/options.json new file mode 100644 index 000000000000..b9f676d13128 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/source-type-script-query/options.json @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "modules": false, + "targets": { + "node": "4.0.0" + }, + "useBuiltIns": "usage", + "shippedProposals": true + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/source-type-script-query/output.js b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/source-type-script-query/output.js new file mode 100644 index 000000000000..d98c7e41c6af --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/source-type-script-query/output.js @@ -0,0 +1,11 @@ +require("core-js/modules/es7.array.includes"); + +require("core-js/modules/es6.promise"); + +require("foo"); + +var x = new Promise(function (resolve) { + var p = []; + + if (p.includes("a")) {} +}); diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/source-type-script/options.json b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/source-type-script/options.json index a92e3abd7a6c..b9f676d13128 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/source-type-script/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/source-type-script/options.json @@ -1,12 +1,15 @@ { "presets": [ - ["../../../../lib", { - "modules": false, - "targets": { - "node": "4.0.0" - }, - "useBuiltIns": "usage", - "shippedProposals": true - }] + [ + "../../../../lib", + { + "modules": false, + "targets": { + "node": "4.0.0" + }, + "useBuiltIns": "usage", + "shippedProposals": true + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/test-modules-transform/options.json b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/test-modules-transform/options.json index 18d3b5de7ffb..ebc91c6d0fa8 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/test-modules-transform/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/test-modules-transform/options.json @@ -1,7 +1,10 @@ { "presets": [ - ["../../../../lib", { - "useBuiltIns": "usage" - }] + [ + "../../../../lib", + { + "useBuiltIns": "usage" + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/.use-builtins-all-exec/options.json b/packages/babel-preset-env/test/fixtures/preset-options/.use-builtins-all-exec/options.json index 18d3b5de7ffb..ebc91c6d0fa8 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/.use-builtins-all-exec/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/.use-builtins-all-exec/options.json @@ -1,7 +1,10 @@ { "presets": [ - ["../../../../lib", { - "useBuiltIns": "usage" - }] + [ + "../../../../lib", + { + "useBuiltIns": "usage" + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/browserslist-config-ignore-config-with-false/browserslist b/packages/babel-preset-env/test/fixtures/preset-options/browserslist-config-ignore-config-with-false/browserslist new file mode 100644 index 000000000000..d0ae78fe6a24 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/preset-options/browserslist-config-ignore-config-with-false/browserslist @@ -0,0 +1 @@ +chrome 55 diff --git a/packages/babel-preset-env/test/fixtures/preset-options/browserslist-config-ignore-with-false/input.mjs b/packages/babel-preset-env/test/fixtures/preset-options/browserslist-config-ignore-config-with-false/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/browserslist-config-ignore-with-false/input.mjs rename to packages/babel-preset-env/test/fixtures/preset-options/browserslist-config-ignore-config-with-false/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options/browserslist-config-ignore-config-with-false/options.json b/packages/babel-preset-env/test/fixtures/preset-options/browserslist-config-ignore-config-with-false/options.json new file mode 100644 index 000000000000..e5b755470d66 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/preset-options/browserslist-config-ignore-config-with-false/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "configPath": "../fixtures/preset-options/browserslist-config-ignore-with-false", + "modules": false, + "ignoreBrowserslistConfig": true + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/preset-options/browserslist-config-ignore-with-false/output.mjs b/packages/babel-preset-env/test/fixtures/preset-options/browserslist-config-ignore-config-with-false/output.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/browserslist-config-ignore-with-false/output.mjs rename to packages/babel-preset-env/test/fixtures/preset-options/browserslist-config-ignore-config-with-false/output.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options/browserslist-package-ignore-with-array/input.mjs b/packages/babel-preset-env/test/fixtures/preset-options/browserslist-config-ignore-package-with-false/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/browserslist-package-ignore-with-array/input.mjs rename to packages/babel-preset-env/test/fixtures/preset-options/browserslist-config-ignore-package-with-false/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options/browserslist-config-ignore-package-with-false/options.json b/packages/babel-preset-env/test/fixtures/preset-options/browserslist-config-ignore-package-with-false/options.json new file mode 100644 index 000000000000..e5b755470d66 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/preset-options/browserslist-config-ignore-package-with-false/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "configPath": "../fixtures/preset-options/browserslist-config-ignore-with-false", + "modules": false, + "ignoreBrowserslistConfig": true + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/preset-options/browserslist-config-ignore-package-with-false/output.mjs b/packages/babel-preset-env/test/fixtures/preset-options/browserslist-config-ignore-package-with-false/output.mjs new file mode 100644 index 000000000000..f688910ec093 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/preset-options/browserslist-config-ignore-package-with-false/output.mjs @@ -0,0 +1 @@ +var a = 1; diff --git a/packages/babel-preset-env/test/fixtures/preset-options/browserslist-config-ignore-package-with-false/package.json b/packages/babel-preset-env/test/fixtures/preset-options/browserslist-config-ignore-package-with-false/package.json new file mode 100644 index 000000000000..5862d682701a --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/preset-options/browserslist-config-ignore-package-with-false/package.json @@ -0,0 +1,3 @@ +{ + "browserslist": "last 1 chrome version" +} diff --git a/packages/babel-preset-env/test/fixtures/preset-options/browserslist-config-ignore-with-false/options.json b/packages/babel-preset-env/test/fixtures/preset-options/browserslist-config-ignore-with-false/options.json deleted file mode 100644 index d575e094d67e..000000000000 --- a/packages/babel-preset-env/test/fixtures/preset-options/browserslist-config-ignore-with-false/options.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "presets": [ - ["../../../../lib", { - "configPath": "../fixtures/preset-options/browserslist-config-ignore-with-false", - "modules": false, - "ignoreBrowserslistConfig": true - }] - ] -} diff --git a/packages/babel-preset-env/test/fixtures/preset-options/browserslist-config/options.json b/packages/babel-preset-env/test/fixtures/preset-options/browserslist-config/options.json index 1545c51ee962..7fa5af3baafb 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/browserslist-config/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/browserslist-config/options.json @@ -1,8 +1,11 @@ { "presets": [ - ["../../../../lib", { - "configPath": "packages/babel-preset-env/test/fixtures/preset-options/browserslist-config", - "modules": false - }] + [ + "../../../../lib", + { + "configPath": "packages/babel-preset-env/test/fixtures/preset-options/browserslist-config", + "modules": false + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/browserslist-package-ignore-with-array/options.json b/packages/babel-preset-env/test/fixtures/preset-options/browserslist-package-ignore-with-array/options.json deleted file mode 100644 index 4d3b8a30f1a4..000000000000 --- a/packages/babel-preset-env/test/fixtures/preset-options/browserslist-package-ignore-with-array/options.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "presets": [ - ["../../../../lib", { - "configPath": "../fixtures/preset-options/browserslist-package-ignore-with-array", - "targets": { - "chrome": 55, - "browsers": [] - }, - "modules": false - }] - ] -} diff --git a/packages/babel-preset-env/test/fixtures/preset-options/browserslist-package-ignore-with-array/package.json b/packages/babel-preset-env/test/fixtures/preset-options/browserslist-package-ignore-with-array/package.json deleted file mode 100644 index 409d45c7fc65..000000000000 --- a/packages/babel-preset-env/test/fixtures/preset-options/browserslist-package-ignore-with-array/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "browserslist": "> 2%" -} diff --git a/packages/babel-preset-env/test/fixtures/preset-options/browserslist-package-ignore-with-array/output.mjs b/packages/babel-preset-env/test/fixtures/preset-options/browserslist-package-ignore-with-targets/input.mjs similarity index 100% rename from packages/babel-preset-env/test/fixtures/preset-options/browserslist-package-ignore-with-array/output.mjs rename to packages/babel-preset-env/test/fixtures/preset-options/browserslist-package-ignore-with-targets/input.mjs diff --git a/packages/babel-preset-env/test/fixtures/preset-options/browserslist-package-ignore-with-targets/options.json b/packages/babel-preset-env/test/fixtures/preset-options/browserslist-package-ignore-with-targets/options.json new file mode 100644 index 000000000000..edb525659be2 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/preset-options/browserslist-package-ignore-with-targets/options.json @@ -0,0 +1,14 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "configPath": "../fixtures/preset-options/browserslist-package-ignore-with-array", + "targets": { + "chrome": 55 + }, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/preset-options/browserslist-package-ignore-with-targets/output.mjs b/packages/babel-preset-env/test/fixtures/preset-options/browserslist-package-ignore-with-targets/output.mjs new file mode 100644 index 000000000000..54b82a09ad54 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/preset-options/browserslist-package-ignore-with-targets/output.mjs @@ -0,0 +1 @@ +const a = 1; diff --git a/packages/babel-preset-env/test/fixtures/preset-options/browserslist-package-ignore-with-targets/package.json b/packages/babel-preset-env/test/fixtures/preset-options/browserslist-package-ignore-with-targets/package.json new file mode 100644 index 000000000000..321ba17e8795 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/preset-options/browserslist-package-ignore-with-targets/package.json @@ -0,0 +1,3 @@ +{ + "browserslist": "last 1 ie version" +} diff --git a/packages/babel-preset-env/test/fixtures/preset-options/browserslist-package/options.json b/packages/babel-preset-env/test/fixtures/preset-options/browserslist-package/options.json index c10fd049d797..79c5b70108b0 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/browserslist-package/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/browserslist-package/options.json @@ -1,11 +1,11 @@ { "presets": [ - ["../../../../lib", { - "configPath": "packages/babel-preset-env/test/fixtures/preset-options/browserslist-package", - "targets": { - "chrome": 55 - }, - "modules": false - }] + [ + "../../../../lib", + { + "configPath": "packages/babel-preset-env/test/fixtures/preset-options/browserslist-package", + "modules": false + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/browserslist-package/output.mjs b/packages/babel-preset-env/test/fixtures/preset-options/browserslist-package/output.mjs index f688910ec093..54b82a09ad54 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/browserslist-package/output.mjs +++ b/packages/babel-preset-env/test/fixtures/preset-options/browserslist-package/output.mjs @@ -1 +1 @@ -var a = 1; +const a = 1; diff --git a/packages/babel-preset-env/test/fixtures/preset-options/browserslist-package/package.json b/packages/babel-preset-env/test/fixtures/preset-options/browserslist-package/package.json index 409d45c7fc65..5862d682701a 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/browserslist-package/package.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/browserslist-package/package.json @@ -1,3 +1,3 @@ { - "browserslist": "> 2%" + "browserslist": "last 1 chrome version" } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/core-js/options.json b/packages/babel-preset-env/test/fixtures/preset-options/core-js/options.json index 7c15d7db409b..6053ab0e29e1 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/core-js/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/core-js/options.json @@ -1,11 +1,14 @@ { "presets": [ - ["../../../../lib", { - "targets": { - "chrome": 55 - }, - "modules": false, - "useBuiltIns": "entry" - }] + [ + "../../../../lib", + { + "targets": { + "chrome": 55 + }, + "modules": false, + "useBuiltIns": "entry" + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/electron/options.json b/packages/babel-preset-env/test/fixtures/preset-options/electron/options.json index 2e2bef018a23..0ebb7522209b 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/electron/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/electron/options.json @@ -1,11 +1,14 @@ { "presets": [ - ["../../../../lib", { - "targets": { - "electron": "1.4" - }, - "modules": false, - "useBuiltIns": "entry" - }] + [ + "../../../../lib", + { + "targets": { + "electron": "1.4" + }, + "modules": false, + "useBuiltIns": "entry" + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/empty-options/options.json b/packages/babel-preset-env/test/fixtures/preset-options/empty-options/options.json index df639ff3c21c..e58d22819344 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/empty-options/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/empty-options/options.json @@ -1,5 +1,3 @@ { - "presets": [ - ["../../../../lib", {}] - ] + "presets": [["../../../../lib", {}]] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/exclude-built-ins/options.json b/packages/babel-preset-env/test/fixtures/preset-options/exclude-built-ins/options.json index 87ca44b84dc4..368eff47d48d 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/exclude-built-ins/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/exclude-built-ins/options.json @@ -1,18 +1,21 @@ { "presets": [ - ["../../../../lib", { - "targets": { - "chrome": 63 - }, - "modules": false, - "useBuiltIns": "entry", - "exclude": [ - "es7.string.pad-start", - "es7.string.pad-end", - "web.timers", - "web.immediate", - "web.dom.iterable" - ] - }] + [ + "../../../../lib", + { + "targets": { + "chrome": 63 + }, + "modules": false, + "useBuiltIns": "entry", + "exclude": [ + "es7.string.pad-start", + "es7.string.pad-end", + "web.timers", + "web.immediate", + "web.dom.iterable" + ] + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/exclude-include/options.json b/packages/babel-preset-env/test/fixtures/preset-options/exclude-include/options.json index bf1f5a86c9c7..5835e72a3694 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/exclude-include/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/exclude-include/options.json @@ -1,20 +1,20 @@ { "presets": [ - ["../../../../lib", { - "targets": { - "chrome": 55 - }, - "modules": false, - "useBuiltIns": "entry", - "exclude": [ - "transform-async-to-generator", - "transform-regenerator", - "es7.string.pad-start" - ], - "include": [ - "transform-arrow-functions", - "es6.map" - ] - }] + [ + "../../../../lib", + { + "targets": { + "chrome": 55 + }, + "modules": false, + "useBuiltIns": "entry", + "exclude": [ + "transform-async-to-generator", + "transform-regenerator", + "es7.string.pad-start" + ], + "include": ["transform-arrow-functions", "es6.map"] + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/exclude-regenerator/options.json b/packages/babel-preset-env/test/fixtures/preset-options/exclude-regenerator/options.json index 514d13251d65..7e047ae37cc1 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/exclude-regenerator/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/exclude-regenerator/options.json @@ -1,9 +1,12 @@ { "presets": [ - ["../../../../lib", { - "modules": false, - "useBuiltIns": "entry", - "exclude": ["transform-regenerator"] - }] + [ + "../../../../lib", + { + "modules": false, + "useBuiltIns": "entry", + "exclude": ["transform-regenerator"] + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/exclude/options.json b/packages/babel-preset-env/test/fixtures/preset-options/exclude/options.json index 7c6d3bfb0e8f..ffe95aded8ad 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/exclude/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/exclude/options.json @@ -1,12 +1,12 @@ { "presets": [ - ["../../../../lib", { - "modules": false, - "useBuiltIns": "usage", - "exclude": [ - "transform-async-to-generator", - "transform-regenerator" - ] - }] + [ + "../../../../lib", + { + "modules": false, + "useBuiltIns": "usage", + "exclude": ["transform-async-to-generator", "transform-regenerator"] + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/force-all-transforms/options.json b/packages/babel-preset-env/test/fixtures/preset-options/force-all-transforms/options.json index 60a4f26eaa14..bbb2830a6bc5 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/force-all-transforms/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/force-all-transforms/options.json @@ -1,12 +1,15 @@ { "presets": [ - ["../../../../lib", { - "targets": { - "chrome": 55 - }, - "modules": false, - "useBuiltIns": "entry", - "forceAllTransforms": true - }] + [ + "../../../../lib", + { + "targets": { + "chrome": 55 + }, + "modules": false, + "useBuiltIns": "entry", + "forceAllTransforms": true + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/ie-11-built-ins/options.json b/packages/babel-preset-env/test/fixtures/preset-options/ie-11-built-ins/options.json index cebe1cb0d4a5..be71dc8e1115 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/ie-11-built-ins/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/ie-11-built-ins/options.json @@ -1,12 +1,15 @@ { "presets": [ - ["../../../../lib", { - "targets": { - "ie": 11 - }, - "modules": false, - "useBuiltIns": "entry", - "modules": false - }] + [ + "../../../../lib", + { + "targets": { + "ie": 11 + }, + "modules": false, + "useBuiltIns": "entry", + "modules": false + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/ie-11-built-ins/output.mjs b/packages/babel-preset-env/test/fixtures/preset-options/ie-11-built-ins/output.mjs index 1bfd7e33457a..8ace0aa1e2e8 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/ie-11-built-ins/output.mjs +++ b/packages/babel-preset-env/test/fixtures/preset-options/ie-11-built-ins/output.mjs @@ -94,6 +94,7 @@ import "core-js/modules/es6.string.fontsize"; import "core-js/modules/es6.string.from-code-point"; import "core-js/modules/es6.string.includes"; import "core-js/modules/es6.string.italics"; +import "core-js/modules/es6.string.iterator"; import "core-js/modules/es6.string.link"; import "core-js/modules/es7.string.pad-start"; import "core-js/modules/es7.string.pad-end"; diff --git a/packages/babel-preset-env/test/fixtures/preset-options/include-built-ins/options.json b/packages/babel-preset-env/test/fixtures/preset-options/include-built-ins/options.json index 74a59214cdc5..efae47165111 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/include-built-ins/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/include-built-ins/options.json @@ -1,15 +1,15 @@ { "presets": [ - ["../../../../lib", { - "targets": { - "chrome": 55 - }, - "include": [ - "es6.map", - "es6.set" - ], - "modules": false, - "useBuiltIns": "entry" - }] + [ + "../../../../lib", + { + "targets": { + "chrome": 55 + }, + "include": ["es6.map", "es6.set"], + "modules": false, + "useBuiltIns": "entry" + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/include/options.json b/packages/babel-preset-env/test/fixtures/preset-options/include/options.json index 4869b71a4cac..615248481bf9 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/include/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/include/options.json @@ -1,11 +1,14 @@ { "presets": [ - ["../../../../lib", { - "targets": { - "chrome": 61 - }, - "include": ["transform-classes"], - "modules": false - }] + [ + "../../../../lib", + { + "targets": { + "chrome": 61 + }, + "include": ["transform-classes"], + "modules": false + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/ios-10/options.json b/packages/babel-preset-env/test/fixtures/preset-options/ios-10/options.json index 25d6c970e1b1..a9d6ca4f1409 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/ios-10/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/ios-10/options.json @@ -1,10 +1,13 @@ { "presets": [ - ["../../../../lib", { - "targets": { - "browsers": ["ios >= 10"] - }, - "modules": false - }] + [ + "../../../../lib", + { + "targets": { + "browsers": ["ios >= 10"] + }, + "modules": false + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/ios-6/options.json b/packages/babel-preset-env/test/fixtures/preset-options/ios-6/options.json index 38d936c33c3f..96778c122b56 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/ios-6/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/ios-6/options.json @@ -1,11 +1,14 @@ { "presets": [ - ["../../../../lib", { - "targets": { - "browsers": ["ios >= 6"] - }, - "modules": false, - "useBuiltIns": "usage" - }] + [ + "../../../../lib", + { + "targets": { + "browsers": ["ios >= 6"] + }, + "modules": false, + "useBuiltIns": "usage" + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/loose-typeof-symbol/options.json b/packages/babel-preset-env/test/fixtures/preset-options/loose-typeof-symbol/options.json index ad6844169549..b3fcaf5a9718 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/loose-typeof-symbol/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/loose-typeof-symbol/options.json @@ -1,7 +1,10 @@ { "presets": [ - ["../../../../lib", { - "loose": true - }] + [ + "../../../../lib", + { + "loose": true + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/loose-with-typeof-symbol-includes/options.json b/packages/babel-preset-env/test/fixtures/preset-options/loose-with-typeof-symbol-includes/options.json index 6a0801273ed6..5831707fa9fa 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/loose-with-typeof-symbol-includes/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/loose-with-typeof-symbol-includes/options.json @@ -1,8 +1,11 @@ { "presets": [ - ["../../../../lib", { - "loose": true, - "include": ["transform-typeof-symbol"] - }] + [ + "../../../../lib", + { + "loose": true, + "include": ["transform-typeof-symbol"] + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/modules-amd-loose/options.json b/packages/babel-preset-env/test/fixtures/preset-options/modules-amd-loose/options.json index 428a076dfbe0..b2a6393687a3 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/modules-amd-loose/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/modules-amd-loose/options.json @@ -1,8 +1,11 @@ { "presets": [ - ["../../../../lib", { - "modules": "amd", - "loose": true - }] + [ + "../../../../lib", + { + "modules": "amd", + "loose": true + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/modules-cjs/options.json b/packages/babel-preset-env/test/fixtures/preset-options/modules-cjs/options.json index e77c22926859..8ae14a642df0 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/modules-cjs/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/modules-cjs/options.json @@ -1,7 +1,10 @@ { "presets": [ - ["../../../../lib", { - "modules": "cjs" - }] + [ + "../../../../lib", + { + "modules": "cjs" + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/modules-commonjs/options.json b/packages/babel-preset-env/test/fixtures/preset-options/modules-commonjs/options.json index fa7dc2fe4c64..7d1f12f2fc98 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/modules-commonjs/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/modules-commonjs/options.json @@ -1,7 +1,10 @@ { "presets": [ - ["../../../../lib", { - "modules": "commonjs" - }] + [ + "../../../../lib", + { + "modules": "commonjs" + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/modules-false/options.json b/packages/babel-preset-env/test/fixtures/preset-options/modules-false/options.json index 1f29c71c1635..8700f8c4d614 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/modules-false/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/modules-false/options.json @@ -1,7 +1,10 @@ { "presets": [ - ["../../../../lib", { - "modules": false - }] + [ + "../../../../lib", + { + "modules": false + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/modules-systemjs/options.json b/packages/babel-preset-env/test/fixtures/preset-options/modules-systemjs/options.json index bf0180f31f05..a441e7b82c6a 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/modules-systemjs/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/modules-systemjs/options.json @@ -1,7 +1,10 @@ { "presets": [ - ["../../../../lib", { - "modules": "systemjs" - }] + [ + "../../../../lib", + { + "modules": "systemjs" + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/modules-umd/options.json b/packages/babel-preset-env/test/fixtures/preset-options/modules-umd/options.json index 2550ff91f1d8..18b39b6fa2e9 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/modules-umd/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/modules-umd/options.json @@ -1,7 +1,10 @@ { "presets": [ - ["../../../../lib", { - "modules": "umd" - }] + [ + "../../../../lib", + { + "modules": "umd" + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/no-options/options.json b/packages/babel-preset-env/test/fixtures/preset-options/no-options/options.json index 84a75e8721ea..e6645e19b687 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/no-options/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/no-options/options.json @@ -1,5 +1,3 @@ { - "presets": [ - "../../../../lib" - ] + "presets": ["../../../../lib"] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/no-transform/options.json b/packages/babel-preset-env/test/fixtures/preset-options/no-transform/options.json index c8b43a8de018..993ea7009f98 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/no-transform/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/no-transform/options.json @@ -1,11 +1,14 @@ { "presets": [ - ["../../../../lib", { - "targets": { - "chrome": "55" - }, - "modules": false, - "useBuiltIns": "usage" - }] + [ + "../../../../lib", + { + "targets": { + "chrome": "55" + }, + "modules": false, + "useBuiltIns": "usage" + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/safari-tp-browsers/options.json b/packages/babel-preset-env/test/fixtures/preset-options/safari-tp-browsers/options.json index 99be2bf1a3a4..1a2ac1b59d72 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/safari-tp-browsers/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/safari-tp-browsers/options.json @@ -1,11 +1,13 @@ { "presets": [ - ["../../../../lib", { - "targets": { - "browsers": "safari tp" - }, - "shippedProposals": true - } - ] + [ + "../../../../lib", + { + "targets": { + "browsers": "safari tp" + }, + "shippedProposals": true + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/safari-tp/options.json b/packages/babel-preset-env/test/fixtures/preset-options/safari-tp/options.json index 03d076914c2b..aa7229719bbe 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/safari-tp/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/safari-tp/options.json @@ -1,10 +1,13 @@ { "presets": [ - ["../../../../lib", { - "targets": { - "safari": "tp" - }, - "shippedProposals": true - }] + [ + "../../../../lib", + { + "targets": { + "safari": "tp" + }, + "shippedProposals": true + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/shippedProposals-use-builtins-entry/options.json b/packages/babel-preset-env/test/fixtures/preset-options/shippedProposals-use-builtins-entry/options.json index 8a799417be05..c5b86606ca84 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/shippedProposals-use-builtins-entry/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/shippedProposals-use-builtins-entry/options.json @@ -1,8 +1,11 @@ { "presets": [ - ["../../../../lib", { - "shippedProposals": true, - "useBuiltIns": "entry" - }] + [ + "../../../../lib", + { + "shippedProposals": true, + "useBuiltIns": "entry" + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/shippedProposals-use-builtins-usage/options.json b/packages/babel-preset-env/test/fixtures/preset-options/shippedProposals-use-builtins-usage/options.json index c67678705d2a..1f13f288b950 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/shippedProposals-use-builtins-usage/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/shippedProposals-use-builtins-usage/options.json @@ -1,9 +1,12 @@ { "sourceType": "module", "presets": [ - ["../../../../lib", { - "shippedProposals": true, - "useBuiltIns": "usage" - }] + [ + "../../../../lib", + { + "shippedProposals": true, + "useBuiltIns": "usage" + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/shippedProposals/options.json b/packages/babel-preset-env/test/fixtures/preset-options/shippedProposals/options.json index 897e16fb7cc1..0b8df7344432 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/shippedProposals/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/shippedProposals/options.json @@ -1,7 +1,10 @@ { "presets": [ - ["../../../../lib", { - "shippedProposals": true - }] + [ + "../../../../lib", + { + "shippedProposals": true + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/spec/options.json b/packages/babel-preset-env/test/fixtures/preset-options/spec/options.json index 8aefcdc8ed83..7d73fcdc986a 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/spec/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/spec/options.json @@ -1,7 +1,10 @@ { "presets": [ - ["../../../../lib", { - "spec": true - }] + [ + "../../../../lib", + { + "spec": true + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/targets-as-object/input.mjs b/packages/babel-preset-env/test/fixtures/preset-options/targets-as-object/input.mjs new file mode 100644 index 000000000000..54b82a09ad54 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/preset-options/targets-as-object/input.mjs @@ -0,0 +1 @@ +const a = 1; diff --git a/packages/babel-preset-env/test/fixtures/preset-options/targets-as-object/options.json b/packages/babel-preset-env/test/fixtures/preset-options/targets-as-object/options.json new file mode 100644 index 000000000000..7a0a4baf7276 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/preset-options/targets-as-object/options.json @@ -0,0 +1,13 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "chrome": "55" + }, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/preset-options/targets-as-object/output.mjs b/packages/babel-preset-env/test/fixtures/preset-options/targets-as-object/output.mjs new file mode 100644 index 000000000000..54b82a09ad54 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/preset-options/targets-as-object/output.mjs @@ -0,0 +1 @@ +const a = 1; diff --git a/packages/babel-preset-env/test/fixtures/preset-options/targets-as-string/input.mjs b/packages/babel-preset-env/test/fixtures/preset-options/targets-as-string/input.mjs new file mode 100644 index 000000000000..54b82a09ad54 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/preset-options/targets-as-string/input.mjs @@ -0,0 +1 @@ +const a = 1; diff --git a/packages/babel-preset-env/test/fixtures/preset-options/targets-as-string/options.json b/packages/babel-preset-env/test/fixtures/preset-options/targets-as-string/options.json new file mode 100644 index 000000000000..e212d72717af --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/preset-options/targets-as-string/options.json @@ -0,0 +1,11 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": "chrome 55", + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/preset-options/targets-as-string/output.mjs b/packages/babel-preset-env/test/fixtures/preset-options/targets-as-string/output.mjs new file mode 100644 index 000000000000..54b82a09ad54 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/preset-options/targets-as-string/output.mjs @@ -0,0 +1 @@ +const a = 1; diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-all/options.json b/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-all/options.json index 21eec2f1a12a..315805ef816f 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-all/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-all/options.json @@ -1,8 +1,11 @@ { "presets": [ - ["../../../../lib", { - "modules": false, - "useBuiltIns": "entry" - }] + [ + "../../../../lib", + { + "modules": false, + "useBuiltIns": "entry" + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-48/options.json b/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-48/options.json index c975d957a646..24aed40ad17c 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-48/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-48/options.json @@ -1,11 +1,14 @@ { "presets": [ - ["../../../../lib", { - "targets": { - "chrome": 48 - }, - "modules": false, - "useBuiltIns": "entry" - }] + [ + "../../../../lib", + { + "targets": { + "chrome": 48 + }, + "modules": false, + "useBuiltIns": "entry" + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-49/options.json b/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-49/options.json index 0570d4dc431b..c1d306666c14 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-49/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-49/options.json @@ -1,11 +1,14 @@ { "presets": [ - ["../../../../lib", { - "targets": { - "chrome": 49 - }, - "modules": false, - "useBuiltIns": "entry" - }] + [ + "../../../../lib", + { + "targets": { + "chrome": 49 + }, + "modules": false, + "useBuiltIns": "entry" + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-66/options.json b/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-66/options.json index 11ae07972e07..70efcddddcb3 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-66/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chrome-66/options.json @@ -1,11 +1,14 @@ { "presets": [ - ["../../../../lib", { - "targets": { - "chrome": "66" - }, - "modules": false, - "useBuiltIns": "entry" - }] + [ + "../../../../lib", + { + "targets": { + "chrome": "66" + }, + "modules": false, + "useBuiltIns": "entry" + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chromeandroid/options.json b/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chromeandroid/options.json index 9a973f7d8f00..463fc50978aa 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chromeandroid/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-chromeandroid/options.json @@ -1,11 +1,14 @@ { "presets": [ - ["../../../../lib", { - "targets": { - "browsers": "chromeandroid 59" - }, - "modules": false, - "useBuiltIns": "entry" - }] + [ + "../../../../lib", + { + "targets": { + "browsers": "chromeandroid 59" + }, + "modules": false, + "useBuiltIns": "entry" + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-ie-9/options.json b/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-ie-9/options.json index 9f6cf02b9a74..cb0e9069ff6f 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-ie-9/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-ie-9/options.json @@ -1,12 +1,15 @@ { "presets": [ - ["../../../../lib", { - "targets": { - "ie": 9 - }, - "modules": false, - "useBuiltIns": "entry", - "modules": false - }] + [ + "../../../../lib", + { + "targets": { + "ie": 9 + }, + "modules": false, + "useBuiltIns": "entry", + "modules": false + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-ie-9/output.mjs b/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-ie-9/output.mjs index d7da81c92861..a0f5cab60787 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-ie-9/output.mjs +++ b/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-ie-9/output.mjs @@ -96,6 +96,7 @@ import "core-js/modules/es6.string.fontsize"; import "core-js/modules/es6.string.from-code-point"; import "core-js/modules/es6.string.includes"; import "core-js/modules/es6.string.italics"; +import "core-js/modules/es6.string.iterator"; import "core-js/modules/es6.string.link"; import "core-js/modules/es7.string.pad-start"; import "core-js/modules/es7.string.pad-end"; diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-import/options.json b/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-import/options.json index 7c15d7db409b..6053ab0e29e1 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-import/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-import/options.json @@ -1,11 +1,14 @@ { "presets": [ - ["../../../../lib", { - "targets": { - "chrome": 55 - }, - "modules": false, - "useBuiltIns": "entry" - }] + [ + "../../../../lib", + { + "targets": { + "chrome": 55 + }, + "modules": false, + "useBuiltIns": "entry" + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-node-web/options.json b/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-node-web/options.json index 1d3af8c462b7..594b2443f288 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-node-web/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-node-web/options.json @@ -1,13 +1,16 @@ { "presets": [ - ["../../../../lib", { - "targets": { - "chrome": "55", - "node": "7.6" - }, - "modules": false, - "useBuiltIns": "entry", - "forceAllTransforms": true - }] + [ + "../../../../lib", + { + "targets": { + "chrome": "55", + "node": "7.6" + }, + "modules": false, + "useBuiltIns": "entry", + "forceAllTransforms": true + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-node/options.json b/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-node/options.json index 339ba8f3a629..f4e793dddf18 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-node/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-node/options.json @@ -1,12 +1,15 @@ { "presets": [ - ["../../../../lib", { - "targets": { - "node": "7.6" - }, - "modules": false, - "useBuiltIns": "entry", - "forceAllTransforms": true - }] + [ + "../../../../lib", + { + "targets": { + "node": "7.6" + }, + "modules": false, + "useBuiltIns": "entry", + "forceAllTransforms": true + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-require/options.json b/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-require/options.json index a31ebe2f8e19..1e2b3ea2c19e 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-require/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/use-builtins-require/options.json @@ -1,11 +1,14 @@ { "presets": [ - ["../../../../lib", { - "targets": { - "chrome": "55" - }, - "modules": false, - "useBuiltIns": "entry" - }] + [ + "../../../../lib", + { + "targets": { + "chrome": "55" + }, + "modules": false, + "useBuiltIns": "entry" + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/sanity/block-scoping-for-of/options.json b/packages/babel-preset-env/test/fixtures/sanity/block-scoping-for-of/options.json index 1f29c71c1635..8700f8c4d614 100644 --- a/packages/babel-preset-env/test/fixtures/sanity/block-scoping-for-of/options.json +++ b/packages/babel-preset-env/test/fixtures/sanity/block-scoping-for-of/options.json @@ -1,7 +1,10 @@ { "presets": [ - ["../../../../lib", { - "modules": false - }] + [ + "../../../../lib", + { + "modules": false + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/sanity/check-es2015-constants/options.json b/packages/babel-preset-env/test/fixtures/sanity/check-es2015-constants/options.json index 25bb3f6508a5..88523b8c6f31 100644 --- a/packages/babel-preset-env/test/fixtures/sanity/check-es2015-constants/options.json +++ b/packages/babel-preset-env/test/fixtures/sanity/check-es2015-constants/options.json @@ -1,6 +1,4 @@ { - "presets": [ - ["../../../../lib"] - ], + "presets": [["../../../../lib"]], "throws": "\"one\" is read-only" } diff --git a/packages/babel-preset-env/test/fixtures/sanity/regex-dot-all/options.json b/packages/babel-preset-env/test/fixtures/sanity/regex-dot-all/options.json index 1f29c71c1635..8700f8c4d614 100644 --- a/packages/babel-preset-env/test/fixtures/sanity/regex-dot-all/options.json +++ b/packages/babel-preset-env/test/fixtures/sanity/regex-dot-all/options.json @@ -1,7 +1,10 @@ { "presets": [ - ["../../../../lib", { - "modules": false - }] + [ + "../../../../lib", + { + "modules": false + } + ] ] } diff --git a/packages/babel-preset-env/test/fixtures/sanity/transform-duplicate-keys/options.json b/packages/babel-preset-env/test/fixtures/sanity/transform-duplicate-keys/options.json index 1f29c71c1635..8700f8c4d614 100644 --- a/packages/babel-preset-env/test/fixtures/sanity/transform-duplicate-keys/options.json +++ b/packages/babel-preset-env/test/fixtures/sanity/transform-duplicate-keys/options.json @@ -1,7 +1,10 @@ { "presets": [ - ["../../../../lib", { - "modules": false - }] + [ + "../../../../lib", + { + "modules": false + } + ] ] } diff --git a/packages/babel-preset-env/test/normalize-options.spec.js b/packages/babel-preset-env/test/normalize-options.spec.js index abe163e0cfe8..7a0f481f7bf7 100644 --- a/packages/babel-preset-env/test/normalize-options.spec.js +++ b/packages/babel-preset-env/test/normalize-options.spec.js @@ -134,16 +134,20 @@ describe("normalize-options", () => { }); describe("validateModulesOption", () => { - it("`undefined` option returns commonjs", () => { - expect(validateModulesOption()).toBe("commonjs"); + it("`undefined` option returns auto", () => { + expect(validateModulesOption()).toBe("auto"); }); - it("`false` option returns commonjs", () => { + it("`false` option returns false", () => { expect(validateModulesOption(false)).toBe(false); }); + it("auto option is valid", () => { + expect(validateModulesOption("auto")).toBe("auto"); + }); + it("commonjs option is valid", () => { - expect(validateModulesOption()).toBe("commonjs"); + expect(validateModulesOption("commonjs")).toBe("commonjs"); }); it("systemjs option is valid", () => { diff --git a/packages/babel-preset-env/test/targets-parser.spec.js b/packages/babel-preset-env/test/targets-parser.spec.js index e458fe291f30..fe6e2fac314a 100644 --- a/packages/babel-preset-env/test/targets-parser.spec.js +++ b/packages/babel-preset-env/test/targets-parser.spec.js @@ -1,3 +1,4 @@ +import browserslist from "browserslist"; import getTargets from "../lib/targets-parser"; describe("getTargets", () => { @@ -19,6 +20,16 @@ describe("getTargets", () => { }); }); + it("does not clobber browserslists defaults", () => { + const browserslistDefaults = browserslist.defaults; + + getTargets({ + browsers: "chrome 56, ie 11, firefox 51, safari 9", + }); + + expect(browserslist.defaults).toEqual(browserslistDefaults); + }); + describe("validation", () => { it("throws on invalid target name", () => { const invalidTargetName = () => { @@ -75,6 +86,47 @@ describe("getTargets", () => { }); }); + it("works with node versions", () => { + expect( + getTargets({ + browsers: "node 8.5", + }), + ).toEqual({ + node: "8.5.0", + }); + }); + + it("works with current node version and string type browsers", () => { + expect( + getTargets({ + browsers: "current node, chrome 55", + }), + ).toEqual({ + node: process.versions.node, + chrome: "55.0.0", + }); + }); + + it("does throws on unsupported versions", () => { + expect(() => { + getTargets({ + browsers: "node 15.0.0, chrome 1000", + }); + }).toThrow(); + }); + + it("works with current node version and array type browsers", () => { + expect( + getTargets({ + browsers: ["ie 11", "current node", "chrome 55"], + }), + ).toEqual({ + node: process.versions.node, + chrome: "55.0.0", + ie: "11.0.0", + }); + }); + it("prefers released version over TP", () => { expect( getTargets({ diff --git a/packages/babel-preset-es2015/package.json b/packages/babel-preset-es2015/package.json deleted file mode 100644 index d06c6ca92a88..000000000000 --- a/packages/babel-preset-es2015/package.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "@babel/preset-es2015", - "version": "7.0.0-beta.52", - "description": "Babel preset for all es2015 plugins.", - "author": "Sebastian McKenzie ", - "homepage": "https://babeljs.io/", - "license": "MIT", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-preset-es2015", - "main": "lib/index.js", - "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/plugin-transform-arrow-functions": "7.0.0-beta.52", - "@babel/plugin-transform-block-scoped-functions": "7.0.0-beta.52", - "@babel/plugin-transform-block-scoping": "7.0.0-beta.52", - "@babel/plugin-transform-classes": "7.0.0-beta.52", - "@babel/plugin-transform-computed-properties": "7.0.0-beta.52", - "@babel/plugin-transform-destructuring": "7.0.0-beta.52", - "@babel/plugin-transform-duplicate-keys": "7.0.0-beta.52", - "@babel/plugin-transform-for-of": "7.0.0-beta.52", - "@babel/plugin-transform-function-name": "7.0.0-beta.52", - "@babel/plugin-transform-instanceof": "7.0.0-beta.52", - "@babel/plugin-transform-literals": "7.0.0-beta.52", - "@babel/plugin-transform-modules-amd": "7.0.0-beta.52", - "@babel/plugin-transform-modules-commonjs": "7.0.0-beta.52", - "@babel/plugin-transform-modules-systemjs": "7.0.0-beta.52", - "@babel/plugin-transform-modules-umd": "7.0.0-beta.52", - "@babel/plugin-transform-object-super": "7.0.0-beta.52", - "@babel/plugin-transform-parameters": "7.0.0-beta.52", - "@babel/plugin-transform-regenerator": "7.0.0-beta.52", - "@babel/plugin-transform-shorthand-properties": "7.0.0-beta.52", - "@babel/plugin-transform-spread": "7.0.0-beta.52", - "@babel/plugin-transform-sticky-regex": "7.0.0-beta.52", - "@babel/plugin-transform-template-literals": "7.0.0-beta.52", - "@babel/plugin-transform-typeof-symbol": "7.0.0-beta.52", - "@babel/plugin-transform-unicode-regex": "7.0.0-beta.52" - }, - "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" - }, - "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52", - "@babel/helper-transform-fixture-test-runner": "7.0.0-beta.52" - } -} diff --git a/packages/babel-preset-es2016/package.json b/packages/babel-preset-es2016/package.json deleted file mode 100644 index cc1274527335..000000000000 --- a/packages/babel-preset-es2016/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "@babel/preset-es2016", - "version": "7.0.0-beta.52", - "description": "Babel preset for all es2016 plugins.", - "author": "Sebastian McKenzie ", - "homepage": "https://babeljs.io/", - "license": "MIT", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-preset-es2016", - "main": "lib/index.js", - "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/plugin-transform-exponentiation-operator": "7.0.0-beta.52" - }, - "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" - }, - "devDependencies": { - "@babel/core": "7.0.0-beta.52" - } -} diff --git a/packages/babel-preset-es2017/package.json b/packages/babel-preset-es2017/package.json deleted file mode 100644 index 61335b0f1396..000000000000 --- a/packages/babel-preset-es2017/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "@babel/preset-es2017", - "version": "7.0.0-beta.52", - "description": "Babel preset for all es2017 plugins.", - "author": "Sebastian McKenzie ", - "homepage": "https://babeljs.io/", - "license": "MIT", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-preset-es2017", - "main": "lib/index.js", - "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/plugin-transform-async-to-generator": "7.0.0-beta.52" - }, - "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" - }, - "devDependencies": { - "@babel/core": "7.0.0-beta.52" - } -} diff --git a/packages/babel-preset-flow/package.json b/packages/babel-preset-flow/package.json index c532b788e1f4..80db216b5fdc 100644 --- a/packages/babel-preset-flow/package.json +++ b/packages/babel-preset-flow/package.json @@ -1,10 +1,13 @@ { "name": "@babel/preset-flow", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Babel preset for all Flow plugins.", "author": "James Kyle ", "repository": "https://github.com/babel/babel/tree/master/packages/babel-preset-flow", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-preset", @@ -13,14 +16,14 @@ "types" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/plugin-transform-flow-strip-types": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-preset-flow/test/fixtures/flow/options.json b/packages/babel-preset-flow/test/fixtures/flow/options.json index a896013492cc..4285ecfa9ad4 100644 --- a/packages/babel-preset-flow/test/fixtures/flow/options.json +++ b/packages/babel-preset-flow/test/fixtures/flow/options.json @@ -1,5 +1,3 @@ { - "presets": [ - "flow" - ] + "presets": ["flow"] } diff --git a/packages/babel-preset-react/package.json b/packages/babel-preset-react/package.json index 1bf0ba3f52d9..a7c6e195a5ad 100644 --- a/packages/babel-preset-react/package.json +++ b/packages/babel-preset-react/package.json @@ -1,25 +1,28 @@ { "name": "@babel/preset-react", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Babel preset for all React plugins.", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", "license": "MIT", + "publishConfig": { + "access": "public" + }, "repository": "https://github.com/babel/babel/tree/master/packages/babel-preset-react", "main": "lib/index.js", "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/plugin-transform-react-display-name": "7.0.0-beta.52", - "@babel/plugin-transform-react-jsx": "7.0.0-beta.52", - "@babel/plugin-transform-react-jsx-self": "7.0.0-beta.52", - "@babel/plugin-transform-react-jsx-source": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-react-jsx-self": "^7.0.0", + "@babel/plugin-transform-react-jsx-source": "^7.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52", - "@babel/helper-transform-fixture-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0", + "@babel/helper-transform-fixture-test-runner": "^7.0.0" } } diff --git a/packages/babel-preset-react/test/fixtures/preset-options/development/options.json b/packages/babel-preset-react/test/fixtures/preset-options/development/options.json index 5ce6ee2080b1..20fb8a7d4beb 100644 --- a/packages/babel-preset-react/test/fixtures/preset-options/development/options.json +++ b/packages/babel-preset-react/test/fixtures/preset-options/development/options.json @@ -1,5 +1,3 @@ { - "presets": [ - ["react", { "development": true }] - ] + "presets": [["react", { "development": true }]] } diff --git a/packages/babel-preset-react/test/fixtures/preset-options/empty-options/options.json b/packages/babel-preset-react/test/fixtures/preset-options/empty-options/options.json index 2f5fa2457bf1..33f84fa2eaf1 100644 --- a/packages/babel-preset-react/test/fixtures/preset-options/empty-options/options.json +++ b/packages/babel-preset-react/test/fixtures/preset-options/empty-options/options.json @@ -1,5 +1,3 @@ { - "presets": [ - ["react", {}] - ] + "presets": [["react", {}]] } diff --git a/packages/babel-preset-react/test/fixtures/preset-options/no-options/options.json b/packages/babel-preset-react/test/fixtures/preset-options/no-options/options.json index 2e9146fee16e..12d195e58bc0 100644 --- a/packages/babel-preset-react/test/fixtures/preset-options/no-options/options.json +++ b/packages/babel-preset-react/test/fixtures/preset-options/no-options/options.json @@ -1,5 +1,3 @@ { - "presets": [ - "react" - ] + "presets": ["react"] } diff --git a/packages/babel-preset-stage-0/README.md b/packages/babel-preset-stage-0/README.md index d64efb28db19..e4cdd326b02d 100644 --- a/packages/babel-preset-stage-0/README.md +++ b/packages/babel-preset-stage-0/README.md @@ -1,19 +1,58 @@ # @babel/preset-stage-0 -> Babel preset for stage 0 plugins +As of v7.0.0-beta.55, we've removed Babel's Stage presets. Please consider reading our [blog post](https://babeljs.io/blog/2018/07/27/removing-babels-stage-presets) on this decision for more details. TL;DR is that it's more beneficial in the long run to explicitly add which proposals to use. -See our website [@babel/preset-stage-0](https://babeljs.io/docs/en/next/babel-preset-stage-0.html) for more information. +--- -## Install +For a more automatic migration, we have updated [babel-upgrade](https://github.com/babel/babel-upgrade) to do this for you (you can run `npx babel-upgrade`). -Using npm: +If you want the same configuration as before: -```sh -npm install --save-dev @babel/preset-stage-0 +```jsonc +{ + "plugins": [ + // Stage 0 + "@babel/plugin-proposal-function-bind", + + // Stage 1 + "@babel/plugin-proposal-export-default-from", + "@babel/plugin-proposal-logical-assignment-operators", + ["@babel/plugin-proposal-optional-chaining", { "loose": false }], + ["@babel/plugin-proposal-pipeline-operator", { "proposal": "minimal" }], + ["@babel/plugin-proposal-nullish-coalescing-operator", { "loose": false }], + "@babel/plugin-proposal-do-expressions", + + // Stage 2 + ["@babel/plugin-proposal-decorators", { "legacy": true }], + "@babel/plugin-proposal-function-sent", + "@babel/plugin-proposal-export-namespace-from", + "@babel/plugin-proposal-numeric-separator", + "@babel/plugin-proposal-throw-expressions", + + // Stage 3 + "@babel/plugin-syntax-dynamic-import", + "@babel/plugin-syntax-import-meta", + ["@babel/plugin-proposal-class-properties", { "loose": false }], + "@babel/plugin-proposal-json-strings" + ] +} ``` -or using yarn: +If you're using the same configuration across many separate projects, +keep in mind that you can also create your own custom presets with +whichever plugins and presets you're looking to use. -```sh -yarn add @babel/preset-stage-0 --dev +```js +module.exports = function() { + return { + plugins: [ + require("@babel/plugin-syntax-dynamic-import"), + [require("@babel/plugin-proposal-decorators"), { "legacy": true }], + [require("@babel/plugin-proposal-class-properties"), { "loose": false }], + ], + presets: [ + // ... + ], + }; +}; ``` diff --git a/packages/babel-preset-stage-0/package.json b/packages/babel-preset-stage-0/package.json index e8b746216d59..dc2ea43dc886 100644 --- a/packages/babel-preset-stage-0/package.json +++ b/packages/babel-preset-stage-0/package.json @@ -1,21 +1,13 @@ { "name": "@babel/preset-stage-0", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Babel preset for stage 0 plugins", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", "license": "MIT", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-preset-stage-0", - "main": "lib/index.js", - "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/plugin-proposal-function-bind": "7.0.0-beta.52", - "@babel/preset-stage-1": "7.0.0-beta.52" - }, - "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "publishConfig": { + "access": "public" }, - "devDependencies": { - "@babel/core": "7.0.0-beta.52" - } + "repository": "https://github.com/babel/babel/tree/master/packages/babel-preset-stage-0", + "main": "lib/index.js" } diff --git a/packages/babel-preset-stage-0/src/index.js b/packages/babel-preset-stage-0/src/index.js index 28d9dd33cc4c..da2a61a9f4bd 100644 --- a/packages/babel-preset-stage-0/src/index.js +++ b/packages/babel-preset-stage-0/src/index.js @@ -1,57 +1,60 @@ -import { declare } from "@babel/helper-plugin-utils"; -import presetStage1 from "@babel/preset-stage-1"; - -import transformFunctionBind from "@babel/plugin-proposal-function-bind"; -import { proposals } from "@babel/plugin-proposal-pipeline-operator"; - -export default declare((api, opts = {}) => { - api.assertVersion(7); - - const { - loose = false, - useBuiltIns = false, - decoratorsLegacy = false, - pipelineProposal, - } = opts; - - if (typeof loose !== "boolean") { - throw new Error("@babel/preset-stage-0 'loose' option must be a boolean."); - } - if (typeof useBuiltIns !== "boolean") { - throw new Error( - "@babel/preset-stage-0 'useBuiltIns' option must be a boolean.", - ); - } - if (typeof decoratorsLegacy !== "boolean") { - throw new Error( - "@babel/preset-stage-0 'decoratorsLegacy' option must be a boolean.", - ); - } - - if (decoratorsLegacy !== true) { - throw new Error( - "The new decorators proposal is not supported yet." + - ' You must pass the `"decoratorsLegacy": true` option to' + - " @babel/preset-stage-0", - ); - } - - if (typeof pipelineProposal !== "string") { - throw new Error( - "The pipeline operator requires a proposal set." + - " You must pass 'pipelineProposal' option to" + - " @babel/preset-stage-0 whose value must be one of: " + - proposals.join(", "), - ); - } +export default function() { + throw new Error(` +As of v7.0.0-beta.55, we've removed Babel's Stage presets. +Please consider reading our blog post on this decision at +https://babeljs.io/blog/2018/07/27/removing-babels-stage-presets +for more details. TL;DR is that it's more beneficial in the + long run to explicitly add which proposals to use. +For a more automatic migration, we have updated babel-upgrade, +https://github.com/babel/babel-upgrade to do this for you with +"npx babel-upgrade". + +If you want the same configuration as before: + +{ + "plugins": [ + // Stage 0 + "@babel/plugin-proposal-function-bind", + + // Stage 1 + "@babel/plugin-proposal-export-default-from", + "@babel/plugin-proposal-logical-assignment-operators", + ["@babel/plugin-proposal-optional-chaining", { "loose": false }], + ["@babel/plugin-proposal-pipeline-operator", { "proposal": "minimal" }], + ["@babel/plugin-proposal-nullish-coalescing-operator", { "loose": false }], + "@babel/plugin-proposal-do-expressions", + + // Stage 2 + ["@babel/plugin-proposal-decorators", { "legacy": true }], + "@babel/plugin-proposal-function-sent", + "@babel/plugin-proposal-export-namespace-from", + "@babel/plugin-proposal-numeric-separator", + "@babel/plugin-proposal-throw-expressions", + + // Stage 3 + "@babel/plugin-syntax-dynamic-import", + "@babel/plugin-syntax-import-meta", + ["@babel/plugin-proposal-class-properties", { "loose": false }], + "@babel/plugin-proposal-json-strings" + ] +} + +If you're using the same configuration across many separate projects, +keep in mind that you can also create your own custom presets with +whichever plugins and presets you're looking to use. + +module.exports = function() { return { + plugins: [ + require("@babel/plugin-syntax-dynamic-import"), + [require("@babel/plugin-proposal-decorators"), { "legacy": true }], + [require("@babel/plugin-proposal-class-properties"), { "loose": false }], + ], presets: [ - [ - presetStage1, - { loose, useBuiltIns, decoratorsLegacy, pipelineProposal }, - ], + // ... ], - plugins: [transformFunctionBind], }; -}); +}; + `); +} diff --git a/packages/babel-preset-stage-1/README.md b/packages/babel-preset-stage-1/README.md index 16a67afb62c7..6cd8f4750091 100644 --- a/packages/babel-preset-stage-1/README.md +++ b/packages/babel-preset-stage-1/README.md @@ -1,19 +1,55 @@ # @babel/preset-stage-1 -> Babel preset for stage 1 plugins +As of v7.0.0-beta.55, we've removed Babel's Stage presets. Please consider reading our [blog post](https://babeljs.io/blog/2018/07/27/removing-babels-stage-presets) on this decision for more details. TL;DR is that it's more beneficial in the long run to explicitly add which proposals to use. -See our website [@babel/preset-stage-1](https://babeljs.io/docs/en/next/babel-preset-stage-1.html) for more information. +--- -## Install +For a more automatic migration, we have updated [babel-upgrade](https://github.com/babel/babel-upgrade) to do this for you (you can run `npx babel-upgrade`). -Using npm: +If you want the same configuration as before: -```sh -npm install --save-dev @babel/preset-stage-1 +```jsonc +{ + "plugins": [ + // Stage 1 + "@babel/plugin-proposal-export-default-from", + "@babel/plugin-proposal-logical-assignment-operators", + ["@babel/plugin-proposal-optional-chaining", { "loose": false }], + ["@babel/plugin-proposal-pipeline-operator", { "proposal": "minimal" }], + ["@babel/plugin-proposal-nullish-coalescing-operator", { "loose": false }], + "@babel/plugin-proposal-do-expressions", + + // Stage 2 + ["@babel/plugin-proposal-decorators", { "legacy": true }], + "@babel/plugin-proposal-function-sent", + "@babel/plugin-proposal-export-namespace-from", + "@babel/plugin-proposal-numeric-separator", + "@babel/plugin-proposal-throw-expressions", + + // Stage 3 + "@babel/plugin-syntax-dynamic-import", + "@babel/plugin-syntax-import-meta", + ["@babel/plugin-proposal-class-properties", { "loose": false }], + "@babel/plugin-proposal-json-strings" + ] +} ``` -or using yarn: +If you're using the same configuration across many separate projects, +keep in mind that you can also create your own custom presets with +whichever plugins and presets you're looking to use. -```sh -yarn add @babel/preset-stage-1 --dev +```js +module.exports = function() { + return { + plugins: [ + require("@babel/plugin-syntax-dynamic-import"), + [require("@babel/plugin-proposal-decorators"), { "legacy": true }], + [require("@babel/plugin-proposal-class-properties"), { "loose": false }], + ], + presets: [ + // ... + ], + }; +}; ``` diff --git a/packages/babel-preset-stage-1/package.json b/packages/babel-preset-stage-1/package.json index b7ea3938aecd..377959f83400 100644 --- a/packages/babel-preset-stage-1/package.json +++ b/packages/babel-preset-stage-1/package.json @@ -1,26 +1,13 @@ { "name": "@babel/preset-stage-1", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Babel preset for stage 1 plugins", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", "license": "MIT", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-preset-stage-1", - "main": "lib/index.js", - "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/plugin-proposal-do-expressions": "7.0.0-beta.52", - "@babel/plugin-proposal-export-default-from": "7.0.0-beta.52", - "@babel/plugin-proposal-logical-assignment-operators": "7.0.0-beta.52", - "@babel/plugin-proposal-nullish-coalescing-operator": "7.0.0-beta.52", - "@babel/plugin-proposal-optional-chaining": "7.0.0-beta.52", - "@babel/plugin-proposal-pipeline-operator": "7.0.0-beta.52", - "@babel/preset-stage-2": "7.0.0-beta.52" - }, - "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "publishConfig": { + "access": "public" }, - "devDependencies": { - "@babel/core": "7.0.0-beta.52" - } + "repository": "https://github.com/babel/babel/tree/master/packages/babel-preset-stage-1", + "main": "lib/index.js" } diff --git a/packages/babel-preset-stage-1/src/index.js b/packages/babel-preset-stage-1/src/index.js index 2c50a12fca1f..7b7055285591 100644 --- a/packages/babel-preset-stage-1/src/index.js +++ b/packages/babel-preset-stage-1/src/index.js @@ -1,65 +1,57 @@ -import { declare } from "@babel/helper-plugin-utils"; -import presetStage2 from "@babel/preset-stage-2"; +export default function() { + throw new Error(` +As of v7.0.0-beta.55, we've removed Babel's Stage presets. +Please consider reading our blog post on this decision at +https://babeljs.io/blog/2018/07/27/removing-babels-stage-presets +for more details. TL;DR is that it's more beneficial in the + long run to explicitly add which proposals to use. -import transformExportDefaultFrom from "@babel/plugin-proposal-export-default-from"; -import transformLogicalAssignmentOperators from "@babel/plugin-proposal-logical-assignment-operators"; -import transformOptionalChaining from "@babel/plugin-proposal-optional-chaining"; -import transformPipelineOperator, { - proposals, -} from "@babel/plugin-proposal-pipeline-operator"; -import transformNullishCoalescingOperator from "@babel/plugin-proposal-nullish-coalescing-operator"; -import transformDoExpressions from "@babel/plugin-proposal-do-expressions"; +For a more automatic migration, we have updated babel-upgrade, +https://github.com/babel/babel-upgrade to do this for you with +"npx babel-upgrade". -export default declare((api, opts = {}) => { - api.assertVersion(7); +If you want the same configuration as before: - const { - loose = false, - useBuiltIns = false, - decoratorsLegacy = false, - pipelineProposal, - } = opts; +{ + "plugins": [ + // Stage 1 + "@babel/plugin-proposal-export-default-from", + "@babel/plugin-proposal-logical-assignment-operators", + ["@babel/plugin-proposal-optional-chaining", { "loose": false }], + ["@babel/plugin-proposal-pipeline-operator", { "proposal": "minimal" }], + ["@babel/plugin-proposal-nullish-coalescing-operator", { "loose": false }], + "@babel/plugin-proposal-do-expressions", - if (typeof loose !== "boolean") { - throw new Error("@babel/preset-stage-1 'loose' option must be a boolean."); - } - if (typeof useBuiltIns !== "boolean") { - throw new Error( - "@babel/preset-stage-1 'useBuiltIns' option must be a boolean.", - ); - } - if (typeof decoratorsLegacy !== "boolean") { - throw new Error( - "@babel/preset-stage-1 'decoratorsLegacy' option must be a boolean.", - ); - } + // Stage 2 + ["@babel/plugin-proposal-decorators", { "legacy": true }], + "@babel/plugin-proposal-function-sent", + "@babel/plugin-proposal-export-namespace-from", + "@babel/plugin-proposal-numeric-separator", + "@babel/plugin-proposal-throw-expressions", - if (decoratorsLegacy !== true) { - throw new Error( - "The new decorators proposal is not supported yet." + - ' You must pass the `"decoratorsLegacy": true` option to' + - " @babel/preset-stage-1", - ); - } + // Stage 3 + "@babel/plugin-syntax-dynamic-import", + "@babel/plugin-syntax-import-meta", + ["@babel/plugin-proposal-class-properties", { "loose": false }], + "@babel/plugin-proposal-json-strings" + ] +} - if (typeof pipelineProposal !== "string") { - throw new Error( - "The pipeline operator requires a proposal set." + - " You must pass 'pipelineProposal' option to" + - " @babel/preset-stage-1 whose value must be one of: " + - proposals.join(", "), - ); - } +If you're using the same configuration across many separate projects, +keep in mind that you can also create your own custom presets with +whichever plugins and presets you're looking to use. +module.exports = function() { return { - presets: [[presetStage2, { loose, useBuiltIns, decoratorsLegacy }]], plugins: [ - transformExportDefaultFrom, - transformLogicalAssignmentOperators, - [transformOptionalChaining, { loose }], - [transformPipelineOperator, { proposal: pipelineProposal }], - [transformNullishCoalescingOperator, { loose }], - transformDoExpressions, + require("@babel/plugin-syntax-dynamic-import"), + [require("@babel/plugin-proposal-decorators"), { "legacy": true }], + [require("@babel/plugin-proposal-class-properties"), { "loose": false }], + ], + presets: [ + // ... ], }; -}); +}; +`); +} diff --git a/packages/babel-preset-stage-2/README.md b/packages/babel-preset-stage-2/README.md index 9f1b36fd3452..f1f9abfebf2c 100644 --- a/packages/babel-preset-stage-2/README.md +++ b/packages/babel-preset-stage-2/README.md @@ -1,19 +1,47 @@ # @babel/preset-stage-2 -> Babel preset for stage 2 plugins +As of v7.0.0-beta.55, we've removed Babel's Stage presets. Please consider reading our [blog post](https://babeljs.io/blog/2018/07/27/removing-babels-stage-presets) on this decision for more details. TL;DR is that it's more beneficial in the long run to explicitly add which proposals to use. -See our website [@babel/preset-stage-2](https://babeljs.io/docs/en/next/babel-preset-stage-2.html) for more information. +--- -## Install +For a more automatic migration, we have updated [babel-upgrade](https://github.com/babel/babel-upgrade) to do this for you (you can run `npx babel-upgrade`). -Using npm: +If you want the same configuration as before: -```sh -npm install --save-dev @babel/preset-stage-2 +```jsonc +{ + "plugins": [ + // Stage 2 + ["@babel/plugin-proposal-decorators", { "legacy": true }], + "@babel/plugin-proposal-function-sent", + "@babel/plugin-proposal-export-namespace-from", + "@babel/plugin-proposal-numeric-separator", + "@babel/plugin-proposal-throw-expressions", + + // Stage 3 + "@babel/plugin-syntax-dynamic-import", + "@babel/plugin-syntax-import-meta", + ["@babel/plugin-proposal-class-properties", { "loose": false }], + "@babel/plugin-proposal-json-strings" + ] +} ``` -or using yarn: +If you're using the same configuration across many separate projects, +keep in mind that you can also create your own custom presets with +whichever plugins and presets you're looking to use. -```sh -yarn add @babel/preset-stage-2 --dev +```js +module.exports = function() { + return { + plugins: [ + require("@babel/plugin-syntax-dynamic-import"), + [require("@babel/plugin-proposal-decorators"), { "legacy": true }], + [require("@babel/plugin-proposal-class-properties"), { "loose": false }], + ], + presets: [ + // ... + ], + }; +}; ``` diff --git a/packages/babel-preset-stage-2/package.json b/packages/babel-preset-stage-2/package.json index bf6d8ed4f3e9..af2594050681 100644 --- a/packages/babel-preset-stage-2/package.json +++ b/packages/babel-preset-stage-2/package.json @@ -1,25 +1,13 @@ { "name": "@babel/preset-stage-2", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Babel preset for stage 2 plugins", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", "license": "MIT", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-preset-stage-2", - "main": "lib/index.js", - "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/plugin-proposal-decorators": "7.0.0-beta.52", - "@babel/plugin-proposal-export-namespace-from": "7.0.0-beta.52", - "@babel/plugin-proposal-function-sent": "7.0.0-beta.52", - "@babel/plugin-proposal-numeric-separator": "7.0.0-beta.52", - "@babel/plugin-proposal-throw-expressions": "7.0.0-beta.52", - "@babel/preset-stage-3": "7.0.0-beta.52" - }, - "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "publishConfig": { + "access": "public" }, - "devDependencies": { - "@babel/core": "7.0.0-beta.52" - } + "repository": "https://github.com/babel/babel/tree/master/packages/babel-preset-stage-2", + "main": "lib/index.js" } diff --git a/packages/babel-preset-stage-2/src/index.js b/packages/babel-preset-stage-2/src/index.js index f40084eac7a4..4d3a38d42559 100644 --- a/packages/babel-preset-stage-2/src/index.js +++ b/packages/babel-preset-stage-2/src/index.js @@ -1,47 +1,49 @@ -import { declare } from "@babel/helper-plugin-utils"; -import presetStage3 from "@babel/preset-stage-3"; +export default function() { + throw new Error(` +As of v7.0.0-beta.55, we've removed Babel's Stage presets. +Please consider reading our blog post on this decision at +https://babeljs.io/blog/2018/07/27/removing-babels-stage-presets +for more details. TL;DR is that it's more beneficial in the + long run to explicitly add which proposals to use. -import transformDecorators from "@babel/plugin-proposal-decorators"; -import transformFunctionSent from "@babel/plugin-proposal-function-sent"; -import transformExportNamespaceFrom from "@babel/plugin-proposal-export-namespace-from"; -import transformNumericSeparator from "@babel/plugin-proposal-numeric-separator"; -import transformThrowExpressions from "@babel/plugin-proposal-throw-expressions"; +For a more automatic migration, we have updated babel-upgrade, +https://github.com/babel/babel-upgrade to do this for you with +"npx babel-upgrade". -export default declare((api, opts = {}) => { - api.assertVersion(7); +If you want the same configuration as before: - const { loose = false, useBuiltIns = false, decoratorsLegacy = false } = opts; +{ + "plugins": [ + // Stage 2 + ["@babel/plugin-proposal-decorators", { "legacy": true }], + "@babel/plugin-proposal-function-sent", + "@babel/plugin-proposal-export-namespace-from", + "@babel/plugin-proposal-numeric-separator", + "@babel/plugin-proposal-throw-expressions", - if (typeof loose !== "boolean") { - throw new Error("@babel/preset-stage-2 'loose' option must be a boolean."); - } - if (typeof useBuiltIns !== "boolean") { - throw new Error( - "@babel/preset-stage-2 'useBuiltIns' option must be a boolean.", - ); - } - if (typeof decoratorsLegacy !== "boolean") { - throw new Error( - "@babel/preset-stage-2 'decoratorsLegacy' option must be a boolean.", - ); - } + // Stage 3 + "@babel/plugin-syntax-dynamic-import", + "@babel/plugin-syntax-import-meta", + ["@babel/plugin-proposal-class-properties", { "loose": false }], + "@babel/plugin-proposal-json-strings" + ] +} - if (decoratorsLegacy !== true) { - throw new Error( - "The new decorators proposal is not supported yet." + - ' You must pass the `"decoratorsLegacy": true` option to' + - " @babel/preset-stage-2", - ); - } +If you're using the same configuration across many separate projects, +keep in mind that you can also create your own custom presets with +whichever plugins and presets you're looking to use. +module.exports = function() { return { - presets: [[presetStage3, { loose, useBuiltIns }]], plugins: [ - [transformDecorators, { legacy: decoratorsLegacy }], - transformFunctionSent, - transformExportNamespaceFrom, - transformNumericSeparator, - transformThrowExpressions, + require("@babel/plugin-syntax-dynamic-import"), + [require("@babel/plugin-proposal-decorators"), { "legacy": true }], + [require("@babel/plugin-proposal-class-properties"), { "loose": false }], + ], + presets: [ + // ... ], }; -}); +}; +`); +} diff --git a/packages/babel-preset-stage-3/README.md b/packages/babel-preset-stage-3/README.md index fe5de4e5c2cf..cf6e28c258f6 100644 --- a/packages/babel-preset-stage-3/README.md +++ b/packages/babel-preset-stage-3/README.md @@ -1,19 +1,39 @@ # @babel/preset-stage-3 -> Babel preset for stage 3 plugins +As of v7.0.0-beta.55, we've removed Babel's Stage presets. Please consider reading our [blog post](https://babeljs.io/blog/2018/07/27/removing-babels-stage-presets) on this decision for more details. TL;DR is that it's more beneficial in the long run to explicitly add which proposals to use. -See our website [@babel/preset-stage-3](https://babeljs.io/docs/en/next/babel-preset-stage-3.html) for more information. +--- -## Install +For a more automatic migration, we have updated [babel-upgrade](https://github.com/babel/babel-upgrade) to do this for you (you can run `npx babel-upgrade`). -Using npm: +If you want the same configuration as before: -```sh -npm install --save-dev @babel/preset-stage-3 +```json +{ + "plugins": [ + "@babel/plugin-syntax-dynamic-import", + "@babel/plugin-syntax-import-meta", + ["@babel/plugin-proposal-class-properties", { "loose": false }], + "@babel/plugin-proposal-json-strings" + ] +} ``` -or using yarn: +If you're using the same configuration across many separate projects, +keep in mind that you can also create your own custom presets with +whichever plugins and presets you're looking to use. -```sh -yarn add @babel/preset-stage-3 --dev +```js +module.exports = function() { + return { + plugins: [ + require("@babel/plugin-syntax-dynamic-import"), + [require("@babel/plugin-proposal-decorators"), { "legacy": true }], + [require("@babel/plugin-proposal-class-properties"), { "loose": false }], + ], + presets: [ + // ... + ], + }; +}; ``` diff --git a/packages/babel-preset-stage-3/package.json b/packages/babel-preset-stage-3/package.json index d65921839927..2bb6507112e9 100644 --- a/packages/babel-preset-stage-3/package.json +++ b/packages/babel-preset-stage-3/package.json @@ -1,27 +1,13 @@ { "name": "@babel/preset-stage-3", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "Babel preset for stage 3 plugins", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", "license": "MIT", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-preset-stage-3", - "main": "lib/index.js", - "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/plugin-proposal-async-generator-functions": "7.0.0-beta.52", - "@babel/plugin-proposal-class-properties": "7.0.0-beta.52", - "@babel/plugin-proposal-json-strings": "7.0.0-beta.52", - "@babel/plugin-proposal-object-rest-spread": "7.0.0-beta.52", - "@babel/plugin-proposal-optional-catch-binding": "7.0.0-beta.52", - "@babel/plugin-proposal-unicode-property-regex": "7.0.0-beta.52", - "@babel/plugin-syntax-dynamic-import": "7.0.0-beta.52", - "@babel/plugin-syntax-import-meta": "7.0.0-beta.52" - }, - "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "publishConfig": { + "access": "public" }, - "devDependencies": { - "@babel/core": "7.0.0-beta.52" - } + "repository": "https://github.com/babel/babel/tree/master/packages/babel-preset-stage-3", + "main": "lib/index.js" } diff --git a/packages/babel-preset-stage-3/src/index.js b/packages/babel-preset-stage-3/src/index.js index 4562067b4e74..5e7c9b841038 100644 --- a/packages/babel-preset-stage-3/src/index.js +++ b/packages/babel-preset-stage-3/src/index.js @@ -1,43 +1,42 @@ -import { declare } from "@babel/helper-plugin-utils"; -import syntaxDynamicImport from "@babel/plugin-syntax-dynamic-import"; -import syntaxImportMeta from "@babel/plugin-syntax-import-meta"; -import transformAsyncGeneratorFunctions from "@babel/plugin-proposal-async-generator-functions"; -import transformClassProperties from "@babel/plugin-proposal-class-properties"; -import transformJsonStrings from "@babel/plugin-proposal-json-strings"; -import transformObjectRestSpread from "@babel/plugin-proposal-object-rest-spread"; -import transformOptionalCatchBinding from "@babel/plugin-proposal-optional-catch-binding"; -import transformUnicodePropertyRegex from "@babel/plugin-proposal-unicode-property-regex"; +export default function() { + throw new Error(` +As of v7.0.0-beta.55, we've removed Babel's Stage presets. +Please consider reading our blog post on this decision at +https://babeljs.io/blog/2018/07/27/removing-babels-stage-presets +for more details. TL;DR is that it's more beneficial in the + long run to explicitly add which proposals to use. -export default declare((api, opts) => { - api.assertVersion(7); +For a more automatic migration, we have updated babel-upgrade, +https://github.com/babel/babel-upgrade to do this for you with +"npx babel-upgrade". - let loose = false; - let useBuiltIns = false; +If you want the same configuration as before: - if (opts !== undefined) { - if (opts.loose !== undefined) loose = opts.loose; - if (opts.useBuiltIns !== undefined) useBuiltIns = opts.useBuiltIns; - } +{ + "plugins": [ + "@babel/plugin-syntax-dynamic-import", + "@babel/plugin-syntax-import-meta", + ["@babel/plugin-proposal-class-properties", { "loose": false }], + "@babel/plugin-proposal-json-strings" + ] +} - if (typeof loose !== "boolean") { - throw new Error("@babel/preset-stage-3 'loose' option must be a boolean."); - } - if (typeof useBuiltIns !== "boolean") { - throw new Error( - "@babel/preset-stage-3 'useBuiltIns' option must be a boolean.", - ); - } +If you're using the same configuration across many separate projects, +keep in mind that you can also create your own custom presets with +whichever plugins and presets you're looking to use. + +module.exports = function() { return { plugins: [ - syntaxDynamicImport, - syntaxImportMeta, - transformAsyncGeneratorFunctions, - [transformClassProperties, { loose }], - transformJsonStrings, - [transformObjectRestSpread, { loose, useBuiltIns }], - transformOptionalCatchBinding, - transformUnicodePropertyRegex, + require("@babel/plugin-syntax-dynamic-import"), + [require("@babel/plugin-proposal-decorators"), { "legacy": true }], + [require("@babel/plugin-proposal-class-properties"), { "loose": false }], + ], + presets: [ + // ... ], }; -}); +}; +`); +} diff --git a/packages/babel-preset-typescript/package.json b/packages/babel-preset-typescript/package.json index 34cd429c6a39..bc79cd413afd 100644 --- a/packages/babel-preset-typescript/package.json +++ b/packages/babel-preset-typescript/package.json @@ -1,23 +1,26 @@ { "name": "@babel/preset-typescript", - "version": "7.0.0-beta.52", + "version": "7.1.0", "description": "Babel preset for TypeScript.", "repository": "https://github.com/babel/babel/tree/master/packages/babel-preset-typescript", "license": "MIT", + "publishConfig": { + "access": "public" + }, "main": "lib/index.js", "keywords": [ "babel-preset", "typescript" ], "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/plugin-transform-typescript": "7.0.0-beta.52" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-transform-typescript": "^7.1.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-preset-typescript/test/fixtures/flow-compat/js-invalid/options.json b/packages/babel-preset-typescript/test/fixtures/flow-compat/js-invalid/options.json index d0b66c6872fa..e91f37cda819 100644 --- a/packages/babel-preset-typescript/test/fixtures/flow-compat/js-invalid/options.json +++ b/packages/babel-preset-typescript/test/fixtures/flow-compat/js-invalid/options.json @@ -1,8 +1,4 @@ { - "presets": [ - ["flow", {}, "before"], - "typescript", - ["flow", {}, "after"] - ], + "presets": [["flow", {}, "before"], "typescript", ["flow", {}, "after"]], "throws": "enum is a reserved word (1:0)" } diff --git a/packages/babel-preset-typescript/test/fixtures/flow-compat/options.json b/packages/babel-preset-typescript/test/fixtures/flow-compat/options.json index 751ac537f642..2901adef575d 100644 --- a/packages/babel-preset-typescript/test/fixtures/flow-compat/options.json +++ b/packages/babel-preset-typescript/test/fixtures/flow-compat/options.json @@ -1,7 +1,3 @@ { - "presets": [ - ["flow", {}, "before"], - "typescript", - ["flow", {}, "after"] - ] + "presets": [["flow", {}, "before"], "typescript", ["flow", {}, "after"]] } diff --git a/packages/babel-preset-typescript/test/fixtures/flow-compat/ts-invalid/options.json b/packages/babel-preset-typescript/test/fixtures/flow-compat/ts-invalid/options.json index 8d8c5f54b65b..8401da8eb45d 100644 --- a/packages/babel-preset-typescript/test/fixtures/flow-compat/ts-invalid/options.json +++ b/packages/babel-preset-typescript/test/fixtures/flow-compat/ts-invalid/options.json @@ -1,8 +1,4 @@ { - "presets": [ - ["flow", {}, "before"], - "typescript", - ["flow", {}, "after"] - ], + "presets": [["flow", {}, "before"], "typescript", ["flow", {}, "after"]], "throws": "Unexpected token (1:12)" } diff --git a/packages/babel-preset-typescript/test/fixtures/flow-compat/tsx-invalid/options.json b/packages/babel-preset-typescript/test/fixtures/flow-compat/tsx-invalid/options.json index 8d8c5f54b65b..8401da8eb45d 100644 --- a/packages/babel-preset-typescript/test/fixtures/flow-compat/tsx-invalid/options.json +++ b/packages/babel-preset-typescript/test/fixtures/flow-compat/tsx-invalid/options.json @@ -1,8 +1,4 @@ { - "presets": [ - ["flow", {}, "before"], - "typescript", - ["flow", {}, "after"] - ], + "presets": [["flow", {}, "before"], "typescript", ["flow", {}, "after"]], "throws": "Unexpected token (1:12)" } diff --git a/packages/babel-preset-typescript/test/fixtures/jsx-compat/options.json b/packages/babel-preset-typescript/test/fixtures/jsx-compat/options.json index 936cecb47c3a..a356e871159f 100644 --- a/packages/babel-preset-typescript/test/fixtures/jsx-compat/options.json +++ b/packages/babel-preset-typescript/test/fixtures/jsx-compat/options.json @@ -1,7 +1,3 @@ { - "presets": [ - ["react", {}, "before"], - "typescript", - ["react", {}, "after"] - ] + "presets": [["react", {}, "before"], "typescript", ["react", {}, "after"]] } diff --git a/packages/babel-preset-typescript/test/fixtures/jsx-compat/ts-invalid/options.json b/packages/babel-preset-typescript/test/fixtures/jsx-compat/ts-invalid/options.json index c157cc517b52..345e1f87c98b 100644 --- a/packages/babel-preset-typescript/test/fixtures/jsx-compat/ts-invalid/options.json +++ b/packages/babel-preset-typescript/test/fixtures/jsx-compat/ts-invalid/options.json @@ -1,8 +1,4 @@ { - "presets": [ - ["react", {}, "before"], - "typescript", - ["react", {}, "after"] - ], + "presets": [["react", {}, "before"], "typescript", ["react", {}, "after"]], "throws": "Unexpected token, expected \"\" (1:6)" } diff --git a/packages/babel-register/package.json b/packages/babel-register/package.json index 1e37d965f966..e0790a406d8c 100644 --- a/packages/babel-register/package.json +++ b/packages/babel-register/package.json @@ -1,8 +1,11 @@ { "name": "@babel/register", - "version": "7.0.0-beta.52", + "version": "7.0.0", "description": "babel require hook", "license": "MIT", + "publishConfig": { + "access": "public" + }, "repository": "https://github.com/babel/babel/tree/master/packages/babel-register", "author": "Sebastian McKenzie ", "main": "lib/index.js", @@ -13,16 +16,16 @@ "core-js": "^2.5.7", "find-cache-dir": "^1.0.0", "home-or-tmp": "^3.0.0", - "lodash": "^4.17.5", + "lodash": "^4.17.10", "mkdirp": "^0.5.1", - "pirates": "^3.0.1", - "source-map-support": "^0.4.2" + "pirates": "^4.0.0", + "source-map-support": "^0.5.9" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.50 <7.0.0-rc.0" + "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.52", + "@babel/core": "^7.0.0", "default-require-extensions": "^2.0.0" } } diff --git a/packages/babel-register/src/node.js b/packages/babel-register/src/node.js index fe9a46c15dc5..84dbe8b5cd1a 100644 --- a/packages/babel-register/src/node.js +++ b/packages/babel-register/src/node.js @@ -101,7 +101,6 @@ function hookExtensions(exts) { export function revert() { if (piratesRevert) piratesRevert(); - delete require.cache[require.resolve(__filename)]; } register(); @@ -126,6 +125,10 @@ export default function register(opts?: Object = {}) { transformOpts = { ...opts, + caller: { + name: "@babel/register", + ...(opts.caller || {}), + }, }; let { cwd = "." } = transformOpts; diff --git a/packages/babel-register/test/index.js b/packages/babel-register/test/index.js index 5643bdcf6f5b..1f54094e9d9a 100644 --- a/packages/babel-register/test/index.js +++ b/packages/babel-register/test/index.js @@ -52,6 +52,7 @@ describe("@babel/register", function() { function revertRegister() { if (babelRegister) { babelRegister.revert(); + delete require.cache[registerFile]; babelRegister = null; } } diff --git a/packages/babel-runtime-corejs2/.npmignore b/packages/babel-runtime-corejs2/.npmignore new file mode 100644 index 000000000000..f9806945836e --- /dev/null +++ b/packages/babel-runtime-corejs2/.npmignore @@ -0,0 +1,3 @@ +src +test +*.log diff --git a/packages/babel-runtime-corejs2/README.md b/packages/babel-runtime-corejs2/README.md new file mode 100644 index 000000000000..bcae9d9c145a --- /dev/null +++ b/packages/babel-runtime-corejs2/README.md @@ -0,0 +1,19 @@ +# @babel/runtime-corejs2 + +> babel's modular runtime helpers with core-js@2 polyfilling + +See our website [@babel/runtime-corejs2](https://babeljs.io/docs/en/next/babel-runtime-corejs2.html) for more information. + +## Install + +Using npm: + +```sh +npm install --save-dev @babel/runtime-corejs2 +``` + +or using yarn: + +```sh +yarn add @babel/runtime-corejs2 --dev +``` diff --git a/packages/babel-runtime/core-js/map.js b/packages/babel-runtime-corejs2/core-js/map.js similarity index 100% rename from packages/babel-runtime/core-js/map.js rename to packages/babel-runtime-corejs2/core-js/map.js diff --git a/packages/babel-runtime/helpers/es6/iterableToArray.js b/packages/babel-runtime-corejs2/helpers/esm/iterableToArray.js similarity index 100% rename from packages/babel-runtime/helpers/es6/iterableToArray.js rename to packages/babel-runtime-corejs2/helpers/esm/iterableToArray.js diff --git a/packages/babel-runtime/helpers/builtin/es6/temporalRef.js b/packages/babel-runtime-corejs2/helpers/esm/temporalRef.js similarity index 100% rename from packages/babel-runtime/helpers/builtin/es6/temporalRef.js rename to packages/babel-runtime-corejs2/helpers/esm/temporalRef.js diff --git a/packages/babel-runtime/helpers/builtin/es6/toArray.js b/packages/babel-runtime-corejs2/helpers/esm/toArray.js similarity index 100% rename from packages/babel-runtime/helpers/builtin/es6/toArray.js rename to packages/babel-runtime-corejs2/helpers/esm/toArray.js diff --git a/packages/babel-runtime-corejs2/helpers/iterableToArray.js b/packages/babel-runtime-corejs2/helpers/iterableToArray.js new file mode 100644 index 000000000000..c7834a312257 --- /dev/null +++ b/packages/babel-runtime-corejs2/helpers/iterableToArray.js @@ -0,0 +1,9 @@ +var _Array$from = require("../core-js/array/from"); + +var _isIterable = require("../core-js/is-iterable"); + +function _iterableToArray(iter) { + if (_isIterable(Object(iter)) || Object.prototype.toString.call(iter) === "[object Arguments]") return _Array$from(iter); +} + +module.exports = _iterableToArray; \ No newline at end of file diff --git a/packages/babel-runtime/helpers/builtin/temporalRef.js b/packages/babel-runtime-corejs2/helpers/temporalRef.js similarity index 100% rename from packages/babel-runtime/helpers/builtin/temporalRef.js rename to packages/babel-runtime-corejs2/helpers/temporalRef.js diff --git a/packages/babel-runtime/helpers/builtin/toArray.js b/packages/babel-runtime-corejs2/helpers/toArray.js similarity index 100% rename from packages/babel-runtime/helpers/builtin/toArray.js rename to packages/babel-runtime-corejs2/helpers/toArray.js diff --git a/packages/babel-runtime-corejs2/package.json b/packages/babel-runtime-corejs2/package.json new file mode 100644 index 000000000000..27ba84949185 --- /dev/null +++ b/packages/babel-runtime-corejs2/package.json @@ -0,0 +1,15 @@ +{ + "name": "@babel/runtime-corejs2", + "version": "7.1.2", + "description": "babel's modular runtime helpers with core-js@2 polyfilling", + "license": "MIT", + "publishConfig": { + "access": "public" + }, + "repository": "https://github.com/babel/babel/tree/master/packages/babel-runtime-corejs2", + "author": "Sebastian McKenzie ", + "dependencies": { + "core-js": "^2.5.7", + "regenerator-runtime": "^0.12.0" + } +} diff --git a/packages/babel-runtime-corejs2/regenerator/index.js b/packages/babel-runtime-corejs2/regenerator/index.js new file mode 100644 index 000000000000..9fd4158a6d85 --- /dev/null +++ b/packages/babel-runtime-corejs2/regenerator/index.js @@ -0,0 +1 @@ +module.exports = require("regenerator-runtime"); diff --git a/packages/babel-runtime/.npmignore b/packages/babel-runtime/.npmignore index 57e1671459aa..f9806945836e 100644 --- a/packages/babel-runtime/.npmignore +++ b/packages/babel-runtime/.npmignore @@ -1,4 +1,3 @@ -scripts src test *.log diff --git a/packages/babel-runtime/README.md b/packages/babel-runtime/README.md index ec85bb0b5249..75087e35603c 100644 --- a/packages/babel-runtime/README.md +++ b/packages/babel-runtime/README.md @@ -1,6 +1,6 @@ # @babel/runtime -> babel selfContained runtime +> babel's modular runtime helpers See our website [@babel/runtime](https://babeljs.io/docs/en/next/babel-runtime.html) for more information. diff --git a/packages/babel-runtime/core-js.js b/packages/babel-runtime/core-js.js deleted file mode 100644 index 709f7e325288..000000000000 --- a/packages/babel-runtime/core-js.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require("core-js/library"); diff --git a/packages/babel-runtime/helpers/builtin/iterableToArray.js b/packages/babel-runtime/helpers/builtin/iterableToArray.js deleted file mode 100644 index e917e57937bf..000000000000 --- a/packages/babel-runtime/helpers/builtin/iterableToArray.js +++ /dev/null @@ -1,5 +0,0 @@ -function _iterableToArray(iter) { - if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); -} - -module.exports = _iterableToArray; \ No newline at end of file diff --git a/packages/babel-runtime/helpers/builtin/es6/iterableToArray.js b/packages/babel-runtime/helpers/esm/iterableToArray.js similarity index 100% rename from packages/babel-runtime/helpers/builtin/es6/iterableToArray.js rename to packages/babel-runtime/helpers/esm/iterableToArray.js diff --git a/packages/babel-runtime/helpers/es6/temporalRef.js b/packages/babel-runtime/helpers/esm/temporalRef.js similarity index 100% rename from packages/babel-runtime/helpers/es6/temporalRef.js rename to packages/babel-runtime/helpers/esm/temporalRef.js diff --git a/packages/babel-runtime/helpers/es6/toArray.js b/packages/babel-runtime/helpers/esm/toArray.js similarity index 100% rename from packages/babel-runtime/helpers/es6/toArray.js rename to packages/babel-runtime/helpers/esm/toArray.js diff --git a/packages/babel-runtime/helpers/iterableToArray.js b/packages/babel-runtime/helpers/iterableToArray.js index c7834a312257..e917e57937bf 100644 --- a/packages/babel-runtime/helpers/iterableToArray.js +++ b/packages/babel-runtime/helpers/iterableToArray.js @@ -1,9 +1,5 @@ -var _Array$from = require("../core-js/array/from"); - -var _isIterable = require("../core-js/is-iterable"); - function _iterableToArray(iter) { - if (_isIterable(Object(iter)) || Object.prototype.toString.call(iter) === "[object Arguments]") return _Array$from(iter); + if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } module.exports = _iterableToArray; \ No newline at end of file diff --git a/packages/babel-runtime/package.json b/packages/babel-runtime/package.json index 679712d0cbb0..420077aff454 100644 --- a/packages/babel-runtime/package.json +++ b/packages/babel-runtime/package.json @@ -1,19 +1,14 @@ { "name": "@babel/runtime", - "version": "7.0.0-beta.52", - "description": "babel selfContained runtime", + "version": "7.1.2", + "description": "babel's modular runtime helpers", "license": "MIT", + "publishConfig": { + "access": "public" + }, "repository": "https://github.com/babel/babel/tree/master/packages/babel-runtime", "author": "Sebastian McKenzie ", "dependencies": { - "core-js": "^2.5.7", "regenerator-runtime": "^0.12.0" - }, - "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helpers": "7.0.0-beta.52", - "@babel/plugin-transform-runtime": "7.0.0-beta.52", - "@babel/preset-env": "7.0.0-beta.52", - "@babel/types": "7.0.0-beta.52" } } diff --git a/packages/babel-runtime/scripts/build-dist.js b/packages/babel-runtime/scripts/build-dist.js deleted file mode 100644 index 62aed66aa935..000000000000 --- a/packages/babel-runtime/scripts/build-dist.js +++ /dev/null @@ -1,165 +0,0 @@ -"use strict"; - -const outputFile = require("output-file-sync"); -const coreDefinitions = require("@babel/plugin-transform-runtime").definitions; -const helpers = require("@babel/helpers"); -const babel = require("@babel/core"); -const t = require("@babel/types"); - -const paths = ["is-iterable", "get-iterator"]; - -Object.keys(coreDefinitions.builtins).forEach((key) => { - const path = coreDefinitions.builtins[key]; - paths.push(path); -}); - -Object.keys(coreDefinitions.methods).forEach((key) => { - const props = coreDefinitions.methods[key]; - Object.keys(props).forEach((key2) => { - const path = props[key2]; - paths.push(path); - }); -}); - -paths.forEach(function(path) { - writeFile( - "core-js/" + path + ".js", - defaultify(`require("core-js/library/fn/${path}")`) - ); -}); - -function relative(filename) { - return `${__dirname}/../${filename}`; -} - -function defaultify(name) { - return `module.exports = ${name};`; -} - -function writeRootFile(filename, content) { - filename = relative(filename); - outputFile(filename, content); -} - -function writeFile(filename, content) { - return writeRootFile(filename, content); -} - -function makeTransformOpts(modules, useBuiltIns) { - const opts = { - presets: [[require("@babel/preset-env"), { modules: false }]], - - plugins: [ - [ - require("@babel/plugin-transform-runtime"), - { useBuiltIns, useESModules: modules === false }, - ], - ], - }; - return opts; -} - -function adjustImportPath(node, relativePath) { - if (helpers.list.indexOf(node.value) >= 0) { - node.value = `./${node.value}`; - } else { - node.value = node.value.replace(/^@babel\/runtime/, relativePath); - } -} - -function buildRuntimeRewritePlugin(relativePath, helperName, dependencies) { - return { - pre(file) { - const original = file.get("helperGenerator"); - file.set("helperGenerator", (name) => { - // make sure that helpers won't insert circular references to themselves - if (name === helperName) return false; - - return original(name); - }); - }, - visitor: { - ImportDeclaration(path) { - adjustImportPath(path.get("source").node, relativePath); - }, - CallExpression(path) { - if ( - !path.get("callee").isIdentifier({ name: "require" }) || - path.get("arguments").length !== 1 || - !path.get("arguments")[0].isStringLiteral() - ) { - return; - } - - // replace any reference to @babel/runtime and other helpers - // with a relative path - adjustImportPath(path.get("arguments")[0].node, relativePath); - }, - }, - }; -} - -function buildRequireCall(id, dep) { - return t.variableDeclaration("var", [ - t.variableDeclarator( - id, - t.callExpression(t.identifier("require"), [t.stringLiteral(dep)]) - ) - ]); -} - -function buildHelper(helperName, modules, useBuiltIns) { - const id = - modules === "commonjs" - ? t.memberExpression(t.identifier("module"), t.identifier("exports")) - : null; - const sourceType = modules === "commonjs" ? "script" : "module"; - - const tree = t.program([], [], sourceType); - const dependencies = {}; - let bindings = null; - - if (modules === "commonjs") { - bindings = []; - for (const dep of helpers.getDependencies(helperName)) { - const id = dependencies[dep] = t.identifier(t.toIdentifier(dep)); - tree.body.push(buildRequireCall(id, dep)); - bindings.push(id.name); - } - } - - const helper = helpers.get( - helperName, - dep => dependencies[dep], - id, - bindings - ); - tree.body.push.apply(tree.body, helper.nodes); - - const transformOpts = makeTransformOpts(modules, useBuiltIns); - - const relative = useBuiltIns ? "../.." : ".."; - - return babel.transformFromAst(tree, null, { - presets: transformOpts.presets, - plugins: transformOpts.plugins.concat([ - buildRuntimeRewritePlugin( - modules === false ? `../${relative}` : relative, - helperName - ), - ]), - }).code; -} - -for (const modules of ["commonjs", false]) { - for (const builtin of [false, true]) { - const dirname = `helpers/${builtin ? "builtin/" : ""}${!modules ? "es6/" : ""}`; - - for (const helperName of helpers.list) { - writeFile( - `${dirname}${helperName}.js`, - buildHelper(helperName, modules, builtin) - ); - } - } -} diff --git a/packages/babel-standalone/package.json b/packages/babel-standalone/package.json index 7b01cdb0edb0..55fed226a74f 100644 --- a/packages/babel-standalone/package.json +++ b/packages/babel-standalone/package.json @@ -1,6 +1,6 @@ { "name": "@babel/standalone", - "version": "7.0.0-beta.52", + "version": "7.1.0", "description": "Standalone build of Babel for use in non-Node.js environments.", "main": "babel.js", "files": [ @@ -9,93 +9,92 @@ "src" ], "devDependencies": { - "@babel/core": "7.0.0-beta.52", - "@babel/helper-plugin-utils": "7.0.0-beta.52", - "@babel/plugin-external-helpers": "7.0.0-beta.52", - "@babel/plugin-proposal-async-generator-functions": "7.0.0-beta.52", - "@babel/plugin-proposal-class-properties": "7.0.0-beta.52", - "@babel/plugin-proposal-decorators": "7.0.0-beta.52", - "@babel/plugin-proposal-do-expressions": "7.0.0-beta.52", - "@babel/plugin-proposal-export-default-from": "7.0.0-beta.52", - "@babel/plugin-proposal-export-namespace-from": "7.0.0-beta.52", - "@babel/plugin-proposal-function-bind": "7.0.0-beta.52", - "@babel/plugin-proposal-object-rest-spread": "7.0.0-beta.52", - "@babel/plugin-proposal-optional-catch-binding": "7.0.0-beta.52", - "@babel/plugin-proposal-pipeline-operator": "7.0.0-beta.52", - "@babel/plugin-proposal-unicode-property-regex": "7.0.0-beta.52", - "@babel/plugin-syntax-async-generators": "7.0.0-beta.52", - "@babel/plugin-syntax-class-properties": "7.0.0-beta.52", - "@babel/plugin-syntax-decorators": "7.0.0-beta.52", - "@babel/plugin-syntax-do-expressions": "7.0.0-beta.52", - "@babel/plugin-syntax-dynamic-import": "7.0.0-beta.52", - "@babel/plugin-syntax-export-default-from": "7.0.0-beta.52", - "@babel/plugin-syntax-export-namespace-from": "7.0.0-beta.52", - "@babel/plugin-syntax-flow": "7.0.0-beta.52", - "@babel/plugin-syntax-function-bind": "7.0.0-beta.52", - "@babel/plugin-syntax-function-sent": "7.0.0-beta.52", - "@babel/plugin-syntax-import-meta": "7.0.0-beta.52", - "@babel/plugin-syntax-jsx": "7.0.0-beta.52", - "@babel/plugin-syntax-object-rest-spread": "7.0.0-beta.52", - "@babel/plugin-syntax-optional-catch-binding": "7.0.0-beta.52", - "@babel/plugin-syntax-pipeline-operator": "7.0.0-beta.52", - "@babel/plugin-syntax-typescript": "7.0.0-beta.52", - "@babel/plugin-transform-arrow-functions": "7.0.0-beta.52", - "@babel/plugin-transform-async-to-generator": "7.0.0-beta.52", - "@babel/plugin-transform-block-scoped-functions": "7.0.0-beta.52", - "@babel/plugin-transform-block-scoping": "7.0.0-beta.52", - "@babel/plugin-transform-classes": "7.0.0-beta.52", - "@babel/plugin-transform-computed-properties": "7.0.0-beta.52", - "@babel/plugin-transform-destructuring": "7.0.0-beta.52", - "@babel/plugin-transform-dotall-regex": "7.0.0-beta.52", - "@babel/plugin-transform-duplicate-keys": "7.0.0-beta.52", - "@babel/plugin-transform-exponentiation-operator": "7.0.0-beta.52", - "@babel/plugin-transform-flow-comments": "7.0.0-beta.52", - "@babel/plugin-transform-flow-strip-types": "7.0.0-beta.52", - "@babel/plugin-transform-for-of": "7.0.0-beta.52", - "@babel/plugin-transform-function-name": "7.0.0-beta.52", - "@babel/plugin-transform-instanceof": "7.0.0-beta.52", - "@babel/plugin-transform-jscript": "7.0.0-beta.52", - "@babel/plugin-transform-literals": "7.0.0-beta.52", - "@babel/plugin-transform-member-expression-literals": "7.0.0-beta.52", - "@babel/plugin-transform-modules-amd": "7.0.0-beta.52", - "@babel/plugin-transform-modules-commonjs": "7.0.0-beta.52", - "@babel/plugin-transform-modules-systemjs": "7.0.0-beta.52", - "@babel/plugin-transform-modules-umd": "7.0.0-beta.52", - "@babel/plugin-transform-new-target": "7.0.0-beta.52", - "@babel/plugin-transform-object-assign": "7.0.0-beta.52", - "@babel/plugin-transform-object-set-prototype-of-to-assign": "7.0.0-beta.52", - "@babel/plugin-transform-object-super": "7.0.0-beta.52", - "@babel/plugin-transform-parameters": "7.0.0-beta.52", - "@babel/plugin-transform-property-literals": "7.0.0-beta.52", - "@babel/plugin-transform-property-mutators": "7.0.0-beta.52", - "@babel/plugin-transform-proto-to-assign": "7.0.0-beta.52", - "@babel/plugin-transform-react-constant-elements": "7.0.0-beta.52", - "@babel/plugin-transform-react-display-name": "7.0.0-beta.52", - "@babel/plugin-transform-react-inline-elements": "7.0.0-beta.52", - "@babel/plugin-transform-react-jsx": "7.0.0-beta.52", - "@babel/plugin-transform-react-jsx-compat": "7.0.0-beta.52", - "@babel/plugin-transform-react-jsx-self": "7.0.0-beta.52", - "@babel/plugin-transform-react-jsx-source": "7.0.0-beta.52", - "@babel/plugin-transform-regenerator": "7.0.0-beta.52", - "@babel/plugin-transform-runtime": "7.0.0-beta.52", - "@babel/plugin-transform-shorthand-properties": "7.0.0-beta.52", - "@babel/plugin-transform-spread": "7.0.0-beta.52", - "@babel/plugin-transform-sticky-regex": "7.0.0-beta.52", - "@babel/plugin-transform-strict-mode": "7.0.0-beta.52", - "@babel/plugin-transform-template-literals": "7.0.0-beta.52", - "@babel/plugin-transform-typeof-symbol": "7.0.0-beta.52", - "@babel/plugin-transform-typescript": "7.0.0-beta.52", - "@babel/plugin-transform-unicode-regex": "7.0.0-beta.52", - "@babel/preset-es2015": "7.0.0-beta.52", - "@babel/preset-es2016": "7.0.0-beta.52", - "@babel/preset-es2017": "7.0.0-beta.52", - "@babel/preset-flow": "7.0.0-beta.52", - "@babel/preset-react": "7.0.0-beta.52", - "@babel/preset-stage-0": "7.0.0-beta.52", - "@babel/preset-stage-1": "7.0.0-beta.52", - "@babel/preset-stage-2": "7.0.0-beta.52", - "@babel/preset-stage-3": "7.0.0-beta.52", - "@babel/preset-typescript": "7.0.0-beta.52" + "@babel/core": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-external-helpers": "^7.0.0", + "@babel/plugin-proposal-async-generator-functions": "^7.0.0", + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-decorators": "^7.0.0", + "@babel/plugin-proposal-do-expressions": "^7.0.0", + "@babel/plugin-proposal-export-default-from": "^7.0.0", + "@babel/plugin-proposal-export-namespace-from": "^7.0.0", + "@babel/plugin-proposal-function-bind": "^7.0.0", + "@babel/plugin-proposal-function-sent": "^7.0.0", + "@babel/plugin-proposal-json-strings": "^7.0.0", + "@babel/plugin-proposal-logical-assignment-operators": "^7.0.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", + "@babel/plugin-proposal-optional-chaining": "^7.0.0", + "@babel/plugin-proposal-pipeline-operator": "^7.0.0", + "@babel/plugin-proposal-throw-expressions": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.0.0", + "@babel/plugin-syntax-async-generators": "^7.0.0", + "@babel/plugin-syntax-class-properties": "^7.0.0", + "@babel/plugin-syntax-decorators": "^7.0.0", + "@babel/plugin-syntax-do-expressions": "^7.0.0", + "@babel/plugin-syntax-dynamic-import": "^7.0.0", + "@babel/plugin-syntax-export-default-from": "^7.0.0", + "@babel/plugin-syntax-export-namespace-from": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.0.0", + "@babel/plugin-syntax-function-bind": "^7.0.0", + "@babel/plugin-syntax-function-sent": "^7.0.0", + "@babel/plugin-syntax-import-meta": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.0.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.0.0", + "@babel/plugin-syntax-pipeline-operator": "^7.0.0", + "@babel/plugin-syntax-typescript": "^7.0.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-async-to-generator": "^7.0.0", + "@babel/plugin-transform-block-scoped-functions": "^7.0.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.0.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.0.0", + "@babel/plugin-transform-dotall-regex": "^7.0.0", + "@babel/plugin-transform-duplicate-keys": "^7.0.0", + "@babel/plugin-transform-exponentiation-operator": "^7.0.0", + "@babel/plugin-transform-flow-comments": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-for-of": "^7.0.0", + "@babel/plugin-transform-function-name": "^7.0.0", + "@babel/plugin-transform-instanceof": "^7.0.0", + "@babel/plugin-transform-jscript": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-member-expression-literals": "^7.0.0", + "@babel/plugin-transform-modules-amd": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-modules-systemjs": "^7.0.0", + "@babel/plugin-transform-modules-umd": "^7.0.0", + "@babel/plugin-transform-new-target": "^7.0.0", + "@babel/plugin-transform-object-assign": "^7.0.0", + "@babel/plugin-transform-object-set-prototype-of-to-assign": "^7.0.0", + "@babel/plugin-transform-object-super": "^7.0.0", + "@babel/plugin-transform-parameters": "^7.0.0", + "@babel/plugin-transform-property-literals": "^7.0.0", + "@babel/plugin-transform-property-mutators": "^7.0.0", + "@babel/plugin-transform-proto-to-assign": "^7.0.0", + "@babel/plugin-transform-react-constant-elements": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-inline-elements": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-react-jsx-compat": "^7.0.0", + "@babel/plugin-transform-react-jsx-self": "^7.0.0", + "@babel/plugin-transform-react-jsx-source": "^7.0.0", + "@babel/plugin-transform-regenerator": "^7.0.0", + "@babel/plugin-transform-runtime": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-sticky-regex": "^7.0.0", + "@babel/plugin-transform-strict-mode": "^7.0.0", + "@babel/plugin-transform-template-literals": "^7.0.0", + "@babel/plugin-transform-typeof-symbol": "^7.0.0", + "@babel/plugin-transform-typescript": "^7.0.0", + "@babel/plugin-transform-unicode-regex": "^7.0.0", + "@babel/preset-flow": "^7.0.0", + "@babel/preset-react": "^7.0.0", + "@babel/preset-typescript": "^7.0.0" }, "keywords": [ "babel", @@ -106,6 +105,9 @@ ], "author": "Daniel Lo Nigro (http://dan.cx/)", "license": "MIT", + "publishConfig": { + "access": "public" + }, "bugs": { "url": "https://github.com/babel/babel-standalone/issues" }, diff --git a/packages/babel-standalone/src/index.js b/packages/babel-standalone/src/index.js index 03fa91efbe13..10fad226a964 100644 --- a/packages/babel-standalone/src/index.js +++ b/packages/babel-standalone/src/index.js @@ -233,10 +233,10 @@ registerPresets({ }; }, react: require("@babel/preset-react"), - "stage-0": require("@babel/preset-stage-0"), - "stage-1": require("@babel/preset-stage-1"), - "stage-2": require("@babel/preset-stage-2"), - "stage-3": require("@babel/preset-stage-3"), + "stage-0": require("./preset-stage-0"), + "stage-1": require("./preset-stage-1"), + "stage-2": require("./preset-stage-2"), + "stage-3": require("./preset-stage-3"), "es2015-loose": { presets: [[require("./preset-es2015"), { loose: true }]], }, diff --git a/packages/babel-standalone/src/preset-es2015.js b/packages/babel-standalone/src/preset-es2015.js index 9f21ae59a82c..c06632f65411 100644 --- a/packages/babel-standalone/src/preset-es2015.js +++ b/packages/babel-standalone/src/preset-es2015.js @@ -24,7 +24,6 @@ import transformES2015Instanceof from "@babel/plugin-transform-instanceof"; import transformRegenerator from "@babel/plugin-transform-regenerator"; export default (_, opts) => { - const moduleTypes = ["commonjs", "cjs", "amd", "umd", "systemjs"]; let loose = false; let modules = "commonjs"; let spec = false; @@ -35,19 +34,6 @@ export default (_, opts) => { if (opts.spec !== undefined) spec = opts.spec; } - if (typeof loose !== "boolean") { - throw new Error("Preset es2015 'loose' option must be a boolean."); - } - if (typeof spec !== "boolean") { - throw new Error("Preset es2015 'spec' option must be a boolean."); - } - if (modules !== false && moduleTypes.indexOf(modules) === -1) { - throw new Error( - "Preset es2015 'modules' option must be 'false' to indicate no modules\n" + - "or a module type which be be one of: 'commonjs' (default), 'amd', 'umd', 'systemjs'", - ); - } - // be DRY const optsLoose = { loose }; diff --git a/packages/babel-standalone/src/preset-stage-0.js b/packages/babel-standalone/src/preset-stage-0.js new file mode 100644 index 000000000000..03426cb11a72 --- /dev/null +++ b/packages/babel-standalone/src/preset-stage-0.js @@ -0,0 +1,29 @@ +import presetStage1 from "./preset-stage-1"; + +import transformFunctionBind from "@babel/plugin-proposal-function-bind"; + +export default (_, opts = {}) => { + const { + loose = false, + useBuiltIns = false, + decoratorsLegacy = false, + decoratorsBeforeExport, + pipelineProposal = "minimal", + } = opts; + + return { + presets: [ + [ + presetStage1, + { + loose, + useBuiltIns, + decoratorsLegacy, + decoratorsBeforeExport, + pipelineProposal, + }, + ], + ], + plugins: [transformFunctionBind], + }; +}; diff --git a/packages/babel-standalone/src/preset-stage-1.js b/packages/babel-standalone/src/preset-stage-1.js new file mode 100644 index 000000000000..4a485df10ad4 --- /dev/null +++ b/packages/babel-standalone/src/preset-stage-1.js @@ -0,0 +1,35 @@ +import presetStage2 from "./preset-stage-2"; + +import transformExportDefaultFrom from "@babel/plugin-proposal-export-default-from"; +import transformLogicalAssignmentOperators from "@babel/plugin-proposal-logical-assignment-operators"; +import transformOptionalChaining from "@babel/plugin-proposal-optional-chaining"; +import transformPipelineOperator from "@babel/plugin-proposal-pipeline-operator"; +import transformNullishCoalescingOperator from "@babel/plugin-proposal-nullish-coalescing-operator"; +import transformDoExpressions from "@babel/plugin-proposal-do-expressions"; + +export default (_, opts = {}) => { + const { + loose = false, + useBuiltIns = false, + decoratorsLegacy = false, + decoratorsBeforeExport, + pipelineProposal = "minimal", + } = opts; + + return { + presets: [ + [ + presetStage2, + { loose, useBuiltIns, decoratorsLegacy, decoratorsBeforeExport }, + ], + ], + plugins: [ + transformExportDefaultFrom, + transformLogicalAssignmentOperators, + [transformOptionalChaining, { loose }], + [transformPipelineOperator, { proposal: pipelineProposal }], + [transformNullishCoalescingOperator, { loose }], + transformDoExpressions, + ], + }; +}; diff --git a/packages/babel-standalone/src/preset-stage-2.js b/packages/babel-standalone/src/preset-stage-2.js new file mode 100644 index 000000000000..689578d35405 --- /dev/null +++ b/packages/babel-standalone/src/preset-stage-2.js @@ -0,0 +1,30 @@ +import presetStage3 from "./preset-stage-3"; + +import transformDecorators from "@babel/plugin-proposal-decorators"; +import transformFunctionSent from "@babel/plugin-proposal-function-sent"; +import transformExportNamespaceFrom from "@babel/plugin-proposal-export-namespace-from"; +import transformNumericSeparator from "@babel/plugin-proposal-numeric-separator"; +import transformThrowExpressions from "@babel/plugin-proposal-throw-expressions"; + +export default (_, opts = {}) => { + const { + loose = false, + useBuiltIns = false, + decoratorsLegacy = false, + decoratorsBeforeExport, + } = opts; + + return { + presets: [[presetStage3, { loose, useBuiltIns }]], + plugins: [ + [ + transformDecorators, + { legacy: decoratorsLegacy, decoratorsBeforeExport }, + ], + transformFunctionSent, + transformExportNamespaceFrom, + transformNumericSeparator, + transformThrowExpressions, + ], + }; +}; diff --git a/packages/babel-standalone/src/preset-stage-3.js b/packages/babel-standalone/src/preset-stage-3.js new file mode 100644 index 000000000000..e16237dbcd4f --- /dev/null +++ b/packages/babel-standalone/src/preset-stage-3.js @@ -0,0 +1,21 @@ +import syntaxDynamicImport from "@babel/plugin-syntax-dynamic-import"; +import syntaxImportMeta from "@babel/plugin-syntax-import-meta"; +import transformClassProperties from "@babel/plugin-proposal-class-properties"; +import transformJsonStrings from "@babel/plugin-proposal-json-strings"; + +export default (_, opts) => { + let loose = false; + + if (opts !== undefined) { + if (opts.loose !== undefined) loose = opts.loose; + } + + return { + plugins: [ + syntaxDynamicImport, + syntaxImportMeta, + [transformClassProperties, { loose }], + transformJsonStrings, + ], + }; +}; diff --git a/packages/babel-standalone/src/transformScriptTags.js b/packages/babel-standalone/src/transformScriptTags.js index 159a224cfbb3..6448a9fe0e25 100644 --- a/packages/babel-standalone/src/transformScriptTags.js +++ b/packages/babel-standalone/src/transformScriptTags.js @@ -161,7 +161,7 @@ function loadScripts(transformFn, scripts) { ...scriptData, content: script.innerHTML, loaded: true, - url: null, + url: script.getAttribute("data-module") || null, }; } }); diff --git a/packages/babel-template/package.json b/packages/babel-template/package.json index 588d654cc26e..bb9f93be7677 100644 --- a/packages/babel-template/package.json +++ b/packages/babel-template/package.json @@ -1,16 +1,18 @@ { "name": "@babel/template", - "version": "7.0.0-beta.52", + "version": "7.1.2", "description": "Generate an AST from a string template.", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", "license": "MIT", + "publishConfig": { + "access": "public" + }, "repository": "https://github.com/babel/babel/tree/master/packages/babel-template", "main": "lib/index.js", "dependencies": { - "@babel/code-frame": "7.0.0-beta.52", - "@babel/parser": "7.0.0-beta.52", - "@babel/types": "7.0.0-beta.52", - "lodash": "^4.17.5" + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.1.2", + "@babel/types": "^7.1.2" } } diff --git a/packages/babel-template/src/options.js b/packages/babel-template/src/options.js index fa1e275a64e9..54e3972de278 100644 --- a/packages/babel-template/src/options.js +++ b/packages/babel-template/src/options.js @@ -64,8 +64,7 @@ export function validate(opts: mixed): TemplateOpts { placeholderPattern, preserveComments, ...parser - } = - opts || {}; + } = opts || {}; if (placeholderWhitelist != null && !(placeholderWhitelist instanceof Set)) { throw new Error( diff --git a/packages/babel-traverse/package.json b/packages/babel-traverse/package.json index 9928bca3d28b..34dd6e487f1d 100644 --- a/packages/babel-traverse/package.json +++ b/packages/babel-traverse/package.json @@ -1,25 +1,27 @@ { "name": "@babel/traverse", - "version": "7.0.0-beta.52", + "version": "7.1.4", "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/", "license": "MIT", + "publishConfig": { + "access": "public" + }, "repository": "https://github.com/babel/babel/tree/master/packages/babel-traverse", "main": "lib/index.js", "dependencies": { - "@babel/code-frame": "7.0.0-beta.52", - "@babel/generator": "7.0.0-beta.52", - "@babel/helper-function-name": "7.0.0-beta.52", - "@babel/helper-split-export-declaration": "7.0.0-beta.52", - "@babel/parser": "7.0.0-beta.52", - "@babel/types": "7.0.0-beta.52", + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.1.3", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/parser": "^7.1.3", + "@babel/types": "^7.1.3", "debug": "^3.1.0", "globals": "^11.1.0", - "invariant": "^2.2.0", - "lodash": "^4.17.5" + "lodash": "^4.17.10" }, "devDependencies": { - "@babel/helper-plugin-test-runner": "7.0.0-beta.52" + "@babel/helper-plugin-test-runner": "^7.0.0" } } diff --git a/packages/babel-traverse/src/hub.js b/packages/babel-traverse/src/hub.js index 69f9406fc9cb..3cd5c645f0e8 100644 --- a/packages/babel-traverse/src/hub.js +++ b/packages/babel-traverse/src/hub.js @@ -1,5 +1,22 @@ -export default class Hub { - constructor(file) { - this.file = file; +import type Scope from "./scope"; + +export interface HubInterface { + getCode(): ?string; + getScope(): ?Scope; + addHelper(name: string): Object; + buildError(node: Object, msg: string, Error: Class): Error; +} + +export default class Hub implements HubInterface { + getCode() {} + + getScope() {} + + addHelper() { + throw new Error("Helpers are not supported by the default hub."); + } + + buildError(node, msg, Error = TypeError): Error { + return new Error(msg); } } diff --git a/packages/babel-traverse/src/index.js b/packages/babel-traverse/src/index.js index db1898f5d57b..5b1ebfdc6ed2 100644 --- a/packages/babel-traverse/src/index.js +++ b/packages/babel-traverse/src/index.js @@ -7,6 +7,7 @@ import * as cache from "./cache"; export { default as NodePath } from "./path"; export { default as Scope } from "./scope"; export { default as Hub } from "./hub"; +export type { HubInterface } from "./hub"; export { visitors }; diff --git a/packages/babel-traverse/src/path/conversion.js b/packages/babel-traverse/src/path/conversion.js index b192b4d9d5ca..cf45cc320b2b 100644 --- a/packages/babel-traverse/src/path/conversion.js +++ b/packages/babel-traverse/src/path/conversion.js @@ -133,7 +133,7 @@ export function arrowFunctionToExpression({ this.get("body").unshiftContainer( "body", t.expressionStatement( - t.callExpression(this.hub.file.addHelper("newArrowCheck"), [ + t.callExpression(this.hub.addHelper("newArrowCheck"), [ t.thisExpression(), checkBinding ? t.identifier(checkBinding.name) diff --git a/packages/babel-traverse/src/path/evaluation.js b/packages/babel-traverse/src/path/evaluation.js index 90029cbe1e3c..a970bd9aee73 100644 --- a/packages/babel-traverse/src/path/evaluation.js +++ b/packages/babel-traverse/src/path/evaluation.js @@ -257,7 +257,7 @@ function _evaluate(path, state) { } if (path.isLogicalExpression()) { - // If we are confident that one side of an && is false, or the left + // If we are confident that the left side of an && is false, or the left // side of an || is true, we can be confident about the entire expression const wasConfident = state.confident; const left = evaluateCached(path.get("left"), state); @@ -265,25 +265,17 @@ function _evaluate(path, state) { state.confident = wasConfident; const right = evaluateCached(path.get("right"), state); const rightConfident = state.confident; - state.confident = leftConfident && rightConfident; switch (node.operator) { case "||": // TODO consider having a "truthy type" that doesn't bail on // left uncertainty but can still evaluate to truthy. - if (left && leftConfident) { - state.confident = true; - return left; - } - + state.confident = leftConfident && (!!left || rightConfident); if (!state.confident) return; return left || right; case "&&": - if ((!left && leftConfident) || (!right && rightConfident)) { - state.confident = true; - } - + state.confident = leftConfident && (!left || rightConfident); if (!state.confident) return; return left && right; diff --git a/packages/babel-traverse/src/path/index.js b/packages/babel-traverse/src/path/index.js index 63c70fecb12f..506a25e95ded 100644 --- a/packages/babel-traverse/src/path/index.js +++ b/packages/babel-traverse/src/path/index.js @@ -1,8 +1,7 @@ -import type Hub from "../hub"; +import type { HubInterface } from "../hub"; import type TraversalContext from "../context"; import * as virtualTypes from "./lib/virtual-types"; import buildDebug from "debug"; -import invariant from "invariant"; import traverse from "../index"; import Scope from "../scope"; import * as t from "@babel/types"; @@ -25,7 +24,7 @@ import * as NodePath_comments from "./comments"; const debug = buildDebug("babel"); export default class NodePath { - constructor(hub: Hub, parent: Object) { + constructor(hub: HubInterface, parent: Object) { this.parent = parent; this.hub = hub; this.contexts = []; @@ -50,7 +49,7 @@ export default class NodePath { } parent: Object; - hub: Hub; + hub: HubInterface; contexts: Array; data: Object; shouldSkip: boolean; @@ -76,7 +75,9 @@ export default class NodePath { hub = parentPath.hub; } - invariant(parent, "To get a node path the parent needs to exist"); + if (!parent) { + throw new Error("To get a node path the parent needs to exist"); + } const targetNode = container[key]; @@ -120,7 +121,7 @@ export default class NodePath { } buildCodeFrameError(msg: string, Error: typeof Error = SyntaxError): Error { - return this.hub.file.buildCodeFrameError(this.node, msg, Error); + return this.hub.buildError(this.node, msg, Error); } traverse(visitor: Object, state?: any) { diff --git a/packages/babel-traverse/src/path/introspection.js b/packages/babel-traverse/src/path/introspection.js index 078fee374039..0752bc88574d 100644 --- a/packages/babel-traverse/src/path/introspection.js +++ b/packages/babel-traverse/src/path/introspection.js @@ -196,10 +196,10 @@ export function referencesImport(moduleSource, importName) { export function getSource() { const node = this.node; if (node.end) { - return this.hub.file.code.slice(node.start, node.end); - } else { - return ""; + const code = this.hub.getCode(); + if (code) return code.slice(node.start, node.end); } + return ""; } export function willIMaybeExecuteBefore(target) { diff --git a/packages/babel-traverse/src/path/modification.js b/packages/babel-traverse/src/path/modification.js index 0092a206522e..b69f527eed6e 100644 --- a/packages/babel-traverse/src/path/modification.js +++ b/packages/babel-traverse/src/path/modification.js @@ -107,7 +107,7 @@ export function insertAfter(nodes) { ) { return parentPath.insertAfter(nodes); } else if ( - this.isNodeType("Expression") || + (this.isNodeType("Expression") && !this.isJSXElement()) || (parentPath.isForStatement() && this.key === "init") ) { if (this.node) { diff --git a/packages/babel-traverse/src/scope/index.js b/packages/babel-traverse/src/scope/index.js index 7c41d5738b63..b91eeeb25c4b 100644 --- a/packages/babel-traverse/src/scope/index.js +++ b/packages/babel-traverse/src/scope/index.js @@ -362,7 +362,7 @@ export default class Scope { (local.kind === "param" && (kind === "let" || kind === "const")); if (duplicate) { - throw this.hub.file.buildCodeFrameError( + throw this.hub.buildError( id, `Duplicate declaration "${name}"`, TypeError, @@ -404,9 +404,7 @@ export default class Scope { console.log(sep); } - toArray(node: Object, i?: number | boolean) { - const file = this.hub.file; - + toArray(node: Object, i?: number) { if (t.isIdentifier(node)) { const binding = this.getBinding(node.name); if (binding && binding.constant && binding.path.isGenericType("Array")) { @@ -444,12 +442,12 @@ export default class Scope { // Used in array-rest to create an array from a subset of an iterable. helperName = "slicedToArray"; - // TODO if (this.hub.file.isLoose("es6.forOf")) helperName += "-loose"; + // TODO if (this.hub.isLoose("es6.forOf")) helperName += "-loose"; } else { // Used in array-rest to create an array helperName = "toArray"; } - return t.callExpression(file.addHelper(helperName), args); + return t.callExpression(this.hub.addHelper(helperName), args); } hasLabel(name: string) { diff --git a/packages/babel-traverse/src/scope/lib/renamer.js b/packages/babel-traverse/src/scope/lib/renamer.js index 317dea76aa80..cdfd90819681 100644 --- a/packages/babel-traverse/src/scope/lib/renamer.js +++ b/packages/babel-traverse/src/scope/lib/renamer.js @@ -108,7 +108,7 @@ export default class Renamer { path.isClassExpression(), ); if (parentDeclar) { - const bindingIds = parentDeclar.getBindingIdentifiers(); + const bindingIds = parentDeclar.getOuterBindingIdentifiers(); if (bindingIds[oldName] === binding.identifier) { // When we are renaming an exported identifier, we need to ensure that // the exported binding keeps the old name. diff --git a/packages/babel-traverse/test/arrow-transform.js b/packages/babel-traverse/test/arrow-transform.js index d0471d9dfe1e..d74ca8f71196 100644 --- a/packages/babel-traverse/test/arrow-transform.js +++ b/packages/babel-traverse/test/arrow-transform.js @@ -13,13 +13,11 @@ function assertConversion( const rootPath = NodePath.get({ hub: { - file: { - addHelper(helperName) { - return t.memberExpression( - t.identifier("babelHelpers"), - t.identifier(helperName), - ); - }, + addHelper(helperName) { + return t.memberExpression( + t.identifier("babelHelpers"), + t.identifier(helperName), + ); }, }, parentPath: null, diff --git a/packages/babel-traverse/test/evaluation.js b/packages/babel-traverse/test/evaluation.js index 5c1b51beb02e..a9502b1c8025 100644 --- a/packages/babel-traverse/test/evaluation.js +++ b/packages/babel-traverse/test/evaluation.js @@ -40,6 +40,29 @@ describe("evaluation", function() { ).toBe(false); }); + it("should short-circuit && and ||", function() { + expect( + getPath("x === 'y' || 42") + .get("body")[0] + .evaluate().confident, + ).toBe(false); + expect( + getPath("x === 'y' && 0") + .get("body")[0] + .evaluate().confident, + ).toBe(false); + expect( + getPath("42 || x === 'y'") + .get("body")[0] + .evaluate().value, + ).toBe(42); + expect( + getPath("0 && x === 'y'") + .get("body")[0] + .evaluate().value, + ).toBe(0); + }); + it("should work with repeated, indeterminate identifiers", function() { expect( getPath("var num = foo(); (num > 0 && num < 100);") diff --git a/packages/babel-traverse/test/fixtures/rename/break-statements/input.js b/packages/babel-traverse/test/fixtures/rename/break-statements/input.js new file mode 100644 index 000000000000..79b15e15ee8d --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/break-statements/input.js @@ -0,0 +1,9 @@ +function f(a) { + a: for (const k in []) { + if (k) { + continue a; + } else { + break a; + } + } +} diff --git a/packages/babel-traverse/test/fixtures/rename/break-statements/options.json b/packages/babel-traverse/test/fixtures/rename/break-statements/options.json new file mode 100644 index 000000000000..14af0e5feac8 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/break-statements/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["./plugin"] +} diff --git a/packages/babel-traverse/test/fixtures/rename/break-statements/output.js b/packages/babel-traverse/test/fixtures/rename/break-statements/output.js new file mode 100644 index 000000000000..89d5cec5a6f7 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/break-statements/output.js @@ -0,0 +1,9 @@ +function f(b) { + a: for (const k in []) { + if (k) { + continue a; + } else { + break a; + } + } +} diff --git a/packages/babel-traverse/test/fixtures/rename/break-statements/plugin.js b/packages/babel-traverse/test/fixtures/rename/break-statements/plugin.js new file mode 100644 index 000000000000..e945a3b7cb73 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/break-statements/plugin.js @@ -0,0 +1,9 @@ +module.exports = function() { + return { + visitor: { + Function(path) { + path.scope.rename("a", "b"); + } + } + }; +} diff --git a/packages/babel-traverse/test/fixtures/rename/property-rename-with-export/input.mjs b/packages/babel-traverse/test/fixtures/rename/property-rename-with-export/input.mjs new file mode 100644 index 000000000000..cee2ccf058f0 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/property-rename-with-export/input.mjs @@ -0,0 +1,2 @@ +export function problem(problem) { } +void { problem: () => problem() }; diff --git a/packages/babel-traverse/test/fixtures/rename/property-rename-with-export/options.json b/packages/babel-traverse/test/fixtures/rename/property-rename-with-export/options.json new file mode 100644 index 000000000000..26c88b827149 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/property-rename-with-export/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-function-name"] +} diff --git a/packages/babel-traverse/test/fixtures/rename/property-rename-with-export/output.mjs b/packages/babel-traverse/test/fixtures/rename/property-rename-with-export/output.mjs new file mode 100644 index 000000000000..413c2b85c5fb --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/property-rename-with-export/output.mjs @@ -0,0 +1,6 @@ +function _problem(problem) {} + +export { _problem as problem }; +void { + problem: () => _problem() +}; diff --git a/packages/babel-traverse/test/hub.js b/packages/babel-traverse/test/hub.js new file mode 100644 index 000000000000..3c8cbe36c4b5 --- /dev/null +++ b/packages/babel-traverse/test/hub.js @@ -0,0 +1,10 @@ +import assert from "assert"; +import { Hub } from "../lib"; + +describe("hub", function() { + it("default buildError should return TypeError", function() { + const hub = new Hub(); + const msg = "test_msg"; + assert.deepEqual(hub.buildError(null, msg), new TypeError(msg)); + }); +}); diff --git a/packages/babel-traverse/test/modification.js b/packages/babel-traverse/test/modification.js index 0f56fe5f9e42..6b08efa0a684 100644 --- a/packages/babel-traverse/test/modification.js +++ b/packages/babel-traverse/test/modification.js @@ -200,6 +200,32 @@ describe("modification", function() { ); }); + it("returns inserted path with nested JSXElement", function() { + const ast = parse("
foo
", { + plugins: ["jsx"], + }); + let path; + traverse(ast, { + Program: function(_path) { + path = _path.get("body.0"); + }, + JSXElement: function(path) { + 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")), + [], + ), + ); + }, + }); + expect(generateCode(path)).toBe( + "
foo
;", + ); + }); + describe("when the parent is an export declaration inserts the node after", function() { it("the ExportNamedDeclaration", function() { const bodyPath = getPath("export function a() {}", { diff --git a/packages/babel-types/package.json b/packages/babel-types/package.json index 279ecdd0efee..05d6f41e409a 100644 --- a/packages/babel-types/package.json +++ b/packages/babel-types/package.json @@ -1,6 +1,6 @@ { "name": "@babel/types", - "version": "7.0.0-beta.52", + "version": "7.1.3", "description": "Babel Types is a Lodash-esque utility library for AST nodes", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -10,11 +10,11 @@ "types": "lib/index.d.ts", "dependencies": { "esutils": "^2.0.2", - "lodash": "^4.17.5", + "lodash": "^4.17.10", "to-fast-properties": "^2.0.0" }, "devDependencies": { - "@babel/generator": "7.0.0-beta.52", - "@babel/parser": "7.0.0-beta.52" + "@babel/generator": "^7.0.0", + "@babel/parser": "^7.0.0" } } diff --git a/packages/babel-types/src/asserts/generated/index.js b/packages/babel-types/src/asserts/generated/index.js index 4fc988f4fd7d..65cb2901e83c 100644 --- a/packages/babel-types/src/asserts/generated/index.js +++ b/packages/babel-types/src/asserts/generated/index.js @@ -762,6 +762,9 @@ export function assertTSIndexSignature(node: Object, opts?: Object = {}): void { export function assertTSAnyKeyword(node: Object, opts?: Object = {}): void { assert("TSAnyKeyword", node, opts); } +export function assertTSUnknownKeyword(node: Object, opts?: Object = {}): void { + assert("TSUnknownKeyword", node, opts); +} export function assertTSNumberKeyword(node: Object, opts?: Object = {}): void { assert("TSNumberKeyword", node, opts); } @@ -822,6 +825,12 @@ export function assertTSArrayType(node: Object, opts?: Object = {}): void { export function assertTSTupleType(node: Object, opts?: Object = {}): void { assert("TSTupleType", node, opts); } +export function assertTSOptionalType(node: Object, opts?: Object = {}): void { + assert("TSOptionalType", node, opts); +} +export function assertTSRestType(node: Object, opts?: Object = {}): void { + assert("TSRestType", node, opts); +} export function assertTSUnionType(node: Object, opts?: Object = {}): void { assert("TSUnionType", node, opts); } diff --git a/packages/babel-types/src/builders/generated/index.js b/packages/babel-types/src/builders/generated/index.js index eda7514c11fe..86ac361d3d76 100644 --- a/packages/babel-types/src/builders/generated/index.js +++ b/packages/babel-types/src/builders/generated/index.js @@ -698,6 +698,11 @@ export function TSAnyKeyword(...args: Array): Object { } export { TSAnyKeyword as tsAnyKeyword }; export { TSAnyKeyword as tSAnyKeyword }; +export function TSUnknownKeyword(...args: Array): Object { + return builder("TSUnknownKeyword", ...args); +} +export { TSUnknownKeyword as tsUnknownKeyword }; +export { TSUnknownKeyword as tSUnknownKeyword }; export function TSNumberKeyword(...args: Array): Object { return builder("TSNumberKeyword", ...args); } @@ -788,6 +793,16 @@ export function TSTupleType(...args: Array): Object { } export { TSTupleType as tsTupleType }; export { TSTupleType as tSTupleType }; +export function TSOptionalType(...args: Array): Object { + return builder("TSOptionalType", ...args); +} +export { TSOptionalType as tsOptionalType }; +export { TSOptionalType as tSOptionalType }; +export function TSRestType(...args: Array): Object { + return builder("TSRestType", ...args); +} +export { TSRestType as tsRestType }; +export { TSRestType as tSRestType }; export function TSUnionType(...args: Array): Object { return builder("TSUnionType", ...args); } diff --git a/packages/babel-types/src/definitions/es2015.js b/packages/babel-types/src/definitions/es2015.js index 26c0d4a34473..1147acd86790 100644 --- a/packages/babel-types/src/definitions/es2015.js +++ b/packages/babel-types/src/definitions/es2015.js @@ -510,6 +510,13 @@ defineType("TaggedTemplateExpression", { quasi: { validate: assertNodeType("TemplateLiteral"), }, + typeParameters: { + validate: assertNodeType( + "TypeParameterInstantiation", + "TSTypeParameterInstantiation", + ), + optional: true, + }, }, }); diff --git a/packages/babel-types/src/definitions/flow.js b/packages/babel-types/src/definitions/flow.js index fa4ad6e52d4c..bb08e9112aac 100644 --- a/packages/babel-types/src/definitions/flow.js +++ b/packages/babel-types/src/definitions/flow.js @@ -277,6 +277,10 @@ defineType("ObjectTypeAnnotation", { validate: assertValueType("boolean"), default: false, }, + // If the inexact flag is present then this is an object type, and not a + // declare class, declare interface, or interface. If it is true, the + // object uses ... to express that it is inexact. + inexact: validateOptional(assertValueType("boolean")), }, }); diff --git a/packages/babel-types/src/definitions/jsx.js b/packages/babel-types/src/definitions/jsx.js index c039450e9535..776714c873f7 100644 --- a/packages/babel-types/src/definitions/jsx.js +++ b/packages/babel-types/src/definitions/jsx.js @@ -73,7 +73,7 @@ defineType("JSXExpressionContainer", { aliases: ["JSX", "Immutable"], fields: { expression: { - validate: assertNodeType("Expression"), + validate: assertNodeType("Expression", "JSXEmptyExpression"), }, }, }); @@ -142,6 +142,13 @@ defineType("JSXOpeningElement", { assertEach(assertNodeType("JSXAttribute", "JSXSpreadAttribute")), ), }, + typeParameters: { + validate: assertNodeType( + "TypeParameterInstantiation", + "TSTypeParameterInstantiation", + ), + optional: true, + }, }, }); diff --git a/packages/babel-types/src/definitions/typescript.js b/packages/babel-types/src/definitions/typescript.js index 270146c5ca16..297185357568 100644 --- a/packages/babel-types/src/definitions/typescript.js +++ b/packages/babel-types/src/definitions/typescript.js @@ -128,6 +128,7 @@ defineType("TSIndexSignature", { const tsKeywordTypes = [ "TSAnyKeyword", + "TSUnknownKeyword", "TSNumberKeyword", "TSObjectKeyword", "TSBooleanKeyword", @@ -212,6 +213,22 @@ defineType("TSTupleType", { }, }); +defineType("TSOptionalType", { + aliases: ["TSType"], + visitor: ["typeAnnotation"], + fields: { + typeAnnotation: validateType("TSType"), + }, +}); + +defineType("TSRestType", { + aliases: ["TSType"], + visitor: ["typeAnnotation"], + fields: { + typeAnnotation: validateType("TSType"), + }, +}); + const unionOrIntersection = { aliases: ["TSType"], visitor: ["types"], diff --git a/packages/babel-types/src/validators/generated/index.js b/packages/babel-types/src/validators/generated/index.js index 42de2ad2e8da..41484fa04871 100644 --- a/packages/babel-types/src/validators/generated/index.js +++ b/packages/babel-types/src/validators/generated/index.js @@ -2406,6 +2406,20 @@ export function isTSAnyKeyword(node: Object, opts?: Object): boolean { return false; } +export function isTSUnknownKeyword(node: Object, opts?: Object): boolean { + if (!node) return false; + + const nodeType = node.type; + if (nodeType === "TSUnknownKeyword") { + if (typeof opts === "undefined") { + return true; + } else { + return shallowEqual(node, opts); + } + } + + return false; +} export function isTSNumberKeyword(node: Object, opts?: Object): boolean { if (!node) return false; @@ -2658,6 +2672,34 @@ export function isTSTupleType(node: Object, opts?: Object): boolean { return false; } +export function isTSOptionalType(node: Object, opts?: Object): boolean { + if (!node) return false; + + const nodeType = node.type; + if (nodeType === "TSOptionalType") { + if (typeof opts === "undefined") { + return true; + } else { + return shallowEqual(node, opts); + } + } + + return false; +} +export function isTSRestType(node: Object, opts?: Object): boolean { + if (!node) return false; + + const nodeType = node.type; + if (nodeType === "TSRestType") { + 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; @@ -4116,6 +4158,7 @@ export function isTSType(node: Object, opts?: Object): boolean { if ( nodeType === "TSType" || "TSAnyKeyword" === nodeType || + "TSUnknownKeyword" === nodeType || "TSNumberKeyword" === nodeType || "TSObjectKeyword" === nodeType || "TSBooleanKeyword" === nodeType || @@ -4134,6 +4177,8 @@ export function isTSType(node: Object, opts?: Object): boolean { "TSTypeLiteral" === nodeType || "TSArrayType" === nodeType || "TSTupleType" === nodeType || + "TSOptionalType" === nodeType || + "TSRestType" === nodeType || "TSUnionType" === nodeType || "TSIntersectionType" === nodeType || "TSConditionalType" === nodeType || diff --git a/packages/babel-types/src/validators/isReferenced.js b/packages/babel-types/src/validators/isReferenced.js index 07c58cc13850..136cde829ede 100644 --- a/packages/babel-types/src/validators/isReferenced.js +++ b/packages/babel-types/src/validators/isReferenced.js @@ -80,6 +80,10 @@ export default function isReferenced(node: Object, parent: Object): boolean { case "RestElement": return false; + case "BreakStatement": + case "ContinueStatement": + return false; + // no: function NODE() {} // no: function foo(NODE) {} case "FunctionDeclaration": diff --git a/scripts/clone-license.sh b/scripts/clone-license.sh new file mode 100755 index 000000000000..e901ca00ba01 --- /dev/null +++ b/scripts/clone-license.sh @@ -0,0 +1,3 @@ +echo "Cloning LICENSE to babel packages" +cat LICENSE +ls -db ./packages/*/ | egrep -v '.*packages\/(babel-parser|babel-plugin-transform-object-assign)\/?$' | xargs -n 1 cp LICENSE diff --git a/scripts/generators/readmes.js b/scripts/generators/readmes.js index 04d754c9a0c2..1ab0b2521409 100644 --- a/scripts/generators/readmes.js +++ b/scripts/generators/readmes.js @@ -66,6 +66,7 @@ yarn add ${name} --dev packages .filter(x => x !== "README.md") // ignore root readme + .filter(x => x.indexOf("babel-preset-stage-") === -1) // ignore stages .forEach(id => { const { name, description } = getPackageJson(id); const readmePath = join(packageDir, id, "README.md"); diff --git a/scripts/generators/typescript.js b/scripts/generators/typescript.js index d2dcd13e9fa1..0cd5ff4042e2 100644 --- a/scripts/generators/typescript.js +++ b/scripts/generators/typescript.js @@ -81,8 +81,12 @@ for (const type in t.NODE_FIELDS) { ); } - if (t.isValidIdentifier(fieldName)) { + const alphaNumeric = /^\w+$/; + + if (t.isValidIdentifier(fieldName) || alphaNumeric.test(fieldName)) { struct.push(`${fieldName}: ${typeAnnotation};`); + } else { + struct.push(`"${fieldName}": ${typeAnnotation};`); } }); diff --git a/scripts/tests/flow/flow_tests_whitelist.txt b/scripts/tests/flow/flow_tests_whitelist.txt index 89872e94e8b8..e9f6d0bc4262 100644 --- a/scripts/tests/flow/flow_tests_whitelist.txt +++ b/scripts/tests/flow/flow_tests_whitelist.txt @@ -15,6 +15,7 @@ async_await/migrated_0020.js async_await/migrated_0024.js async_await/migrated_0027.js async_generators/migrated_0007.js +catch/optional_catch_binding.js class_properties/migrated_0000.js class_properties/migrated_0005.js class_properties/migrated_0011.js @@ -23,7 +24,8 @@ class_properties/migrated_0021.js class_properties/migrated_0026.js decorators/migrated_0003.js decorators/migrated_0007.js -private_class_properties/valid.js +private_class_properties/multiple.js +private_class_properties/super.js types/annotations/migrated_0001.js types/annotations_in_comments_invalid/migrated_0003.js types/annotations/void_is_reserved_param.js diff --git a/scripts/tests/flow/run_babel_parser_flow_tests.js b/scripts/tests/flow/run_babel_parser_flow_tests.js index ec9818721a68..5595262e6abf 100644 --- a/scripts/tests/flow/run_babel_parser_flow_tests.js +++ b/scripts/tests/flow/run_babel_parser_flow_tests.js @@ -115,6 +115,7 @@ const options = { "flowComments", "jsx", "objectRestSpread", + "classPrivateProperties", ], sourceType: "module", ranges: true, diff --git a/scripts/tests/test262/run_babel_parser_test262_utils.js b/scripts/tests/test262/run_babel_parser_test262_utils.js index 705147210672..99f714287a83 100644 --- a/scripts/tests/test262/run_babel_parser_test262_utils.js +++ b/scripts/tests/test262/run_babel_parser_test262_utils.js @@ -13,14 +13,15 @@ const pfs = { const parse = require("../../../packages/babel-parser").parse; const featuresToPlugins = { + "async-iteration": "asyncGenerators", BigInt: "bigInt", - "class-fields-public": "classProperties", "class-fields-private": "classPrivateProperties", - "async-iteration": "asyncGenerators", + "class-fields-public": "classProperties", + "export-star-as-namespace-from-module": "exportNamespaceFrom", + "numeric-separator-literal": "numericSeparator", "object-rest": "objectRestSpread", "object-spread": "objectRestSpread", "optional-catch-binding": "optionalCatchBinding", - "numeric-separator-literal": "numericSeparator", }; function getPlugins(features) { diff --git a/scripts/tests/test262/test262_whitelist.txt b/scripts/tests/test262/test262_whitelist.txt index 8d34948baaf1..47db998bb2d8 100644 --- a/scripts/tests/test262/test262_whitelist.txt +++ b/scripts/tests/test262/test262_whitelist.txt @@ -683,8 +683,6 @@ language/statements/while/labelled-fn-stmt.js(default) language/statements/with/decl-async-fun.js(default) language/statements/with/decl-async-gen.js(default) language/statements/with/labelled-fn-stmt.js(default) -language/white-space/mongolian-vowel-separator.js(default) -language/white-space/mongolian-vowel-separator.js(strict mode) language/identifiers/unicode-escape-nls-err.js(default) language/identifiers/unicode-escape-nls-err.js(strict mode) @@ -698,14 +696,6 @@ language/module-code/privatename-not-valid-earlyerr-module-4.js(default) language/module-code/privatename-not-valid-earlyerr-module-4.js(strict mode) language/expressions/class/fields-duplicate-privatenames.js(default) language/expressions/class/fields-duplicate-privatenames.js(strict mode) -language/expressions/class/fields-initializer-static-private-fields-forbidden.js(default) -language/expressions/class/fields-initializer-static-private-fields-forbidden.js(strict mode) -language/expressions/class/fields-initializer-static-public-fields-forbidden.js(default) -language/expressions/class/fields-initializer-static-public-fields-forbidden.js(strict mode) -language/expressions/class/fields-literal-name-static-private-fields-forbidden.js(default) -language/expressions/class/fields-literal-name-static-private-fields-forbidden.js(strict mode) -language/expressions/class/fields-literal-name-static-public-fields-forbidden.js(default) -language/expressions/class/fields-literal-name-static-public-fields-forbidden.js(strict mode) language/expressions/template-literal/unicode-escape-nls-err.js(default) language/expressions/template-literal/unicode-escape-nls-err.js(strict mode) language/literals/numeric/numeric-separator-literal-nzd-nsl-dds-leading-zero-err.js(default) @@ -715,14 +705,6 @@ language/literals/string/unicode-escape-nls-err-single.js(default) language/literals/string/unicode-escape-nls-err-single.js(strict mode) language/statements/class/fields-duplicate-privatenames.js(default) language/statements/class/fields-duplicate-privatenames.js(strict mode) -language/statements/class/fields-initializer-static-private-fields-forbidden.js(default) -language/statements/class/fields-initializer-static-private-fields-forbidden.js(strict mode) -language/statements/class/fields-initializer-static-public-fields-forbidden.js(default) -language/statements/class/fields-initializer-static-public-fields-forbidden.js(strict mode) -language/statements/class/fields-literal-name-static-private-fields-forbidden.js(default) -language/statements/class/fields-literal-name-static-private-fields-forbidden.js(strict mode) -language/statements/class/fields-literal-name-static-public-fields-forbidden.js(default) -language/statements/class/fields-literal-name-static-public-fields-forbidden.js(strict mode) language/statements/class/privatename-not-valid-earlyerr-script-1.js(default) language/statements/class/privatename-not-valid-earlyerr-script-1.js(strict mode) language/statements/class/privatename-not-valid-earlyerr-script-2.js(default) diff --git a/yarn.lock b/yarn.lock index bd7851cc15c7..1abdf1300e9a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,18 +2,19 @@ # yarn lockfile v1 -"@babel/cli@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.0.0-beta.52.tgz#e8a6e1c239c66c90daeed06d6ce02851536e7445" +"@babel/cli@^7.1.2": + version "7.1.2" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.1.2.tgz#fc2853ae96824b3779ca85de4fd025ce3cf62a5e" + integrity sha512-K3WDlpBPGpoW11SLKFEBhMsITomPovsrZ/wnM3y+WStbytukDXC0OBic3yQp+j058QUw0+R/jfx2obwp1fOzcA== dependencies: commander "^2.8.1" convert-source-map "^1.1.0" - fs-readdir-recursive "^1.0.0" + fs-readdir-recursive "^1.1.0" glob "^7.0.0" - lodash "^4.17.5" + lodash "^4.17.10" mkdirp "^0.5.1" output-file-sync "^2.0.0" - slash "^1.0.0" + slash "^2.0.0" source-map "^0.5.0" optionalDependencies: chokidar "^2.0.3" @@ -21,37 +22,33 @@ "@babel/code-frame@7.0.0-beta.40", "@babel/code-frame@^7.0.0-beta.35": version "7.0.0-beta.40" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.40.tgz#37e2b0cf7c56026b4b21d3927cadf81adec32ac6" + integrity sha512-eVXQSbu/RimU6OKcK2/gDJVTFcxXJI4sHbIqw2mhwMZeQ2as/8AhS9DGkEDoHMBBNJZ5B0US63lF56x+KDcxiA== dependencies: "@babel/highlight" "7.0.0-beta.40" -"@babel/code-frame@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.44.tgz#2a02643368de80916162be70865c97774f3adbd9" - dependencies: - "@babel/highlight" "7.0.0-beta.44" - -"@babel/code-frame@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.52.tgz#192483bfa0d1e467c101571c21029ccb74af2801" +"@babel/code-frame@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" + integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA== dependencies: - "@babel/highlight" "7.0.0-beta.52" + "@babel/highlight" "^7.0.0" -"@babel/core@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.0.0-beta.52.tgz#f27a9a468f8cf9c860aabca5f6084fa52fbc6e55" - dependencies: - "@babel/code-frame" "7.0.0-beta.52" - "@babel/generator" "7.0.0-beta.52" - "@babel/helpers" "7.0.0-beta.52" - "@babel/parser" "7.0.0-beta.52" - "@babel/template" "7.0.0-beta.52" - "@babel/traverse" "7.0.0-beta.52" - "@babel/types" "7.0.0-beta.52" +"@babel/core@^7.1.2": + version "7.1.2" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.1.2.tgz#f8d2a9ceb6832887329a7b60f9d035791400ba4e" + integrity sha512-IFeSSnjXdhDaoysIlev//UzHZbdEmm7D0EIH2qtse9xK7mXEZQpYjs2P00XlP1qYsYvid79p+Zgg6tz1mp6iVw== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/generator" "^7.1.2" + "@babel/helpers" "^7.1.2" + "@babel/parser" "^7.1.2" + "@babel/template" "^7.1.2" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.1.2" convert-source-map "^1.1.0" debug "^3.1.0" json5 "^0.5.0" - lodash "^4.17.5" - micromatch "^3.1.10" + lodash "^4.17.10" resolve "^1.3.2" semver "^5.4.1" source-map "^0.5.0" @@ -59,6 +56,7 @@ "@babel/generator@7.0.0-beta.40": version "7.0.0-beta.40" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.40.tgz#ab61f9556f4f71dbd1138949c795bb9a21e302ea" + integrity sha512-c91BQcXyTq/5aFV4afgOionxZS1dxWt8OghEx5Q52SKssdGRFSiMKnk9tGkev1pYULPJBqjSDZU2Pcuc58ffZw== dependencies: "@babel/types" "7.0.0-beta.40" jsesc "^2.5.1" @@ -66,860 +64,748 @@ source-map "^0.5.0" trim-right "^1.0.1" -"@babel/generator@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.44.tgz#c7e67b9b5284afcf69b309b50d7d37f3e5033d42" +"@babel/generator@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0.tgz#1efd58bffa951dc846449e58ce3a1d7f02d393aa" + integrity sha512-/BM2vupkpbZXq22l1ALO7MqXJZH2k8bKVv8Y+pABFnzWdztDB/ZLveP5At21vLz5c2YtSE6p7j2FZEsqafMz5Q== dependencies: - "@babel/types" "7.0.0-beta.44" + "@babel/types" "^7.0.0" jsesc "^2.5.1" - lodash "^4.2.0" + lodash "^4.17.10" source-map "^0.5.0" trim-right "^1.0.1" -"@babel/generator@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.52.tgz#26968f12fad818cd974c849b286b437e1e8ccd91" +"@babel/generator@^7.1.2": + version "7.1.2" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.1.2.tgz#fde75c072575ce7abbd97322e8fef5bae67e4630" + integrity sha512-70A9HWLS/1RHk3Ck8tNHKxOoKQuSKocYgwDN85Pyl/RBduss6AKxUR7RIZ/lzduQMSYfWEM4DDBu6A+XGbkFig== dependencies: - "@babel/types" "7.0.0-beta.52" + "@babel/types" "^7.1.2" jsesc "^2.5.1" - lodash "^4.17.5" + lodash "^4.17.10" source-map "^0.5.0" trim-right "^1.0.1" -"@babel/helper-annotate-as-pure@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0-beta.52.tgz#4d5bff58385f13b15b2257c5fa9dfa2d2998e615" +"@babel/helper-annotate-as-pure@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" + integrity sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q== dependencies: - "@babel/types" "7.0.0-beta.52" + "@babel/types" "^7.0.0" -"@babel/helper-builder-binary-assignment-operator-visitor@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.0.0-beta.52.tgz#fb188e50a6ba4c3fb33b51a0737eaa3717e94759" +"@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f" + integrity sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w== dependencies: - "@babel/helper-explode-assignable-expression" "7.0.0-beta.52" - "@babel/types" "7.0.0-beta.52" + "@babel/helper-explode-assignable-expression" "^7.1.0" + "@babel/types" "^7.0.0" -"@babel/helper-call-delegate@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.0.0-beta.52.tgz#b68f57e62bf9c49f37ddd2f28562271b26f61a07" +"@babel/helper-call-delegate@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz#6a957f105f37755e8645343d3038a22e1449cc4a" + integrity sha512-YEtYZrw3GUK6emQHKthltKNZwszBcHK58Ygcis+gVUrF4/FmTVr5CCqQNSfmvg2y+YDEANyYoaLz/SHsnusCwQ== dependencies: - "@babel/helper-hoist-variables" "7.0.0-beta.52" - "@babel/traverse" "7.0.0-beta.52" - "@babel/types" "7.0.0-beta.52" + "@babel/helper-hoist-variables" "^7.0.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" -"@babel/helper-define-map@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.0.0-beta.52.tgz#59c1159d432050073f65e73b3d05a54a903e2267" +"@babel/helper-define-map@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz#3b74caec329b3c80c116290887c0dd9ae468c20c" + integrity sha512-yPPcW8dc3gZLN+U1mhYV91QU3n5uTbx7DUdf8NnPbjS0RMwBuHi9Xt2MUgppmNz7CJxTBWsGczTiEp1CSOTPRg== dependencies: - "@babel/helper-function-name" "7.0.0-beta.52" - "@babel/types" "7.0.0-beta.52" - lodash "^4.17.5" + "@babel/helper-function-name" "^7.1.0" + "@babel/types" "^7.0.0" + lodash "^4.17.10" -"@babel/helper-explode-assignable-expression@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.0.0-beta.52.tgz#0893711da77861d30a5f5537c8f2e190413a7e09" +"@babel/helper-explode-assignable-expression@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6" + integrity sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA== dependencies: - "@babel/traverse" "7.0.0-beta.52" - "@babel/types" "7.0.0-beta.52" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" "@babel/helper-function-name@7.0.0-beta.40": version "7.0.0-beta.40" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.40.tgz#9d033341ab16517f40d43a73f2d81fc431ccd7b6" + integrity sha512-cK9BVLtOfisSISTTHXKGvBc2OBh65tjEk4PgXhsSnnH0i8RP2v+5RCxoSlh2y/i+l2fxQqKqv++Qo5RMiwmRCA== dependencies: "@babel/helper-get-function-arity" "7.0.0-beta.40" "@babel/template" "7.0.0-beta.40" "@babel/types" "7.0.0-beta.40" -"@babel/helper-function-name@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.44.tgz#e18552aaae2231100a6e485e03854bc3532d44dd" +"@babel/helper-function-name@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0.tgz#a68cc8d04420ccc663dd258f9cc41b8261efa2d4" + integrity sha512-Zo+LGvfYp4rMtz84BLF3bavFTdf8y4rJtMPTe2J+rxYmnDOIeH8le++VFI/pRJU+rQhjqiXxE4LMaIau28Tv1Q== dependencies: - "@babel/helper-get-function-arity" "7.0.0-beta.44" - "@babel/template" "7.0.0-beta.44" - "@babel/types" "7.0.0-beta.44" + "@babel/helper-get-function-arity" "^7.0.0" + "@babel/template" "^7.0.0" + "@babel/types" "^7.0.0" -"@babel/helper-function-name@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.52.tgz#a867a58ff571b25772b2d799b32866058573c450" +"@babel/helper-function-name@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" + integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw== dependencies: - "@babel/helper-get-function-arity" "7.0.0-beta.52" - "@babel/template" "7.0.0-beta.52" - "@babel/types" "7.0.0-beta.52" + "@babel/helper-get-function-arity" "^7.0.0" + "@babel/template" "^7.1.0" + "@babel/types" "^7.0.0" "@babel/helper-get-function-arity@7.0.0-beta.40": version "7.0.0-beta.40" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.40.tgz#ac0419cf067b0ec16453e1274f03878195791c6e" + integrity sha512-MwquaPznI4cUoZEgHC/XGkddOXtqKqD4DvZDOyJK2LR9Qi6TbMbAhc6IaFoRX7CRTFCmtGeu8gdXW2dBotBBTA== dependencies: "@babel/types" "7.0.0-beta.40" -"@babel/helper-get-function-arity@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.44.tgz#d03ca6dd2b9f7b0b1e6b32c56c72836140db3a15" - dependencies: - "@babel/types" "7.0.0-beta.44" - -"@babel/helper-get-function-arity@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.52.tgz#1c0cda58e0b75f45e92eafbd8fe189a4eee92b74" +"@babel/helper-get-function-arity@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" + integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ== dependencies: - "@babel/types" "7.0.0-beta.52" + "@babel/types" "^7.0.0" -"@babel/helper-hoist-variables@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0-beta.52.tgz#ccd8480e3e19d91ce2cb631b4a374797583e8a8b" +"@babel/helper-hoist-variables@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0.tgz#46adc4c5e758645ae7a45deb92bab0918c23bb88" + integrity sha512-Ggv5sldXUeSKsuzLkddtyhyHe2YantsxWKNi7A+7LeD12ExRDWTRk29JCXpaHPAbMaIPZSil7n+lq78WY2VY7w== dependencies: - "@babel/types" "7.0.0-beta.52" + "@babel/types" "^7.0.0" -"@babel/helper-member-expression-to-functions@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0-beta.52.tgz#b098c54f3b72405b2ac8e9f63e22e3f06cc92719" +"@babel/helper-member-expression-to-functions@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz#8cd14b0a0df7ff00f009e7d7a436945f47c7a16f" + integrity sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg== dependencies: - "@babel/types" "7.0.0-beta.52" + "@babel/types" "^7.0.0" "@babel/helper-module-imports@7.0.0-beta.35": version "7.0.0-beta.35" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0-beta.35.tgz#308e350e731752cdb4d0f058df1d704925c64e0a" + integrity sha512-vaC1KyIZSuyWb3Lj277fX0pxivyHwuDU4xZsofqgYAbkDxNieMg2vuhzP5AgMweMY7fCQUMTi+BgPqTLjkxXFg== dependencies: "@babel/types" "7.0.0-beta.35" lodash "^4.2.0" -"@babel/helper-module-imports@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0-beta.52.tgz#70840e83ae891f94702c6c613787c48ee3c965bb" +"@babel/helper-module-imports@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d" + integrity sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A== dependencies: - "@babel/types" "7.0.0-beta.52" - lodash "^4.17.5" + "@babel/types" "^7.0.0" -"@babel/helper-module-transforms@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.0.0-beta.52.tgz#bc8444ead252a372c928996ae1733deaf3b08c90" - dependencies: - "@babel/helper-module-imports" "7.0.0-beta.52" - "@babel/helper-simple-access" "7.0.0-beta.52" - "@babel/helper-split-export-declaration" "7.0.0-beta.52" - "@babel/template" "7.0.0-beta.52" - "@babel/types" "7.0.0-beta.52" - lodash "^4.17.5" +"@babel/helper-module-transforms@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.1.0.tgz#470d4f9676d9fad50b324cdcce5fbabbc3da5787" + integrity sha512-0JZRd2yhawo79Rcm4w0LwSMILFmFXjugG3yqf+P/UsKsRS1mJCmMwwlHDlMg7Avr9LrvSpp4ZSULO9r8jpCzcw== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-simple-access" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.0.0" + "@babel/template" "^7.1.0" + "@babel/types" "^7.0.0" + lodash "^4.17.10" -"@babel/helper-optimise-call-expression@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0-beta.52.tgz#0aad65208f2db5feb47c393f5ba26da5a5b04617" +"@babel/helper-optimise-call-expression@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5" + integrity sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g== dependencies: - "@babel/types" "7.0.0-beta.52" - -"@babel/helper-plugin-utils@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0-beta.52.tgz#2f058c5f7c3a5fe4bc219036b2e78e11bddeb7ad" + "@babel/types" "^7.0.0" -"@babel/helper-regex@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.0.0-beta.52.tgz#4ad8c7720497afbcd8f897c8a1b2ad03ebcd3061" - dependencies: - lodash "^4.17.5" +"@babel/helper-plugin-utils@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" + integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== -"@babel/helper-remap-async-to-generator@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.0.0-beta.52.tgz#19cc67f464f870901fe7be85e438c770b5f41cb8" +"@babel/helper-regex@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.0.0.tgz#2c1718923b57f9bbe64705ffe5640ac64d9bdb27" + integrity sha512-TR0/N0NDCcUIUEbqV6dCO+LptmmSQFQ7q70lfcEB4URsjD0E1HzicrwUH+ap6BAQ2jhCX9Q4UqZy4wilujWlkg== dependencies: - "@babel/helper-annotate-as-pure" "7.0.0-beta.52" - "@babel/helper-wrap-function" "7.0.0-beta.52" - "@babel/template" "7.0.0-beta.52" - "@babel/traverse" "7.0.0-beta.52" - "@babel/types" "7.0.0-beta.52" + lodash "^4.17.10" -"@babel/helper-replace-supers@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.0.0-beta.52.tgz#5c648a77fe263fc7993d3dbb44ccd617ef7a6cd1" +"@babel/helper-remap-async-to-generator@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f" + integrity sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg== dependencies: - "@babel/helper-member-expression-to-functions" "7.0.0-beta.52" - "@babel/helper-optimise-call-expression" "7.0.0-beta.52" - "@babel/traverse" "7.0.0-beta.52" - "@babel/types" "7.0.0-beta.52" + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-wrap-function" "^7.1.0" + "@babel/template" "^7.1.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" -"@babel/helper-simple-access@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.0.0-beta.52.tgz#d2995ce9c4c9f03fe72af922373677a8eb6424ee" +"@babel/helper-replace-supers@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.1.0.tgz#5fc31de522ec0ef0899dc9b3e7cf6a5dd655f362" + integrity sha512-BvcDWYZRWVuDeXTYZWxekQNO5D4kO55aArwZOTFXw6rlLQA8ZaDicJR1sO47h+HrnCiDFiww0fSPV0d713KBGQ== dependencies: - "@babel/template" "7.0.0-beta.52" - "@babel/types" "7.0.0-beta.52" - lodash "^4.17.5" + "@babel/helper-member-expression-to-functions" "^7.0.0" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" -"@babel/helper-split-export-declaration@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.44.tgz#c0b351735e0fbcb3822c8ad8db4e583b05ebd9dc" +"@babel/helper-simple-access@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c" + integrity sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w== dependencies: - "@babel/types" "7.0.0-beta.44" + "@babel/template" "^7.1.0" + "@babel/types" "^7.0.0" -"@babel/helper-split-export-declaration@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.52.tgz#4aac4f30ea6384af3676e04b5246727632e460df" +"@babel/helper-split-export-declaration@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz#3aae285c0311c2ab095d997b8c9a94cad547d813" + integrity sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag== dependencies: - "@babel/types" "7.0.0-beta.52" + "@babel/types" "^7.0.0" -"@babel/helper-wrap-function@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.0.0-beta.52.tgz#36148e93176299c28a1d2befdb8fe1cc3b79b4b4" +"@babel/helper-wrap-function@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.1.0.tgz#8cf54e9190706067f016af8f75cb3df829cc8c66" + integrity sha512-R6HU3dete+rwsdAfrOzTlE9Mcpk4RjU3aX3gi9grtmugQY0u79X7eogUvfXA5sI81Mfq1cn6AgxihfN33STjJA== dependencies: - "@babel/helper-function-name" "7.0.0-beta.52" - "@babel/template" "7.0.0-beta.52" - "@babel/traverse" "7.0.0-beta.52" - "@babel/types" "7.0.0-beta.52" + "@babel/helper-function-name" "^7.1.0" + "@babel/template" "^7.1.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" -"@babel/helpers@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.0.0-beta.52.tgz#89beebe4e4fd6b22f5d7540716027629408c4a63" +"@babel/helpers@^7.1.2": + version "7.1.2" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.1.2.tgz#ab752e8c35ef7d39987df4e8586c63b8846234b5" + integrity sha512-Myc3pUE8eswD73aWcartxB16K6CGmHDv9KxOmD2CeOs/FaEAQodr3VYGmlvOmog60vNQ2w8QbatuahepZwrHiA== dependencies: - "@babel/template" "7.0.0-beta.52" - "@babel/traverse" "7.0.0-beta.52" - "@babel/types" "7.0.0-beta.52" + "@babel/template" "^7.1.2" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.1.2" "@babel/highlight@7.0.0-beta.40": version "7.0.0-beta.40" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.40.tgz#b43d67d76bf46e1d10d227f68cddcd263786b255" + integrity sha512-mOhhTrzieV6VO7odgzFGFapiwRK0ei8RZRhfzHhb6cpX3QM8XXuCLXWjN8qBB7JReDdUR80V3LFfFrGUYevhNg== dependencies: chalk "^2.0.0" esutils "^2.0.2" js-tokens "^3.0.0" -"@babel/highlight@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.44.tgz#18c94ce543916a80553edcdcf681890b200747d5" - dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^3.0.0" - -"@babel/highlight@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.52.tgz#ef24931432f06155e7bc39cdb8a6b37b4a28b3d0" +"@babel/highlight@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" + integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw== dependencies: chalk "^2.0.0" esutils "^2.0.2" - js-tokens "^3.0.0" - -"@babel/parser@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.0.0-beta.52.tgz#4e935b62cd9bf872bd37bcf1f63d82fe7b0237a2" - -"@babel/plugin-proposal-async-generator-functions@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.0.0-beta.52.tgz#f7d04073ebb50ac8cfc33e8c9725beb60bb41bf1" - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - "@babel/helper-remap-async-to-generator" "7.0.0-beta.52" - "@babel/plugin-syntax-async-generators" "7.0.0-beta.52" + js-tokens "^4.0.0" -"@babel/plugin-proposal-class-properties@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.0.0-beta.52.tgz#8cfca275fb4b6a462db9202970458cb3874fca7b" - dependencies: - "@babel/helper-function-name" "7.0.0-beta.52" - "@babel/helper-member-expression-to-functions" "7.0.0-beta.52" - "@babel/helper-optimise-call-expression" "7.0.0-beta.52" - "@babel/helper-plugin-utils" "7.0.0-beta.52" - "@babel/helper-replace-supers" "7.0.0-beta.52" - "@babel/plugin-syntax-class-properties" "7.0.0-beta.52" - -"@babel/plugin-proposal-decorators@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.0.0-beta.52.tgz#7188142ecb3ab678d26ee610d12ae33488911225" - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - "@babel/plugin-syntax-decorators" "7.0.0-beta.52" - -"@babel/plugin-proposal-do-expressions@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-do-expressions/-/plugin-proposal-do-expressions-7.0.0-beta.52.tgz#3be3d062ea2943ebbbefd435eaec2c3a527bd203" - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - "@babel/plugin-syntax-do-expressions" "7.0.0-beta.52" - -"@babel/plugin-proposal-export-default-from@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.0.0-beta.52.tgz#180428d9c340db2b06467c934b045e1f9334f96e" - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - "@babel/plugin-syntax-export-default-from" "7.0.0-beta.52" - -"@babel/plugin-proposal-export-namespace-from@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.0.0-beta.52.tgz#776abbbf3907d7de8f55ea712ca72ec4b952c0fe" - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - "@babel/plugin-syntax-export-namespace-from" "7.0.0-beta.52" - -"@babel/plugin-proposal-function-bind@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-function-bind/-/plugin-proposal-function-bind-7.0.0-beta.52.tgz#86d1ddcd0bae60473fa0088c7b575e62dec4b5d9" - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - "@babel/plugin-syntax-function-bind" "7.0.0-beta.52" - -"@babel/plugin-proposal-function-sent@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-function-sent/-/plugin-proposal-function-sent-7.0.0-beta.52.tgz#dc4a36c8276d92712cc9fbf60fa4ae0a5fdb6a86" - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - "@babel/helper-wrap-function" "7.0.0-beta.52" - "@babel/plugin-syntax-function-sent" "7.0.0-beta.52" +"@babel/parser@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.0.0.tgz#697655183394facffb063437ddf52c0277698775" + integrity sha512-RgJhNdRinpO8zibnoHbzTTexNs4c8ROkXFBanNDZTLHjwbdLk8J5cJSKulx/bycWTLYmKVNCkxRtVCoJnqPk+g== -"@babel/plugin-proposal-json-strings@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.0.0-beta.52.tgz#64e6a2d45925f3447747028b7e103420964245d5" - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - "@babel/plugin-syntax-json-strings" "7.0.0-beta.52" +"@babel/parser@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.1.0.tgz#a7cd42cb3c12aec52e24375189a47b39759b783e" + integrity sha512-SmjnXCuPAlai75AFtzv+KCBcJ3sDDWbIn+WytKw1k+wAtEy6phqI2RqKh/zAnw53i1NR8su3Ep/UoqaKcimuLg== -"@babel/plugin-proposal-logical-assignment-operators@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.0.0-beta.52.tgz#0980d7a96c9facc2918e956a82c57d7cd07d0856" - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - "@babel/plugin-syntax-logical-assignment-operators" "7.0.0-beta.52" +"@babel/parser@^7.1.2": + version "7.1.2" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.1.2.tgz#85c5c47af6d244fab77bce6b9bd830e38c978409" + integrity sha512-x5HFsW+E/nQalGMw7hu+fvPqnBeBaIr0lWJ2SG0PPL2j+Pm9lYvCrsZJGIgauPIENx0v10INIyFjmSNUD/gSqQ== -"@babel/plugin-proposal-nullish-coalescing-operator@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.0.0-beta.52.tgz#4436ea10499855a849e671d650c14939e6678d21" +"@babel/plugin-proposal-async-generator-functions@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.1.0.tgz#41c1a702e10081456e23a7b74d891922dd1bb6ce" + integrity sha512-Fq803F3Jcxo20MXUSDdmZZXrPe6BWyGcWBPPNB/M7WaUYESKDeKMOGIxEzQOjGSmW/NWb6UaPZrtTB2ekhB/ew== dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - "@babel/plugin-syntax-nullish-coalescing-operator" "7.0.0-beta.52" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-remap-async-to-generator" "^7.1.0" + "@babel/plugin-syntax-async-generators" "^7.0.0" -"@babel/plugin-proposal-numeric-separator@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.0.0-beta.52.tgz#4a4c9c628d00dd3d64c38efdee5439d111b8cf3b" +"@babel/plugin-proposal-class-properties@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.1.0.tgz#9af01856b1241db60ec8838d84691aa0bd1e8df4" + integrity sha512-/PCJWN+CKt5v1xcGn4vnuu13QDoV+P7NcICP44BoonAJoPSGwVkgrXihFIQGiEjjPlUDBIw1cM7wYFLARS2/hw== dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - "@babel/plugin-syntax-numeric-separator" "7.0.0-beta.52" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-member-expression-to-functions" "^7.0.0" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.1.0" + "@babel/plugin-syntax-class-properties" "^7.0.0" -"@babel/plugin-proposal-object-rest-spread@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0-beta.52.tgz#d114cdbdb65c8ab026f840339f0484069c69c75e" +"@babel/plugin-proposal-export-namespace-from@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.0.0.tgz#ce847cc62c3626547107a1b835592b8ee494af51" + integrity sha512-UZuK8lkobh3570vCu0sxDQn+ZlCV6CVLlXe+nNohvPr6/zI5I+j4Ir2fTTCG0ayBQanym0N+29K5+v4c8SATaQ== dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - "@babel/plugin-syntax-object-rest-spread" "7.0.0-beta.52" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-export-namespace-from" "^7.0.0" -"@babel/plugin-proposal-optional-catch-binding@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.0.0-beta.52.tgz#c08a6d211d1f6f84e9771e5efee1e5f92620638a" +"@babel/plugin-proposal-json-strings@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.0.0.tgz#3b4d7b5cf51e1f2e70f52351d28d44fc2970d01e" + integrity sha512-kfVdUkIAGJIVmHmtS/40i/fg/AGnw/rsZBCaapY5yjeO5RA9m165Xbw9KMOu2nqXP5dTFjEjHdfNdoVcHv133Q== dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - "@babel/plugin-syntax-optional-catch-binding" "7.0.0-beta.52" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-json-strings" "^7.0.0" -"@babel/plugin-proposal-optional-chaining@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.0.0-beta.52.tgz#075e501e236bc026e9123f91137c971a79526f57" +"@babel/plugin-proposal-numeric-separator@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.0.0.tgz#08aa02ce62481a84bfd0d9ce7a718adaaaa773dd" + integrity sha512-m4iDNpbBv2rTxxgViAeaqLOStc2wrlVAC5ifp6pjBPG29F56LdlPgf5CQYzj99y3kYeKqsyf/dcMx/r+QfwMZg== dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - "@babel/plugin-syntax-optional-chaining" "7.0.0-beta.52" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-numeric-separator" "^7.0.0" -"@babel/plugin-proposal-pipeline-operator@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-pipeline-operator/-/plugin-proposal-pipeline-operator-7.0.0-beta.52.tgz#a154d50ee1a5acb1ce8f84840e3673159059f823" +"@babel/plugin-proposal-object-rest-spread@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0.tgz#9a17b547f64d0676b6c9cecd4edf74a82ab85e7e" + integrity sha512-14fhfoPcNu7itSen7Py1iGN0gEm87hX/B+8nZPqkdmANyyYWYMY2pjA3r8WXbWVKMzfnSNS0xY8GVS0IjXi/iw== dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - "@babel/plugin-syntax-pipeline-operator" "7.0.0-beta.52" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-object-rest-spread" "^7.0.0" -"@babel/plugin-proposal-throw-expressions@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-throw-expressions/-/plugin-proposal-throw-expressions-7.0.0-beta.52.tgz#fd6b5e99b8957a1515cb67cb67ea3cfa65208746" +"@babel/plugin-proposal-optional-catch-binding@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.0.0.tgz#b610d928fe551ff7117d42c8bb410eec312a6425" + integrity sha512-JPqAvLG1s13B/AuoBjdBYvn38RqW6n1TzrQO839/sIpqLpbnXKacsAgpZHzLD83Sm8SDXMkkrAvEnJ25+0yIpw== dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - "@babel/plugin-syntax-throw-expressions" "7.0.0-beta.52" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.0.0" -"@babel/plugin-proposal-unicode-property-regex@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.0.0-beta.52.tgz#3791a9a7c2a4a54fb39aa4fb70ed78d8b8210ca3" +"@babel/plugin-proposal-unicode-property-regex@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.0.0.tgz#498b39cd72536cd7c4b26177d030226eba08cd33" + integrity sha512-tM3icA6GhC3ch2SkmSxv7J/hCWKISzwycub6eGsDrFDgukD4dZ/I+x81XgW0YslS6mzNuQ1Cbzh5osjIMgepPQ== dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - "@babel/helper-regex" "7.0.0-beta.52" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.0.0" regexpu-core "^4.2.0" -"@babel/plugin-syntax-async-generators@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.0.0-beta.52.tgz#52d99f0e38cadec8240582f3fb792c8190db24c6" - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - -"@babel/plugin-syntax-class-properties@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.0.0-beta.52.tgz#db43035fc9785f310d53202bc1fce2f375cca220" - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - -"@babel/plugin-syntax-decorators@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.0.0-beta.52.tgz#22731b89c84395b971f2d572e7a4d5d10ff5c867" - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - -"@babel/plugin-syntax-do-expressions@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-do-expressions/-/plugin-syntax-do-expressions-7.0.0-beta.52.tgz#d94aa7781a163e4307538e26500b6d2184254427" - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - -"@babel/plugin-syntax-dynamic-import@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.0.0-beta.52.tgz#a2d9c7de13df9f8c259b5ecbd1582aae01ce2077" - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - -"@babel/plugin-syntax-export-default-from@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.0.0-beta.52.tgz#9e48190447e48f7720811f9903c93f305cbc4a13" - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - -"@babel/plugin-syntax-export-namespace-from@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.0.0-beta.52.tgz#e14c7f138f265f9e26e533cacfae0ef46170cfa9" - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - -"@babel/plugin-syntax-flow@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.0.0-beta.52.tgz#8125c1de15b352cb71f6e22200f888a546772c8c" - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - -"@babel/plugin-syntax-function-bind@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-function-bind/-/plugin-syntax-function-bind-7.0.0-beta.52.tgz#4636f8414c2cf09eb27c01b76696d4136e36c9b2" - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - -"@babel/plugin-syntax-function-sent@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-function-sent/-/plugin-syntax-function-sent-7.0.0-beta.52.tgz#3209635a8902876b2d5c801b3786997215d60207" - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - -"@babel/plugin-syntax-import-meta@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.0.0-beta.52.tgz#b7f9e8929b7b112333f60428c6fb958f6487ff47" - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - -"@babel/plugin-syntax-json-strings@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.0.0-beta.52.tgz#b2215255a919c628cdb9f0ed4eae8d8e69c759f4" - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - -"@babel/plugin-syntax-logical-assignment-operators@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.0.0-beta.52.tgz#dbd5e24999fdcd9c071a960cc71b8ac2451ab5c8" +"@babel/plugin-syntax-async-generators@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.0.0.tgz#bf0891dcdbf59558359d0c626fdc9490e20bc13c" + integrity sha512-im7ged00ddGKAjcZgewXmp1vxSZQQywuQXe2B1A7kajjZmDeY/ekMPmWr9zJgveSaQH0k7BcGrojQhcK06l0zA== dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-nullish-coalescing-operator@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.0.0-beta.52.tgz#06c4d6f3054e04b26685e3a7775050b3bed20e04" +"@babel/plugin-syntax-class-properties@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.0.0.tgz#e051af5d300cbfbcec4a7476e37a803489881634" + integrity sha512-cR12g0Qzn4sgkjrbrzWy2GE7m9vMl/sFkqZ3gIpAQdrvPDnLM8180i+ANDFIXfjHo9aqp0ccJlQ0QNZcFUbf9w== dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-numeric-separator@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.0.0-beta.52.tgz#4514264019b8fead3af36d5e873bc1ac004e9aa9" +"@babel/plugin-syntax-export-namespace-from@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.0.0.tgz#17a7389a1d2571ac4d9b77ea2defa74a930edf5d" + integrity sha512-l314XT1eMa0MWboSmG4BdKukHfSpSpQRenUoZmEpL6hqc5nc1/ddpLETjPB77gZE1dZ9qxy5D3U3UUjjcX2d4g== dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-object-rest-spread@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0-beta.52.tgz#6729807874ea6cd9fd2104c4662637724441524e" +"@babel/plugin-syntax-flow@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.0.0.tgz#70638aeaad9ee426bc532e51523cff8ff02f6f17" + integrity sha512-zGcuZWiWWDa5qTZ6iAnpG0fnX/GOu49pGR5PFvkQ9GmKNaSphXQnlNXh/LG20sqWtNrx/eB6krzfEzcwvUyeFA== dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-optional-catch-binding@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.0.0-beta.52.tgz#1e5a568cb477af25ee9a07f6c865b73b0533e9e9" +"@babel/plugin-syntax-json-strings@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.0.0.tgz#0d259a68090e15b383ce3710e01d5b23f3770cbd" + integrity sha512-UlSfNydC+XLj4bw7ijpldc1uZ/HB84vw+U6BTuqMdIEmz/LDe63w/GHtpQMdXWdqQZFeAI9PjnHe/vDhwirhKA== dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-optional-chaining@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.0.0-beta.52.tgz#75a69988519ac6c6b2f699e7dd9fa5c3619e46c6" +"@babel/plugin-syntax-numeric-separator@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.0.0.tgz#9594c7ce6ce8089a14d732cb9f6b1eeb047413ba" + integrity sha512-t9RMUPWsFXVeUZxEOhIDkVqYLi1sWOTjxFBAp8wJtaARilvkGlEQvSObd2W5YKicDktINI9XmdV0sB2FZaLOpw== dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-pipeline-operator@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-pipeline-operator/-/plugin-syntax-pipeline-operator-7.0.0-beta.52.tgz#ee7891771d0763c75d0ecd1864f23d862445b88a" +"@babel/plugin-syntax-object-rest-spread@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0.tgz#37d8fbcaf216bd658ea1aebbeb8b75e88ebc549b" + integrity sha512-5A0n4p6bIiVe5OvQPxBnesezsgFJdHhSs3uFSvaPdMqtsovajLZ+G2vZyvNe10EzJBWWo3AcHGKhAFUxqwp2dw== dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-throw-expressions@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-throw-expressions/-/plugin-syntax-throw-expressions-7.0.0-beta.52.tgz#6fdfba95cefad5bad0fd045a4a6223aafa5fcfe2" +"@babel/plugin-syntax-optional-catch-binding@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.0.0.tgz#886f72008b3a8b185977f7cb70713b45e51ee475" + integrity sha512-Wc+HVvwjcq5qBg1w5RG9o9RVzmCaAg/Vp0erHCKpAYV8La6I94o4GQAmFYNmkzoMO6gzoOSulpKeSSz6mPEoZw== dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-arrow-functions@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.0.0-beta.52.tgz#85e7e84ccf065e7292ec60019ecb616b360cbf18" +"@babel/plugin-transform-arrow-functions@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.0.0.tgz#a6c14875848c68a3b4b3163a486535ef25c7e749" + integrity sha512-2EZDBl1WIO/q4DIkIp4s86sdp4ZifL51MoIviLY/gG/mLSuOIEg7J8o6mhbxOTvUJkaN50n+8u41FVsr5KLy/w== dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-async-to-generator@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.0.0-beta.52.tgz#990dc0864a1734d63f138f8e44713f30ad68af3e" +"@babel/plugin-transform-async-to-generator@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.1.0.tgz#109e036496c51dd65857e16acab3bafdf3c57811" + integrity sha512-rNmcmoQ78IrvNCIt/R9U+cixUHeYAzgusTFgIAv+wQb9HJU4szhpDD6e5GCACmj/JP5KxuCwM96bX3L9v4ZN/g== dependencies: - "@babel/helper-module-imports" "7.0.0-beta.52" - "@babel/helper-plugin-utils" "7.0.0-beta.52" - "@babel/helper-remap-async-to-generator" "7.0.0-beta.52" + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-remap-async-to-generator" "^7.1.0" -"@babel/plugin-transform-block-scoped-functions@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.0.0-beta.52.tgz#87af7f3f3989b694e75e973e84f8c9c5685a8c50" +"@babel/plugin-transform-block-scoped-functions@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.0.0.tgz#482b3f75103927e37288b3b67b65f848e2aa0d07" + integrity sha512-AOBiyUp7vYTqz2Jibe1UaAWL0Hl9JUXEgjFvvvcSc9MVDItv46ViXFw2F7SVt1B5k+KWjl44eeXOAk3UDEaJjQ== dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-block-scoping@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.0.0-beta.52.tgz#52e994d77085c6fdf05b2d89654755ec008eb54a" +"@babel/plugin-transform-block-scoping@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.0.0.tgz#1745075edffd7cdaf69fab2fb6f9694424b7e9bc" + integrity sha512-GWEMCrmHQcYWISilUrk9GDqH4enf3UmhOEbNbNrlNAX1ssH3MsS1xLOS6rdjRVPgA7XXVPn87tRkdTEoA/dxEg== dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - lodash "^4.17.5" + "@babel/helper-plugin-utils" "^7.0.0" + lodash "^4.17.10" -"@babel/plugin-transform-classes@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.0.0-beta.52.tgz#08b1b664a7769b685c3ece2f3eab01832f272019" - dependencies: - "@babel/helper-annotate-as-pure" "7.0.0-beta.52" - "@babel/helper-define-map" "7.0.0-beta.52" - "@babel/helper-function-name" "7.0.0-beta.52" - "@babel/helper-optimise-call-expression" "7.0.0-beta.52" - "@babel/helper-plugin-utils" "7.0.0-beta.52" - "@babel/helper-replace-supers" "7.0.0-beta.52" - "@babel/helper-split-export-declaration" "7.0.0-beta.52" +"@babel/plugin-transform-classes@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.1.0.tgz#ab3f8a564361800cbc8ab1ca6f21108038432249" + integrity sha512-rNaqoD+4OCBZjM7VaskladgqnZ1LO6o2UxuWSDzljzW21pN1KXkB7BstAVweZdxQkHAujps5QMNOTWesBciKFg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-define-map" "^7.1.0" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.0.0" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.0.0-beta.52.tgz#d7d6ff57e96b6df1893f5cec4a61a2556a9f1f43" +"@babel/plugin-transform-computed-properties@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.0.0.tgz#2fbb8900cd3e8258f2a2ede909b90e7556185e31" + integrity sha512-ubouZdChNAv4AAWAgU7QKbB93NU5sHwInEWfp+/OzJKA02E6Woh9RVoX4sZrbRwtybky/d7baTUqwFx+HgbvMA== dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-destructuring@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.0.0-beta.52.tgz#ab4be06255be720559863c03bcafaa8e43f4ac8a" +"@babel/plugin-transform-destructuring@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.0.0.tgz#68e911e1935dda2f06b6ccbbf184ffb024e9d43a" + integrity sha512-Fr2GtF8YJSXGTyFPakPFB4ODaEKGU04bPsAllAIabwoXdFrPxL0LVXQX5dQWoxOjjgozarJcC9eWGsj0fD6Zsg== dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-dotall-regex@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.0.0-beta.52.tgz#caefead9870a06410ebc807d07b31b85fc46cd3c" +"@babel/plugin-transform-dotall-regex@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.0.0.tgz#73a24da69bc3c370251f43a3d048198546115e58" + integrity sha512-00THs8eJxOJUFVx1w8i1MBF4XH4PsAjKjQ1eqN/uCH3YKwP21GCKfrn6YZFZswbOk9+0cw1zGQPHVc1KBlSxig== dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - "@babel/helper-regex" "7.0.0-beta.52" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.0.0" regexpu-core "^4.1.3" -"@babel/plugin-transform-duplicate-keys@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.0.0-beta.52.tgz#98dccf5199a8be89eb159c316f68a4ea44f99ce6" +"@babel/plugin-transform-duplicate-keys@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.0.0.tgz#a0601e580991e7cace080e4cf919cfd58da74e86" + integrity sha512-w2vfPkMqRkdxx+C71ATLJG30PpwtTpW7DDdLqYt2acXU7YjztzeWW2Jk1T6hKqCLYCcEA5UQM/+xTAm+QCSnuQ== dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-exponentiation-operator@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.0.0-beta.52.tgz#e65ca848b586bf4d2b2fd184ab75383fb5567277" +"@babel/plugin-transform-exponentiation-operator@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.1.0.tgz#9c34c2ee7fd77e02779cfa37e403a2e1003ccc73" + integrity sha512-uZt9kD1Pp/JubkukOGQml9tqAeI8NkE98oZnHZ2qHRElmeKCodbTZgOEUtujSCSLhHSBWbzNiFSDIMC4/RBTLQ== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "7.0.0-beta.52" - "@babel/helper-plugin-utils" "7.0.0-beta.52" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-flow-strip-types@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.0.0-beta.52.tgz#321c1dd84ba44ee3429f995c7bf58cd0ababb714" +"@babel/plugin-transform-flow-strip-types@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.0.0.tgz#c40ced34c2783985d90d9f9ac77a13e6fb396a01" + integrity sha512-WhXUNb4It5a19RsgKKbQPrjmy4yWOY1KynpEbNw7bnd1QTcrT/EIl3MJvnGgpgvrKyKbqX7nUNOJfkpLOnoDKA== dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - "@babel/plugin-syntax-flow" "7.0.0-beta.52" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-flow" "^7.0.0" -"@babel/plugin-transform-for-of@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.0.0-beta.52.tgz#42e678de92b39387e7bb3a5e784b00b7ffe85ea7" +"@babel/plugin-transform-for-of@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.0.0.tgz#f2ba4eadb83bd17dc3c7e9b30f4707365e1c3e39" + integrity sha512-TlxKecN20X2tt2UEr2LNE6aqA0oPeMT1Y3cgz8k4Dn1j5ObT8M3nl9aA37LLklx0PBZKETC9ZAf9n/6SujTuXA== dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-function-name@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.0.0-beta.52.tgz#2401dbb7bf8af0149845283034f39b127ccc4d5e" +"@babel/plugin-transform-function-name@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.1.0.tgz#29c5550d5c46208e7f730516d41eeddd4affadbb" + integrity sha512-VxOa1TMlFMtqPW2IDYZQaHsFrq/dDoIjgN098NowhexhZcz3UGlvPgZXuE1jEvNygyWyxRacqDpCZt+par1FNg== dependencies: - "@babel/helper-function-name" "7.0.0-beta.52" - "@babel/helper-plugin-utils" "7.0.0-beta.52" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-literals@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.0.0-beta.52.tgz#6e9861a8698700dbe27b2eb9762c98cf51e8e76f" +"@babel/plugin-transform-literals@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.0.0.tgz#2aec1d29cdd24c407359c930cdd89e914ee8ff86" + integrity sha512-1NTDBWkeNXgpUcyoVFxbr9hS57EpZYXpje92zv0SUzjdu3enaRwF/l3cmyRnXLtIdyJASyiS6PtybK+CgKf7jA== dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-modules-amd@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.0.0-beta.52.tgz#654b6f3b40aef9d9a83767820d75cb57a256fdc0" +"@babel/plugin-transform-modules-amd@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.1.0.tgz#f9e0a7072c12e296079b5a59f408ff5b97bf86a8" + integrity sha512-wt8P+xQ85rrnGNr2x1iV3DW32W8zrB6ctuBkYBbf5/ZzJY99Ob4MFgsZDFgczNU76iy9PWsy4EuxOliDjdKw6A== dependencies: - "@babel/helper-module-transforms" "7.0.0-beta.52" - "@babel/helper-plugin-utils" "7.0.0-beta.52" + "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-modules-commonjs@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.0.0-beta.52.tgz#0104ef183cdc2fd43d0860211cccce79ef18017e" +"@babel/plugin-transform-modules-commonjs@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.1.0.tgz#0a9d86451cbbfb29bd15186306897c67f6f9a05c" + integrity sha512-wtNwtMjn1XGwM0AXPspQgvmE6msSJP15CX2RVfpTSTNPLhKhaOjaIfBaVfj4iUZ/VrFSodcFedwtPg/NxwQlPA== dependencies: - "@babel/helper-module-transforms" "7.0.0-beta.52" - "@babel/helper-plugin-utils" "7.0.0-beta.52" - "@babel/helper-simple-access" "7.0.0-beta.52" + "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-simple-access" "^7.1.0" -"@babel/plugin-transform-modules-systemjs@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.0.0-beta.52.tgz#38223827dc79486dfdf125ab64886ed3780626d7" +"@babel/plugin-transform-modules-systemjs@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.0.0.tgz#8873d876d4fee23209decc4d1feab8f198cf2df4" + integrity sha512-8EDKMAsitLkiF/D4Zhe9CHEE2XLh4bfLbb9/Zf3FgXYQOZyZYyg7EAel/aT2A7bHv62jwHf09q2KU/oEexr83g== dependencies: - "@babel/helper-hoist-variables" "7.0.0-beta.52" - "@babel/helper-plugin-utils" "7.0.0-beta.52" + "@babel/helper-hoist-variables" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-modules-umd@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.0.0-beta.52.tgz#0c5f7e98eaabb18b5ccd500b5f7d23ed3c2840e9" +"@babel/plugin-transform-modules-umd@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.1.0.tgz#a29a7d85d6f28c3561c33964442257cc6a21f2a8" + integrity sha512-enrRtn5TfRhMmbRwm7F8qOj0qEYByqUvTttPEGimcBH4CJHphjyK1Vg7sdU7JjeEmgSpM890IT/efS2nMHwYig== dependencies: - "@babel/helper-module-transforms" "7.0.0-beta.52" - "@babel/helper-plugin-utils" "7.0.0-beta.52" + "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-new-target@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0-beta.52.tgz#573f474640773cd8da2a2983291b9d6d471b08fa" +"@babel/plugin-transform-new-target@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz#ae8fbd89517fa7892d20e6564e641e8770c3aa4a" + integrity sha512-yin069FYjah+LbqfGeTfzIBODex/e++Yfa0rH0fpfam9uTbuEeEOx5GLGr210ggOV77mVRNoeqSYqeuaqSzVSw== dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-object-super@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.0.0-beta.52.tgz#06354288ab303480da2fe3a68186d4e4582a7dbf" +"@babel/plugin-transform-object-super@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.1.0.tgz#b1ae194a054b826d8d4ba7ca91486d4ada0f91bb" + integrity sha512-/O02Je1CRTSk2SSJaq0xjwQ8hG4zhZGNjE8psTsSNPXyLRCODv7/PBozqT5AmQMzp7MI3ndvMhGdqp9c96tTEw== dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - "@babel/helper-replace-supers" "7.0.0-beta.52" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.1.0" -"@babel/plugin-transform-parameters@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.0.0-beta.52.tgz#42be565751b1b4ebf861dc6bc8b0aef4fd428608" +"@babel/plugin-transform-parameters@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.1.0.tgz#44f492f9d618c9124026e62301c296bf606a7aed" + integrity sha512-vHV7oxkEJ8IHxTfRr3hNGzV446GAb+0hgbA7o/0Jd76s+YzccdWuTU296FOCOl/xweU4t/Ya4g41yWz80RFCRw== dependencies: - "@babel/helper-call-delegate" "7.0.0-beta.52" - "@babel/helper-get-function-arity" "7.0.0-beta.52" - "@babel/helper-plugin-utils" "7.0.0-beta.52" + "@babel/helper-call-delegate" "^7.1.0" + "@babel/helper-get-function-arity" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-regenerator@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0-beta.52.tgz#54ffe4b9d7d0d338b9ad46e1ec99b360a5524c9f" +"@babel/plugin-transform-regenerator@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0.tgz#5b41686b4ed40bef874d7ed6a84bdd849c13e0c1" + integrity sha512-sj2qzsEx8KDVv1QuJc/dEfilkg3RRPvPYx/VnKLtItVQRWt1Wqf5eVCOLZm29CiGFfYYsA3VPjfizTCV0S0Dlw== dependencies: regenerator-transform "^0.13.3" -"@babel/plugin-transform-shorthand-properties@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.0.0-beta.52.tgz#f3cd777643d66878842a1bad5b95b4cc0b5ecb97" +"@babel/plugin-transform-runtime@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.1.0.tgz#9f76920d42551bb577e2dc594df229b5f7624b63" + integrity sha512-WFLMgzu5DLQEah0lKTJzYb14vd6UiES7PTnXcvrPZ1VrwFeJ+mTbvr65fFAsXYMt2bIoOoC0jk76zY1S7HZjUg== dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + resolve "^1.8.1" + semver "^5.5.1" -"@babel/plugin-transform-spread@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.0.0-beta.52.tgz#343709a6dd33c0b5ceff49f267ae96c922596522" +"@babel/plugin-transform-shorthand-properties@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.0.0.tgz#85f8af592dcc07647541a0350e8c95c7bf419d15" + integrity sha512-g/99LI4vm5iOf5r1Gdxq5Xmu91zvjhEG5+yZDJW268AZELAu4J1EiFLnkSG3yuUsZyOipVOVUKoGPYwfsTymhw== dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-sticky-regex@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.0.0-beta.52.tgz#5c8af3d6a48d658e0cbd6fb67631f8a4889eac2b" +"@babel/plugin-transform-spread@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.0.0.tgz#93583ce48dd8c85e53f3a46056c856e4af30b49b" + integrity sha512-L702YFy2EvirrR4shTj0g2xQp7aNwZoWNCkNu2mcoU0uyzMl0XRwDSwzB/xp6DSUFiBmEXuyAyEN16LsgVqGGQ== dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - "@babel/helper-regex" "7.0.0-beta.52" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-template-literals@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.0.0-beta.52.tgz#bbd235b259ed134f413e8cb31dfcb82d50f41368" +"@babel/plugin-transform-sticky-regex@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.0.0.tgz#30a9d64ac2ab46eec087b8530535becd90e73366" + integrity sha512-LFUToxiyS/WD+XEWpkx/XJBrUXKewSZpzX68s+yEOtIbdnsRjpryDw9U06gYc6klYEij/+KQVRnD3nz3AoKmjw== dependencies: - "@babel/helper-annotate-as-pure" "7.0.0-beta.52" - "@babel/helper-plugin-utils" "7.0.0-beta.52" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.0.0" -"@babel/plugin-transform-typeof-symbol@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.0.0-beta.52.tgz#77070d409f8e199c38911e2b5835db761b9a56d7" +"@babel/plugin-transform-template-literals@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.0.0.tgz#084f1952efe5b153ddae69eb8945f882c7a97c65" + integrity sha512-vA6rkTCabRZu7Nbl9DfLZE1imj4tzdWcg5vtdQGvj+OH9itNNB6hxuRMHuIY8SGnEt1T9g5foqs9LnrHzsqEFg== dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-unicode-regex@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.0.0-beta.52.tgz#9f95e2fd37eac65594da35e90e78262955d86cbb" +"@babel/plugin-transform-typeof-symbol@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.0.0.tgz#4dcf1e52e943e5267b7313bff347fdbe0f81cec9" + integrity sha512-1r1X5DO78WnaAIvs5uC48t41LLckxsYklJrZjNKcevyz83sF2l4RHbw29qrCPr/6ksFsdfRpT/ZgxNWHXRnffg== dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - "@babel/helper-regex" "7.0.0-beta.52" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-unicode-regex@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.0.0.tgz#c6780e5b1863a76fe792d90eded9fcd5b51d68fc" + integrity sha512-uJBrJhBOEa3D033P95nPHu3nbFwFE9ZgXsfEitzoIXIwqAZWk7uXcg06yFKXz9FSxBH5ucgU/cYdX0IV8ldHKw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.0.0" regexpu-core "^4.1.3" -"@babel/preset-env@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.0.0-beta.52.tgz#1e833fb8698f51e345ad7d33fbab26d0ce81989d" - dependencies: - "@babel/helper-module-imports" "7.0.0-beta.52" - "@babel/helper-plugin-utils" "7.0.0-beta.52" - "@babel/plugin-proposal-async-generator-functions" "7.0.0-beta.52" - "@babel/plugin-proposal-object-rest-spread" "7.0.0-beta.52" - "@babel/plugin-proposal-optional-catch-binding" "7.0.0-beta.52" - "@babel/plugin-proposal-unicode-property-regex" "7.0.0-beta.52" - "@babel/plugin-syntax-async-generators" "7.0.0-beta.52" - "@babel/plugin-syntax-object-rest-spread" "7.0.0-beta.52" - "@babel/plugin-syntax-optional-catch-binding" "7.0.0-beta.52" - "@babel/plugin-transform-arrow-functions" "7.0.0-beta.52" - "@babel/plugin-transform-async-to-generator" "7.0.0-beta.52" - "@babel/plugin-transform-block-scoped-functions" "7.0.0-beta.52" - "@babel/plugin-transform-block-scoping" "7.0.0-beta.52" - "@babel/plugin-transform-classes" "7.0.0-beta.52" - "@babel/plugin-transform-computed-properties" "7.0.0-beta.52" - "@babel/plugin-transform-destructuring" "7.0.0-beta.52" - "@babel/plugin-transform-dotall-regex" "7.0.0-beta.52" - "@babel/plugin-transform-duplicate-keys" "7.0.0-beta.52" - "@babel/plugin-transform-exponentiation-operator" "7.0.0-beta.52" - "@babel/plugin-transform-for-of" "7.0.0-beta.52" - "@babel/plugin-transform-function-name" "7.0.0-beta.52" - "@babel/plugin-transform-literals" "7.0.0-beta.52" - "@babel/plugin-transform-modules-amd" "7.0.0-beta.52" - "@babel/plugin-transform-modules-commonjs" "7.0.0-beta.52" - "@babel/plugin-transform-modules-systemjs" "7.0.0-beta.52" - "@babel/plugin-transform-modules-umd" "7.0.0-beta.52" - "@babel/plugin-transform-new-target" "7.0.0-beta.52" - "@babel/plugin-transform-object-super" "7.0.0-beta.52" - "@babel/plugin-transform-parameters" "7.0.0-beta.52" - "@babel/plugin-transform-regenerator" "7.0.0-beta.52" - "@babel/plugin-transform-shorthand-properties" "7.0.0-beta.52" - "@babel/plugin-transform-spread" "7.0.0-beta.52" - "@babel/plugin-transform-sticky-regex" "7.0.0-beta.52" - "@babel/plugin-transform-template-literals" "7.0.0-beta.52" - "@babel/plugin-transform-typeof-symbol" "7.0.0-beta.52" - "@babel/plugin-transform-unicode-regex" "7.0.0-beta.52" - browserslist "^3.0.0" +"@babel/preset-env@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.1.0.tgz#e67ea5b0441cfeab1d6f41e9b5c79798800e8d11" + integrity sha512-ZLVSynfAoDHB/34A17/JCZbyrzbQj59QC1Anyueb4Bwjh373nVPq5/HMph0z+tCmcDjXDe+DlKQq9ywQuvWrQg== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-async-generator-functions" "^7.1.0" + "@babel/plugin-proposal-json-strings" "^7.0.0" + "@babel/plugin-proposal-object-rest-spread" "^7.0.0" + "@babel/plugin-proposal-optional-catch-binding" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.0.0" + "@babel/plugin-syntax-async-generators" "^7.0.0" + "@babel/plugin-syntax-object-rest-spread" "^7.0.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.0.0" + "@babel/plugin-transform-arrow-functions" "^7.0.0" + "@babel/plugin-transform-async-to-generator" "^7.1.0" + "@babel/plugin-transform-block-scoped-functions" "^7.0.0" + "@babel/plugin-transform-block-scoping" "^7.0.0" + "@babel/plugin-transform-classes" "^7.1.0" + "@babel/plugin-transform-computed-properties" "^7.0.0" + "@babel/plugin-transform-destructuring" "^7.0.0" + "@babel/plugin-transform-dotall-regex" "^7.0.0" + "@babel/plugin-transform-duplicate-keys" "^7.0.0" + "@babel/plugin-transform-exponentiation-operator" "^7.1.0" + "@babel/plugin-transform-for-of" "^7.0.0" + "@babel/plugin-transform-function-name" "^7.1.0" + "@babel/plugin-transform-literals" "^7.0.0" + "@babel/plugin-transform-modules-amd" "^7.1.0" + "@babel/plugin-transform-modules-commonjs" "^7.1.0" + "@babel/plugin-transform-modules-systemjs" "^7.0.0" + "@babel/plugin-transform-modules-umd" "^7.1.0" + "@babel/plugin-transform-new-target" "^7.0.0" + "@babel/plugin-transform-object-super" "^7.1.0" + "@babel/plugin-transform-parameters" "^7.1.0" + "@babel/plugin-transform-regenerator" "^7.0.0" + "@babel/plugin-transform-shorthand-properties" "^7.0.0" + "@babel/plugin-transform-spread" "^7.0.0" + "@babel/plugin-transform-sticky-regex" "^7.0.0" + "@babel/plugin-transform-template-literals" "^7.0.0" + "@babel/plugin-transform-typeof-symbol" "^7.0.0" + "@babel/plugin-transform-unicode-regex" "^7.0.0" + browserslist "^4.1.0" invariant "^2.2.2" js-levenshtein "^1.1.3" semver "^5.3.0" -"@babel/preset-flow@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.0.0-beta.52.tgz#da2a0f576dfbe78b920a2ac2c47831a89c526004" - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - "@babel/plugin-transform-flow-strip-types" "7.0.0-beta.52" - -"@babel/preset-stage-0@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/preset-stage-0/-/preset-stage-0-7.0.0-beta.52.tgz#93d467b64c264b9f48cb1bbc0d22e68fc4c0ffe0" - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - "@babel/plugin-proposal-function-bind" "7.0.0-beta.52" - "@babel/preset-stage-1" "7.0.0-beta.52" - -"@babel/preset-stage-1@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/preset-stage-1/-/preset-stage-1-7.0.0-beta.52.tgz#1c759ad44471ef27cfcec559f6d4a656cbca9712" - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - "@babel/plugin-proposal-do-expressions" "7.0.0-beta.52" - "@babel/plugin-proposal-export-default-from" "7.0.0-beta.52" - "@babel/plugin-proposal-logical-assignment-operators" "7.0.0-beta.52" - "@babel/plugin-proposal-nullish-coalescing-operator" "7.0.0-beta.52" - "@babel/plugin-proposal-optional-chaining" "7.0.0-beta.52" - "@babel/plugin-proposal-pipeline-operator" "7.0.0-beta.52" - "@babel/preset-stage-2" "7.0.0-beta.52" - -"@babel/preset-stage-2@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/preset-stage-2/-/preset-stage-2-7.0.0-beta.52.tgz#1d62bceaa419516bf1aeafd112bcb0714cf83755" - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - "@babel/plugin-proposal-decorators" "7.0.0-beta.52" - "@babel/plugin-proposal-export-namespace-from" "7.0.0-beta.52" - "@babel/plugin-proposal-function-sent" "7.0.0-beta.52" - "@babel/plugin-proposal-numeric-separator" "7.0.0-beta.52" - "@babel/plugin-proposal-throw-expressions" "7.0.0-beta.52" - "@babel/preset-stage-3" "7.0.0-beta.52" - -"@babel/preset-stage-3@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/preset-stage-3/-/preset-stage-3-7.0.0-beta.52.tgz#d477a5be2c08f09577e0864a13897e33923a8143" - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.52" - "@babel/plugin-proposal-async-generator-functions" "7.0.0-beta.52" - "@babel/plugin-proposal-class-properties" "7.0.0-beta.52" - "@babel/plugin-proposal-json-strings" "7.0.0-beta.52" - "@babel/plugin-proposal-object-rest-spread" "7.0.0-beta.52" - "@babel/plugin-proposal-optional-catch-binding" "7.0.0-beta.52" - "@babel/plugin-proposal-unicode-property-regex" "7.0.0-beta.52" - "@babel/plugin-syntax-dynamic-import" "7.0.0-beta.52" - "@babel/plugin-syntax-import-meta" "7.0.0-beta.52" - -"@babel/register@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.0.0-beta.52.tgz#011f925e087919ac3a75a3e8b8606d1d224046e5" +"@babel/preset-flow@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.0.0.tgz#afd764835d9535ec63d8c7d4caf1c06457263da2" + integrity sha512-bJOHrYOPqJZCkPVbG1Lot2r5OSsB+iUOaxiHdlOeB1yPWS6evswVHwvkDLZ54WTaTRIk89ds0iHmGZSnxlPejQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-transform-flow-strip-types" "^7.0.0" + +"@babel/register@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.0.0.tgz#fa634bae1bfa429f60615b754fc1f1d745edd827" + integrity sha512-f/+CRmaCe7rVEvcvPvxeA8j5aJhHC3aJie7YuqcMDhUOuyWLA7J/aNrTaHIzoWPEhpHA54mec4Mm8fv8KBlv3g== dependencies: core-js "^2.5.7" find-cache-dir "^1.0.0" home-or-tmp "^3.0.0" - lodash "^4.17.5" + lodash "^4.17.10" mkdirp "^0.5.1" - pirates "^3.0.1" - source-map-support "^0.4.2" + pirates "^4.0.0" + source-map-support "^0.5.9" + +"@babel/runtime@^7.1.2": + version "7.1.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.1.2.tgz#81c89935f4647706fc54541145e6b4ecfef4b8e3" + integrity sha512-Y3SCjmhSupzFB6wcv1KmmFucH6gDVnI30WjOcicV10ju0cZjak3Jcs67YLIXBrmZYw1xCrVeJPbycFwrqNyxpg== + dependencies: + regenerator-runtime "^0.12.0" "@babel/template@7.0.0-beta.40": version "7.0.0-beta.40" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.40.tgz#034988c6424eb5c3268fe6a608626de1f4410fc8" + integrity sha512-RlQiVB7eL7fxsKN6JvnCCwEwEL28CBYalXSgWWULuFlEHjtMoXBqQanSie3bNyhrANJx67sb+Sd/vuGivoMwLQ== dependencies: "@babel/code-frame" "7.0.0-beta.40" "@babel/types" "7.0.0-beta.40" babylon "7.0.0-beta.40" lodash "^4.2.0" -"@babel/template@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.44.tgz#f8832f4fdcee5d59bf515e595fc5106c529b394f" +"@babel/template@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0.tgz#c2bc9870405959c89a9c814376a2ecb247838c80" + integrity sha512-VLQZik/G5mjYJ6u19U3W2u7eM+rA/NGzH+GtHDFFkLTKLW66OasFrxZ/yK7hkyQcswrmvugFyZpDFRW0DjcjCw== dependencies: - "@babel/code-frame" "7.0.0-beta.44" - "@babel/types" "7.0.0-beta.44" - babylon "7.0.0-beta.44" - lodash "^4.2.0" + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.0.0" + "@babel/types" "^7.0.0" -"@babel/template@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.52.tgz#44e18fac38251f57f92511d6748f095ab02f996e" +"@babel/template@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.1.0.tgz#58cc9572e1bfe24fe1537fdf99d839d53e517e22" + integrity sha512-yZ948B/pJrwWGY6VxG6XRFsVTee3IQ7bihq9zFpM00Vydu6z5Xwg0C3J644kxI9WOTzd+62xcIsQ+AT1MGhqhA== dependencies: - "@babel/code-frame" "7.0.0-beta.52" - "@babel/parser" "7.0.0-beta.52" - "@babel/types" "7.0.0-beta.52" - lodash "^4.17.5" + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" -"@babel/traverse@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.44.tgz#a970a2c45477ad18017e2e465a0606feee0d2966" +"@babel/template@^7.1.2": + version "7.1.2" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.1.2.tgz#090484a574fef5a2d2d7726a674eceda5c5b5644" + integrity sha512-SY1MmplssORfFiLDcOETrW7fCLl+PavlwMh92rrGcikQaRq4iWPVH0MpwPpY3etVMx6RnDjXtr6VZYr/IbP/Ag== dependencies: - "@babel/code-frame" "7.0.0-beta.44" - "@babel/generator" "7.0.0-beta.44" - "@babel/helper-function-name" "7.0.0-beta.44" - "@babel/helper-split-export-declaration" "7.0.0-beta.44" - "@babel/types" "7.0.0-beta.44" - babylon "7.0.0-beta.44" - debug "^3.1.0" - globals "^11.1.0" - invariant "^2.2.0" - lodash "^4.2.0" + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.1.2" + "@babel/types" "^7.1.2" -"@babel/traverse@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.52.tgz#9b8ba994f7264d9847858ad2feecc2738c5e2ef3" - dependencies: - "@babel/code-frame" "7.0.0-beta.52" - "@babel/generator" "7.0.0-beta.52" - "@babel/helper-function-name" "7.0.0-beta.52" - "@babel/helper-split-export-declaration" "7.0.0-beta.52" - "@babel/parser" "7.0.0-beta.52" - "@babel/types" "7.0.0-beta.52" +"@babel/traverse@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0.tgz#b1fe9b6567fdf3ab542cfad6f3b31f854d799a61" + integrity sha512-ka/lwaonJZTlJyn97C4g5FYjPOx+Oxd3ab05hbDr1Mx9aP1FclJ+SUHyLx3Tx40sGmOVJApDxE6puJhd3ld2kw== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/generator" "^7.0.0" + "@babel/helper-function-name" "^7.0.0" + "@babel/helper-split-export-declaration" "^7.0.0" + "@babel/parser" "^7.0.0" + "@babel/types" "^7.0.0" debug "^3.1.0" globals "^11.1.0" - invariant "^2.2.0" - lodash "^4.17.5" + lodash "^4.17.10" "@babel/traverse@^7.0.0-beta.31": version "7.0.0-beta.40" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.40.tgz#d140e449b2e093ef9fe1a2eecc28421ffb4e521e" + integrity sha512-h96SQorjvdSuxQ6hHFIuAa3oxnad1TA5bU1Zz88+XqzwmM5QM0/k2D+heXGGy/76gT5ajl7xYLKGiPA/KTyVhQ== dependencies: "@babel/code-frame" "7.0.0-beta.40" "@babel/generator" "7.0.0-beta.40" @@ -931,9 +817,25 @@ invariant "^2.2.0" lodash "^4.2.0" +"@babel/traverse@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.1.0.tgz#503ec6669387efd182c3888c4eec07bcc45d91b2" + integrity sha512-bwgln0FsMoxm3pLOgrrnGaXk18sSM9JNf1/nHC/FksmNGFbYnPWY4GYCfLxyP1KRmfsxqkRpfoa6xr6VuuSxdw== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/generator" "^7.0.0" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.0.0" + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + debug "^3.1.0" + globals "^11.1.0" + lodash "^4.17.10" + "@babel/types@7.0.0-beta.35": version "7.0.0-beta.35" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.35.tgz#cf933a9a9a38484ca724b335b88d83726d5ab960" + integrity sha512-y9XT11CozHDgjWcTdxmhSj13rJVXpa5ZXwjjOiTedjaM0ba5ItqdS02t31EhPl7HtOWxsZkYCCUNrSfrOisA6w== dependencies: esutils "^2.0.2" lodash "^4.2.0" @@ -942,44 +844,58 @@ "@babel/types@7.0.0-beta.40": version "7.0.0-beta.40" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.40.tgz#25c3d7aae14126abe05fcb098c65a66b6d6b8c14" + integrity sha512-uXCGCzTgMZxcSUzutCPtZmXbVC+cvENgS2e0tRuhn+Y1hZnMb8IHP0Trq7Q2MB/eFmG5pKrAeTIUfQIe5kA4Tg== dependencies: esutils "^2.0.2" lodash "^4.2.0" to-fast-properties "^2.0.0" -"@babel/types@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.44.tgz#6b1b164591f77dec0a0342aca995f2d046b3a757" +"@babel/types@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0.tgz#6e191793d3c854d19c6749989e3bc55f0e962118" + integrity sha512-5tPDap4bGKTLPtci2SUl/B7Gv8RnuJFuQoWx26RJobS0fFrz4reUA3JnwIM+HVHEmWE0C1mzKhDtTp8NsWY02Q== dependencies: esutils "^2.0.2" - lodash "^4.2.0" + lodash "^4.17.10" to-fast-properties "^2.0.0" -"@babel/types@7.0.0-beta.52": - version "7.0.0-beta.52" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.52.tgz#a3e5620b1534b253a50abcf2222b520e23b16da2" +"@babel/types@^7.1.2": + version "7.1.2" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.1.2.tgz#183e7952cf6691628afdc2e2b90d03240bac80c0" + integrity sha512-pb1I05sZEKiSlMUV9UReaqsCPUpgbHHHu2n1piRm7JkuBkm6QxcaIzKu6FMnMtCbih/cEYTR+RGYYC96Yk9HAg== dependencies: esutils "^2.0.2" - lodash "^4.17.5" + lodash "^4.17.10" to-fast-properties "^2.0.0" +"@samverschueren/stream-to-observable@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f" + integrity sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg== + dependencies: + any-observable "^0.3.0" + "@types/acorn@^4.0.2": version "4.0.3" resolved "https://registry.yarnpkg.com/@types/acorn/-/acorn-4.0.3.tgz#d1f3e738dde52536f9aad3d3380d14e448820afd" + integrity sha512-gou/kWQkGPMZjdCKNZGDpqxLm9+ErG/pFZKPX4tvCjr0Xf4FCYYX3nAsu7aDVKJV3KUe27+mvqqyWT/9VZoM/A== dependencies: "@types/estree" "*" "@types/cheerio@^0.22.1": version "0.22.7" resolved "https://registry.yarnpkg.com/@types/cheerio/-/cheerio-0.22.7.tgz#4a92eafedfb2b9f4437d3a4410006d81114c66ce" + integrity sha512-+T9qBbqe/jXtTjzVddArZExahoPPmt8eq3O1ZuCKZXjBVxf/ciUYNXrIDZJEVgYvpELnv6VlPRCfLzufRxpAag== "@types/debug@^0.0.29": version "0.0.29" resolved "https://registry.yarnpkg.com/@types/debug/-/debug-0.0.29.tgz#a1e514adfbd92f03a224ba54d693111dbf1f3754" + integrity sha1-oeUUrfvZLwOiJLpU1pMRHb8fN1Q= "@types/enhanced-resolve@^3.0.3": version "3.0.4" resolved "https://registry.yarnpkg.com/@types/enhanced-resolve/-/enhanced-resolve-3.0.4.tgz#d93cb91b0b14dbcba0f45948bed73db9456697c2" + integrity sha512-9U7tNrgoeLqvBYaqhGMlXxq2ChZwAjy3HJVmPwfZLng8QDp8MAfBtGNKTN70HobZuIxZNS6TH/4u4hDqqPY6lQ== dependencies: "@types/node" "*" "@types/tapable" "*" @@ -987,44 +903,54 @@ "@types/escape-string-regexp@^0.0.30": version "0.0.30" resolved "https://registry.yarnpkg.com/@types/escape-string-regexp/-/escape-string-regexp-0.0.30.tgz#8cfaf0b5d2e46943d6efd77d3f4d18bfa1c9f225" + integrity sha1-jPrwtdLkaUPW79d9P00Yv6HJ8iU= "@types/estree@*": version "0.0.38" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.38.tgz#c1be40aa933723c608820a99a373a16d215a1ca2" + integrity sha512-F/v7t1LwS4vnXuPooJQGBRKRGIoxWUTmA4VHfqjOccFsNDThD5bfUNpITive6s352O7o384wcpEaDV8rHCehDA== "@types/estree@0.0.35": version "0.0.35" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.35.tgz#8999974b34028686a8d61a719e61c138d3755107" + integrity sha1-iZmXSzQChoao1hpxnmHBONN1UQc= "@types/lodash@^4.14.67": version "4.14.104" resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.104.tgz#53ee2357fa2e6e68379341d92eb2ecea4b11bb80" + integrity sha512-ufQcVg4daO8xQ5kopxRHanqFdL4AI7ondQkV+2f+7mz3gvp0LkBx2zBRC6hfs3T87mzQFmf5Fck7Fi145Ul6NQ== "@types/node@*": version "9.4.6" resolved "https://registry.yarnpkg.com/@types/node/-/node-9.4.6.tgz#d8176d864ee48753d053783e4e463aec86b8d82e" + integrity sha512-CTUtLb6WqCCgp6P59QintjHWqzf4VL1uPA27bipLAPxFqrtK1gEYllePzTICGqQ8rYsCbpnsNypXjjDzGAAjEQ== "@types/node@^8.0.0": version "8.9.4" resolved "https://registry.yarnpkg.com/@types/node/-/node-8.9.4.tgz#dfd327582a06c114eb6e0441fa3d6fab35edad48" + integrity sha512-dSvD36qnQs78G1BPsrZFdPpvLgMW/dnvr5+nTW2csMs5TiP9MOXrjUbnMZOEwnIuBklXtn7b6TPA2Cuq07bDHA== "@types/semver@^5.3.32": version "5.5.0" resolved "https://registry.yarnpkg.com/@types/semver/-/semver-5.5.0.tgz#146c2a29ee7d3bae4bf2fcb274636e264c813c45" + integrity sha512-41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ== "@types/tapable@*": version "0.2.4" resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-0.2.4.tgz#8181a228da46185439300e600c5ae3b3b3982585" + integrity sha512-pclMAvhPnXJcJu1ZZ8bQthuUcdDWzDuxDdbSf6l1U6s4fP6EBiZpPsOZYqFOrbqDV97sXGFSsb6AUpiLfv4xIA== "@types/uglify-js@*": version "2.6.30" resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-2.6.30.tgz#257d2b6dd86673d60da476680fba90f2e30c6eef" + integrity sha512-NjiBNGFl58vHJeijl63w1fWRIjLnrfOvimsXF5b3lTzEzkTV1BnVsbqQeLejg54upsHPWIF63aiub5TEwH619A== dependencies: source-map "^0.6.1" "@types/webpack@^3.0.0": version "3.8.8" resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-3.8.8.tgz#fd9483edf2d6935eaab52aa530b1f737c188cd9a" + integrity sha512-pZxQOJR7NvRn913/hklPmmVjG4cCjyz6WmhIEtqJYGjjG2MXpBIlFAsq+wXXZslJLBdMiIzUAIt53u9fhU9prA== dependencies: "@types/node" "*" "@types/tapable" "*" @@ -1034,6 +960,7 @@ JSONStream@^1.0.3, JSONStream@^1.0.4: version "1.3.2" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.2.tgz#c102371b6ec3a7cf3b847ca00c20bb0fce4c6dea" + integrity sha1-wQI3G27Dp887hHygDCC7D85Mbeo= dependencies: jsonparse "^1.2.0" through ">=2.2.7 <3" @@ -1041,63 +968,92 @@ JSONStream@^1.0.3, JSONStream@^1.0.4: abab@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.4.tgz#5faad9c2c07f60dd76770f71cf025b62a63cfd4e" + integrity sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4= abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== acorn-dynamic-import@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" + integrity sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ= dependencies: acorn "^4.0.3" +acorn-dynamic-import@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz#901ceee4c7faaef7e07ad2a47e890675da50a278" + integrity sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg== + dependencies: + acorn "^5.0.0" + acorn-globals@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.1.0.tgz#ab716025dbe17c54d3ef81d32ece2b2d99fe2538" + integrity sha512-KjZwU26uG3u6eZcfGbTULzFcsoz6pegNKtHPksZPOUsiKo5bUmiBPa38FuHZ/Eun+XYh/JCCkS9AS3Lu4McQOQ== dependencies: acorn "^5.0.0" acorn-jsx@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-4.1.1.tgz#e8e41e48ea2fe0c896740610ab6a4ffd8add225e" + integrity sha512-JY+iV6r+cO21KtntVvFkD+iqjtdpRUpGqKWgfkCdZq1R+kbreEl8EcdcJR4SmiIgsIQT33s6QzheQ9a275Q8xw== dependencies: acorn "^5.0.3" acorn-node@^1.2.0: version "1.3.0" resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.3.0.tgz#5f86d73346743810ef1269b901dbcbded020861b" + integrity sha512-efP54n3d1aLfjL2UMdaXa6DsswwzJeI5rqhbFvXMrKiJ6eJFpf+7R0zN7t8IC+XKn2YOAFAv6xbBNgHUkoHWLw== dependencies: acorn "^5.4.1" xtend "^4.0.1" +acorn-node@^1.3.0: + version "1.5.2" + resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.5.2.tgz#2ca723df19d997b05824b69f6c7fb091fc42c322" + integrity sha512-krFKvw/d1F17AN3XZbybIUzEY4YEPNiGo05AfP3dBlfVKrMHETKpgjpuZkSF8qDNt9UkQcqj7am8yJLseklCMg== + dependencies: + acorn "^5.7.1" + acorn-dynamic-import "^3.0.0" + xtend "^4.0.1" + acorn@^4.0.3: version "4.0.13" resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" + integrity sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c= -acorn@^5.0.0, acorn@^5.0.3, acorn@^5.2.1, acorn@^5.3.0, acorn@^5.4.1: +acorn@^5.0.0, acorn@^5.0.3, acorn@^5.3.0, acorn@^5.4.1: version "5.5.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.0.tgz#1abb587fbf051f94e3de20e6b26ef910b1828298" + integrity sha512-arn53F07VXmls4o4pUhSzBa4fvaagPRe7AVZ8l7NHxFWUie2DsuFSBMMNAkgzRlOhEhzAnxeKyaWVzOH4xqp/g== -acorn@^5.6.0: +acorn@^5.6.0, acorn@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.1.tgz#f095829297706a7c9776958c0afc8930a9b9d9d8" + integrity sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ== add-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" + integrity sha1-anmQQ3ynNtXhKI25K9MmbV9csqo= ajv-keywords@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a" + integrity sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo= ajv-keywords@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.1.0.tgz#ac2b27939c543e95d2c06e7f7f5c27be4aa543be" + integrity sha1-rCsnk5xUPpXSwG5/f1wnvkqlQ74= ajv@^4.9.1: version "4.11.8" resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" + integrity sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY= dependencies: co "^4.6.0" json-stable-stringify "^1.0.1" @@ -1105,15 +1061,17 @@ ajv@^4.9.1: ajv@^5.1.0: version "5.5.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" + integrity sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU= dependencies: co "^4.6.0" fast-deep-equal "^1.0.0" fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.3.0" -ajv@^6.0.1, ajv@^6.5.0: +ajv@^6.0.1: version "6.5.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.2.tgz#678495f9b82f7cca6be248dd92f59bff5e1f4360" + integrity sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA== dependencies: fast-deep-equal "^2.0.1" fast-json-stable-stringify "^2.0.0" @@ -1123,14 +1081,26 @@ ajv@^6.0.1, ajv@^6.5.0: ajv@^6.1.0: version "6.2.1" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.2.1.tgz#28a6abc493a2abe0fb4c8507acaedb43fa550671" + integrity sha1-KKarxJOiq+D7TIUHrK7bQ/pVBnE= dependencies: fast-deep-equal "^1.0.0" fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.3.0" +ajv@^6.5.3: + version "6.5.4" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.4.tgz#247d5274110db653706b550fcc2b797ca28cfc59" + integrity sha512-4Wyjt8+t6YszqaXnLDfMmG/8AlO5Zbcsy3ATHncCzjW/NoPzAId8AK6749Ybjmdt+kUY1gP60fCu46oDxPv/mg== + 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" + align-text@^0.1.1, align-text@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" + integrity sha1-DNkKVhCT810KmSVsIrcGlDP60Rc= dependencies: kind-of "^3.0.2" longest "^1.0.1" @@ -1139,68 +1109,82 @@ align-text@^0.1.1, align-text@^0.1.3: amdefine@>=0.0.4: version "1.0.1" resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= ansi-colors@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-1.1.0.tgz#6374b4dd5d4718ff3ce27a671a3b1cad077132a9" + integrity sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA== dependencies: ansi-wrap "^0.1.0" ansi-cyan@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/ansi-cyan/-/ansi-cyan-0.1.1.tgz#538ae528af8982f28ae30d86f2f17456d2609873" + integrity sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM= dependencies: ansi-wrap "0.1.0" ansi-escapes@^1.0.0: version "1.4.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" + integrity sha1-06ioOzGapneTZisT52HHkRQiMG4= ansi-escapes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92" + integrity sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ== ansi-gray@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251" + integrity sha1-KWLPVOyXksSFEKPetSRDaGHvclE= dependencies: ansi-wrap "0.1.0" ansi-red@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/ansi-red/-/ansi-red-0.1.1.tgz#8c638f9d1080800a353c9c28c8a81ca4705d946c" + integrity sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw= dependencies: ansi-wrap "0.1.0" ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= ansi-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= 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-wrap@0.1.0, ansi-wrap@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" + integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768= -any-observable@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.2.0.tgz#c67870058003579009083f54ac0abafb5c33d242" +any-observable@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" + integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog== anymatch@^1.3.0: version "1.3.2" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" + integrity sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA== dependencies: micromatch "^2.1.5" normalize-path "^2.0.0" @@ -1208,37 +1192,39 @@ anymatch@^1.3.0: anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== dependencies: micromatch "^3.1.4" normalize-path "^2.1.1" -app-root-path@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-2.0.1.tgz#cd62dcf8e4fd5a417efc664d2e5b10653c651b46" - append-buffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/append-buffer/-/append-buffer-1.0.2.tgz#d8220cf466081525efea50614f3de6514dfa58f1" + integrity sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE= dependencies: buffer-equal "^1.0.0" -append-transform@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991" +append-transform@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-1.0.0.tgz#046a52ae582a228bd72f58acfbe2967c678759ab" + integrity sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw== dependencies: - default-require-extensions "^1.0.0" + default-require-extensions "^2.0.0" aproba@^1.0.3: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== archy@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= are-we-there-yet@~1.1.2: version "1.1.4" resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" + integrity sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0= dependencies: delegates "^1.0.0" readable-stream "^2.0.6" @@ -1246,12 +1232,14 @@ are-we-there-yet@~1.1.2: 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" arr-diff@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-1.1.0.tgz#687c32758163588fef7de7b36fabe495eb1a399a" + integrity sha1-aHwydYFjWI/vfeezb6vklesaOZo= dependencies: arr-flatten "^1.0.1" array-slice "^0.2.3" @@ -1259,64 +1247,78 @@ arr-diff@^1.0.1: arr-diff@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + integrity sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8= dependencies: arr-flatten "^1.0.1" arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= arr-filter@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/arr-filter/-/arr-filter-1.1.2.tgz#43fdddd091e8ef11aa4c45d9cdc18e2dff1711ee" + integrity sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4= dependencies: make-iterator "^1.0.0" arr-flatten@^1.0.1, arr-flatten@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== arr-map@^2.0.0, arr-map@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/arr-map/-/arr-map-2.0.2.tgz#3a77345ffc1cf35e2a91825601f9e58f2e24cac4" + integrity sha1-Onc0X/wc814qkYJWAfnljy4kysQ= dependencies: make-iterator "^1.0.0" arr-union@^2.0.1: version "2.1.0" resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-2.1.0.tgz#20f9eab5ec70f5c7d215b1077b1c39161d292c7d" + integrity sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0= arr-union@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= array-differ@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" + integrity sha1-7/UuN1gknTO+QCuLuOVkuytdQDE= array-each@^1.0.0, array-each@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" + integrity sha1-p5SvDAWrF1KEbudTofIRoFugxE8= array-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" + integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= array-filter@~0.0.0: version "0.0.1" resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" + integrity sha1-fajPLiZijtcygDWB/SH2fKzS7uw= array-find-index@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= array-ify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" + integrity sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4= array-initial@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/array-initial/-/array-initial-1.1.0.tgz#2fa74b26739371c3947bd7a7adc73be334b3d795" + integrity sha1-L6dLJnOTccOUe9enrcc74zSz15U= dependencies: array-slice "^1.0.0" is-number "^4.0.0" @@ -1324,28 +1326,34 @@ array-initial@^1.0.0: array-last@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/array-last/-/array-last-1.3.0.tgz#7aa77073fec565ddab2493f5f88185f404a9d336" + integrity sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg== dependencies: is-number "^4.0.0" array-map@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" + integrity sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI= array-reduce@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" + integrity sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys= array-slice@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" + integrity sha1-3Tz7gO15c6dRF82sabC5nshhhvU= array-slice@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4" + integrity sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w== array-sort@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-sort/-/array-sort-1.0.0.tgz#e4c05356453f56f53512a7d1d6123f2c54c0a88a" + integrity sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg== dependencies: default-compare "^1.0.0" get-value "^2.0.6" @@ -1354,28 +1362,34 @@ array-sort@^1.0.0: array-union@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= dependencies: array-uniq "^1.0.1" array-uniq@^1.0.1, array-uniq@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= array-unique@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM= array-unique@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= arrify@^1.0.0, arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= asn1.js@^4.0.0: version "4.10.1" resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" + integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== dependencies: bn.js "^4.0.0" inherits "^2.0.1" @@ -1384,42 +1398,51 @@ asn1.js@^4.0.0: asn1@~0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" + integrity sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y= assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= assert-plus@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" + integrity sha1-104bh+ev/A24qttwIfP+SBAasjQ= assert@^1.1.1, assert@^1.4.0: version "1.4.1" resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" + integrity sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE= dependencies: util "0.10.3" assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= ast-types@0.9.6: version "0.9.6" resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.6.tgz#102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9" + integrity sha1-ECyenpAF0+fjgpvwxPok7oYu6bk= 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== astw@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/astw/-/astw-2.2.0.tgz#7bd41784d32493987aeb239b6b4e1c57a873b917" + integrity sha1-e9QXhNMkk5h66yOba04cV6hzuRc= dependencies: acorn "^4.0.3" async-done@^1.2.0, async-done@^1.2.2: version "1.2.4" resolved "https://registry.yarnpkg.com/async-done/-/async-done-1.2.4.tgz#17b0fcefb9a33cb9de63daa8904c0a65bd535fa0" + integrity sha512-mxc+yISkb0vjsuvG3dJCIZXzRWjKndQ9Zo9zNDJ1K2wh9eP0E0oGmOWm+4cFOvW4dA0tGFImTW5tQJHCtn1kIQ== dependencies: end-of-stream "^1.1.0" once "^1.3.2" @@ -1429,50 +1452,61 @@ async-done@^1.2.0, async-done@^1.2.2: async-each@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + integrity sha1-GdOGodntxufByF04iu28xW0zYC0= async-limiter@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" + integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg== async-settle@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/async-settle/-/async-settle-1.0.0.tgz#1d0a914bb02575bec8a8f3a74e5080f72b2c0c6b" + integrity sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs= dependencies: async-done "^1.2.2" async@^1.4.0, async@^1.5.0: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= async@^2.1.2, async@^2.1.4: version "2.6.0" resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4" + integrity sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw== dependencies: lodash "^4.14.0" asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= atob@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/atob/-/atob-2.0.3.tgz#19c7a760473774468f20b2d2d03372ad7d4cbf5d" + integrity sha1-GcenYEc3dEaPILLS0DNyrX1Mv10= aws-sign2@~0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" + integrity sha1-FDQt0428yU0OW4fXY81jYSwOeU8= aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= aws4@^1.2.1, aws4@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" + integrity sha1-g+9cqGCysy5KDe7e6MdxudtXRx4= babel-code-frame@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= dependencies: chalk "^1.1.3" esutils "^2.0.2" @@ -1481,6 +1515,7 @@ babel-code-frame@^6.26.0: babel-core@^6.0.0, babel-core@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" + integrity sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g= dependencies: babel-code-frame "^6.26.0" babel-generator "^6.26.0" @@ -1505,21 +1540,24 @@ babel-core@^6.0.0, babel-core@^6.26.0: babel-core@^7.0.0-0: version "7.0.0-bridge.0" resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" - -babel-eslint@^8.2.5: - version "8.2.5" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-8.2.5.tgz#dc2331c259d36782aa189da510c43dedd5adc7a3" - dependencies: - "@babel/code-frame" "7.0.0-beta.44" - "@babel/traverse" "7.0.0-beta.44" - "@babel/types" "7.0.0-beta.44" - babylon "7.0.0-beta.44" - eslint-scope "~3.7.1" + integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg== + +babel-eslint@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.1.tgz#919681dc099614cd7d31d45c8908695092a1faed" + integrity sha512-z7OT1iNV+TjOwHNLLyJk+HN+YVWX+CLE6fPD2SymJZOZQBs+QIexFjhm4keGTm8MW9xr4EC9Q0PbaLB24V5GoQ== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.0.0" + "@babel/traverse" "^7.0.0" + "@babel/types" "^7.0.0" + eslint-scope "3.7.1" eslint-visitor-keys "^1.0.0" babel-generator@^6.18.0, babel-generator@^6.26.0: version "6.26.1" resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" + integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== dependencies: babel-messages "^6.23.0" babel-runtime "^6.26.0" @@ -1533,64 +1571,76 @@ babel-generator@^6.18.0, babel-generator@^6.26.0: babel-helpers@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= dependencies: babel-runtime "^6.22.0" babel-template "^6.24.1" -babel-jest@^22.4.1: - version "22.4.1" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-22.4.1.tgz#ff53ebca45957347f27ff4666a31499fbb4c4ddd" +babel-jest@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-23.6.0.tgz#a644232366557a2240a0c083da6b25786185a2f1" + integrity sha512-lqKGG6LYXYu+DQh/slrQ8nxXQkEkhugdXsU6St7GmhVS7Ilc/22ArwqXNJrf0QaOBjZB0360qZMwXqDYQHXaew== dependencies: - babel-plugin-istanbul "^4.1.5" - babel-preset-jest "^22.4.1" + babel-plugin-istanbul "^4.1.6" + babel-preset-jest "^23.2.0" -babel-loader@8.0.0-beta.0: - version "8.0.0-beta.0" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.0-beta.0.tgz#b85c3b52d1095949125c72c7ec1fa0fbb47a11ff" +babel-loader@^8.0.4: + version "8.0.4" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.4.tgz#7bbf20cbe4560629e2e41534147692d3fecbdce6" + integrity sha512-fhBhNkUToJcW9nV46v8w87AJOwAJDz84c1CL57n3Stj73FANM/b9TbCUK4YhdOwEyZ+OxhYpdeZDNzSI29Firw== dependencies: find-cache-dir "^1.0.0" loader-utils "^1.0.2" mkdirp "^0.5.1" + util.promisify "^1.0.0" babel-messages@^6.23.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= dependencies: babel-runtime "^6.22.0" -babel-plugin-istanbul@^4.1.5: - version "4.1.5" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.5.tgz#6760cdd977f411d3e175bb064f2bc327d99b2b6e" +babel-plugin-istanbul@^4.1.6: + version "4.1.6" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45" + integrity sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ== dependencies: + babel-plugin-syntax-object-rest-spread "^6.13.0" find-up "^2.1.0" - istanbul-lib-instrument "^1.7.5" - test-exclude "^4.1.1" + istanbul-lib-instrument "^1.10.1" + test-exclude "^4.2.1" -babel-plugin-jest-hoist@^22.4.1: - version "22.4.1" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-22.4.1.tgz#d712fe5da8b6965f3191dacddbefdbdf4fb66d63" +babel-plugin-jest-hoist@^23.2.0: + version "23.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-23.2.0.tgz#e61fae05a1ca8801aadee57a6d66b8cefaf44167" + integrity sha1-5h+uBaHKiAGq3uV6bWa4zvr0QWc= babel-plugin-syntax-object-rest-spread@^6.13.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" + integrity sha1-/WU28rzhODb/o6VFjEkDpZe7O/U= babel-plugin-transform-charcodes@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-charcodes/-/babel-plugin-transform-charcodes-0.1.0.tgz#c71b301019c90615b940faf0f15f275ec5c81a3d" + integrity sha512-RUBYwMpIEAnQeIgE03DCn8JViDIPkwO6+0uHU4fgou4I/U5ml/zsa7xJ8KqTPVBAKvJAV2cFGoc4W/t8q1Zntg== dependencies: "@babel/traverse" "^7.0.0-beta.31" babylon "^7.0.0-beta.31" -babel-preset-jest@^22.4.1: - version "22.4.1" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-22.4.1.tgz#efa2e5f5334242a9457a068452d7d09735db172a" +babel-preset-jest@^23.2.0: + version "23.2.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-23.2.0.tgz#8ec7a03a138f001a1a8fb1e8113652bf1a55da46" + integrity sha1-jsegOhOPABoaj7HoETZSvxpV2kY= dependencies: - babel-plugin-jest-hoist "^22.4.1" + babel-plugin-jest-hoist "^23.2.0" babel-plugin-syntax-object-rest-spread "^6.13.0" babel-register@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + integrity sha1-btAhFz4vy0htestFxgCahW9kcHE= dependencies: babel-core "^6.26.0" babel-runtime "^6.26.0" @@ -1603,6 +1653,7 @@ babel-register@^6.26.0: babel-runtime@^6.22.0, babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= dependencies: core-js "^2.4.0" regenerator-runtime "^0.11.0" @@ -1610,6 +1661,7 @@ babel-runtime@^6.22.0, babel-runtime@^6.26.0: babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= dependencies: babel-runtime "^6.26.0" babel-traverse "^6.26.0" @@ -1617,9 +1669,10 @@ babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0: babylon "^6.18.0" lodash "^4.17.4" -babel-traverse@^6.18.0, babel-traverse@^6.26.0: +babel-traverse@^6.0.0, babel-traverse@^6.18.0, babel-traverse@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= dependencies: babel-code-frame "^6.26.0" babel-messages "^6.23.0" @@ -1631,9 +1684,10 @@ babel-traverse@^6.18.0, babel-traverse@^6.26.0: invariant "^2.2.2" lodash "^4.17.4" -babel-types@^6.18.0, babel-types@^6.26.0: +babel-types@^6.0.0, babel-types@^6.18.0, babel-types@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= dependencies: babel-runtime "^6.26.0" esutils "^2.0.2" @@ -1643,18 +1697,17 @@ babel-types@^6.18.0, babel-types@^6.26.0: babylon@7.0.0-beta.40, babylon@^7.0.0-beta.31: version "7.0.0-beta.40" resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.40.tgz#91fc8cd56d5eb98b28e6fde41045f2957779940a" - -babylon@7.0.0-beta.44: - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.44.tgz#89159e15e6e30c5096e22d738d8c0af8a0e8ca1d" + integrity sha512-AVxF2EcxvGD5hhOuLTOLAXBb0VhwWpEX0HyHdAI2zU+AAP4qEwtQj8voz1JR3uclGai0rfcE+dCTHnNMOnimFg== babylon@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== bach@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/bach/-/bach-1.2.0.tgz#4b3ce96bf27134f79a1b414a51c14e34c3bd9880" + integrity sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA= dependencies: arr-filter "^1.1.1" arr-flatten "^1.0.1" @@ -1669,14 +1722,17 @@ bach@^1.0.0: 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= base64-js@^1.0.2: version "1.2.3" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.3.tgz#fb13668233d9614cf5fb4bce95a9ba4096cdf801" + integrity sha512-MsAhsUW1GxCdgYSO6tAfZrNapmUKk7mWx/k5mFY/A1gBtkaCaNapTg+FExCw1r9yeaZhqx/xPg43xgTFH6KL5w== base@^0.11.1: version "0.11.2" resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== dependencies: cache-base "^1.0.1" class-utils "^0.3.5" @@ -1689,62 +1745,74 @@ base@^0.11.1: bcrypt-pbkdf@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" + integrity sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40= dependencies: tweetnacl "^0.14.3" beeper@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809" + integrity sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak= big.js@^3.1.3: version "3.2.0" resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" + integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== binary-extensions@^1.0.0: version "1.11.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" + integrity sha1-RqoXUftqL5PuXmibsQh9SxTGwgU= bl@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.1.tgz#cac328f7bee45730d404b692203fcb590e172d5e" + integrity sha1-ysMo977kVzDUBLaSID/LWQ4XLV4= dependencies: readable-stream "^2.0.5" block-stream@*: version "0.0.9" resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + integrity sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo= dependencies: inherits "~2.0.0" bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.8" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" + integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== boolbase@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= boom@2.x.x: version "2.10.1" resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" + integrity sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8= dependencies: hoek "2.x.x" boom@4.x.x: version "4.3.1" resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" + integrity sha1-T4owBctKfjiJ90kDD9JbluAdLjE= dependencies: hoek "4.x.x" boom@5.x.x: version "5.2.0" resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02" + integrity sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw== dependencies: hoek "4.x.x" 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" @@ -1752,6 +1820,7 @@ brace-expansion@^1.1.7: braces@^1.8.2: version "1.8.5" resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + integrity sha1-uneWLhLf+WnWt2cR6RS3N4V79qc= dependencies: expand-range "^1.8.1" preserve "^0.2.0" @@ -1760,6 +1829,7 @@ braces@^1.8.2: braces@^2.3.0, braces@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.1.tgz#7086c913b4e5a08dbe37ac0ee6a2500c4ba691bb" + integrity sha512-SO5lYHA3vO6gz66erVvedSCkp7AKWdv6VcQ2N4ysXfPxdAlxAMMAdwegGGcv1Bqwm7naF1hNdk5d6AAIEHV2nQ== dependencies: arr-flatten "^1.1.0" array-unique "^0.3.2" @@ -1777,10 +1847,12 @@ braces@^2.3.0, braces@^2.3.1: brorand@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= browser-pack@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-5.0.1.tgz#4197719b20c6e0aaa09451c5111e53efb6fbc18d" + integrity sha1-QZdxmyDG4KqglFHFER5T77b7wY0= dependencies: JSONStream "^1.0.3" combine-source-map "~0.6.1" @@ -1791,6 +1863,7 @@ browser-pack@^5.0.1: browser-pack@^6.0.1: version "6.0.4" resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.0.4.tgz#9a73beb3b48f9e36868be007b64400102c04a99f" + integrity sha512-Q4Rvn7P6ObyWfc4stqLWHtG1MJ8vVtjgT24Zbu+8UTzxYuZouqZsmNRRTFVMY/Ux0eIKv1d+JWzsInTX+fdHPQ== dependencies: JSONStream "^1.0.3" combine-source-map "~0.8.0" @@ -1802,16 +1875,26 @@ browser-pack@^6.0.1: browser-process-hrtime@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.2.tgz#425d68a58d3447f02a04aa894187fce8af8b7b8e" + integrity sha1-Ql1opY00R/AqBKqJQYf86K+Le44= -browser-resolve@^1.11.0, browser-resolve@^1.11.2, browser-resolve@^1.7.0: +browser-resolve@^1.11.0, browser-resolve@^1.7.0: version "1.11.2" resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.2.tgz#8ff09b0a2c421718a1051c260b32e48f442938ce" + integrity sha1-j/CbCixCFxihBRwmCzLkj0QpOM4= + dependencies: + resolve "1.1.7" + +browser-resolve@^1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" + integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== dependencies: resolve "1.1.7" browser-unpack@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/browser-unpack/-/browser-unpack-1.2.0.tgz#357aee31fc467831684d063e4355e070a782970d" + integrity sha1-NXruMfxGeDFoTQY+Q1XgcKeClw0= dependencies: acorn "^4.0.3" browser-pack "^5.0.1" @@ -1821,6 +1904,7 @@ browser-unpack@^1.1.0: browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.1.1" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.1.1.tgz#38b7ab55edb806ff2dcda1a7f1620773a477c49f" + integrity sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg== dependencies: buffer-xor "^1.0.3" cipher-base "^1.0.0" @@ -1832,6 +1916,7 @@ browserify-aes@^1.0.0, browserify-aes@^1.0.4: browserify-cipher@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a" + integrity sha1-mYgkSHS/XtTijalWZtzWasj8Njo= dependencies: browserify-aes "^1.0.4" browserify-des "^1.0.0" @@ -1840,6 +1925,7 @@ browserify-cipher@^1.0.0: browserify-des@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz#daa277717470922ed2fe18594118a175439721dd" + integrity sha1-2qJ3cXRwki7S/hhZQRihdUOXId0= dependencies: cipher-base "^1.0.1" des.js "^1.0.0" @@ -1848,6 +1934,7 @@ browserify-des@^1.0.0: browserify-rsa@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= dependencies: bn.js "^4.1.0" randombytes "^2.0.1" @@ -1855,6 +1942,7 @@ browserify-rsa@^4.0.0: browserify-sign@^4.0.0: version "4.0.4" resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" + integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= dependencies: bn.js "^4.1.1" browserify-rsa "^4.0.0" @@ -1864,47 +1952,44 @@ browserify-sign@^4.0.0: inherits "^2.0.1" parse-asn1 "^5.0.0" -browserify-zlib@^0.2.0: +browserify-zlib@^0.2.0, browserify-zlib@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== dependencies: pako "~1.0.5" -browserify-zlib@~0.1.2: - version "0.1.4" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" - dependencies: - pako "~0.2.0" - -browserify@^13.1.1: - version "13.3.0" - resolved "https://registry.yarnpkg.com/browserify/-/browserify-13.3.0.tgz#b5a9c9020243f0c70e4675bec8223bc627e415ce" +browserify@^16.2.2: + version "16.2.2" + resolved "https://registry.yarnpkg.com/browserify/-/browserify-16.2.2.tgz#4b1f66ba0e54fa39dbc5aa4be9629142143d91b0" + integrity sha512-fMES05wq1Oukts6ksGUU2TMVHHp06LyQt0SIwbXIHm7waSrQmNBZePsU0iM/4f94zbvb/wHma+D1YrdzWYnF/A== dependencies: JSONStream "^1.0.3" assert "^1.4.0" browser-pack "^6.0.1" browser-resolve "^1.11.0" - browserify-zlib "~0.1.2" - buffer "^4.1.0" + browserify-zlib "~0.2.0" + buffer "^5.0.2" cached-path-relative "^1.0.0" - concat-stream "~1.5.1" + 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.1.0" + domain-browser "^1.2.0" duplexer2 "~0.1.2" - events "~1.1.0" + events "^2.0.0" glob "^7.1.0" has "^1.0.0" htmlescape "^1.1.0" - https-browserify "~0.0.0" + https-browserify "^1.0.0" inherits "~2.0.1" insert-module-globals "^7.0.0" labeled-stream-splicer "^2.0.0" - module-deps "^4.0.8" - os-browserify "~0.1.1" + mkdirp "^0.5.0" + module-deps "^6.0.0" + os-browserify "~0.3.0" parents "^1.0.1" path-browserify "~0.0.0" process "~0.11.0" @@ -1917,57 +2002,79 @@ browserify@^13.1.1: shell-quote "^1.6.1" stream-browserify "^2.0.0" stream-http "^2.0.0" - string_decoder "~0.10.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.0" + tty-browserify "0.0.1" url "~0.11.0" util "~0.10.1" - vm-browserify "~0.0.1" + vm-browserify "^1.0.0" xtend "^4.0.0" -browserslist@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.1.1.tgz#d380fc048bc3a33e60fb87dc135110ebaaa6320a" +browserslist@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.1.0.tgz#81cbb8e52dfa09918f93c6e051d779cb7360785d" + integrity sha512-kQBKB8hnq1SRfSpwHDpM1JNHAyk9fydW8hIDvndR2ijTFKIlBPEvkJkCt8JznOugdm12/YCaRgyq/sqDGz9PwA== dependencies: - caniuse-lite "^1.0.30000809" - electron-to-chromium "^1.3.33" + caniuse-lite "^1.0.30000878" + electron-to-chromium "^1.3.61" + node-releases "^1.0.0-alpha.11" bser@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719" + integrity sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk= dependencies: node-int64 "^0.4.0" buffer-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe" + integrity sha1-WWFrSYME1Var1GaWayLu2j7KX74= + +buffer-from@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.0.tgz#87fcaa3a298358e0ade6e442cfce840740d1ad04" + integrity sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ== buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= -buffer@^4.1.0, buffer@^4.3.0: +buffer@^4.3.0: version "4.9.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" + integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg= dependencies: base64-js "^1.0.2" ieee754 "^1.1.4" isarray "^1.0.0" +buffer@^5.0.2: + version "5.2.0" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.2.0.tgz#53cf98241100099e9eeae20ee6d51d21b16e541e" + integrity sha512-nUJyfChH7PMJy75eRDCCKtszSEFokUNXC1hNVSe+o+VdcgvDPLs20k3v8UXI8ruRYAJiYtyRea8mYyqPxoHWDw== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + builtin-modules@^1.0.0, builtin-modules@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= bundle-collapser@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/bundle-collapser/-/bundle-collapser-1.3.0.tgz#f4b4ff58b2f22ee7701b20fa76306e23f53a3fb6" + integrity sha1-9LT/WLLyLudwGyD6djBuI/U6P7Y= dependencies: browser-pack "^5.0.1" browser-unpack "^1.1.0" @@ -1979,10 +2086,12 @@ bundle-collapser@^1.2.1: byline@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1" + integrity sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE= cache-base@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== dependencies: collection-visit "^1.0.0" component-emitter "^1.2.1" @@ -1997,24 +2106,29 @@ cache-base@^1.0.1: cached-path-relative@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.1.tgz#d09c4b52800aa4c078e2dd81a869aac90d2e54e7" + integrity sha1-0JxLUoAKpMB44t2BqGmqyQ0uVOc= caller-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" + integrity sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8= dependencies: callsites "^0.2.0" callsites@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" + integrity sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo= callsites@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= camel-case@3.0.x: version "3.0.0" resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" + integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M= dependencies: no-case "^2.2.0" upper-case "^1.1.1" @@ -2022,6 +2136,7 @@ camel-case@3.0.x: camelcase-keys@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc= dependencies: camelcase "^2.0.0" map-obj "^1.0.0" @@ -2029,6 +2144,7 @@ camelcase-keys@^2.0.0: camelcase-keys@^4.0.0: version "4.2.0" resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77" + integrity sha1-oqpfsa9oh1glnDLBQUJteJI7m3c= dependencies: camelcase "^4.1.0" map-obj "^2.0.0" @@ -2037,41 +2153,50 @@ camelcase-keys@^4.0.0: camelcase@^1.0.2: version "1.2.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + integrity sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk= camelcase@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= camelcase@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo= camelcase@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= -caniuse-lite@^1.0.30000809: - version "1.0.30000812" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000812.tgz#d173b686b49bc941fa18ff2e7e533048e20ed92c" +caniuse-lite@^1.0.30000878: + version "1.0.30000883" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000883.tgz#597c1eabfb379bd9fbeaa778632762eb574706ac" + integrity sha512-ovvb0uya4cKJct8Rj9Olstz0LaWmyJhCp3NawRG5fVigka8pEhIIwipF7zyYd2Q58UZb5YfIt52pVF444uj2kQ== capture-stack-trace@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" + integrity sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0= caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= center-align@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + integrity sha1-qg0yYptu6XIgBBHL1EYckHvCt60= dependencies: align-text "^0.1.3" lazy-cache "^1.0.3" -chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: +chalk@^1.0.0, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= dependencies: ansi-styles "^2.2.1" escape-string-regexp "^1.0.2" @@ -2082,6 +2207,16 @@ chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.2.tgz#250dc96b07491bfd601e648d66ddf5f60c7a5c65" + integrity sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^2.3.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" + integrity sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ== dependencies: ansi-styles "^3.2.1" escape-string-regexp "^1.0.5" @@ -2090,14 +2225,22 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.2: charcodes@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/charcodes/-/charcodes-0.1.0.tgz#61f8c244fc7f94f186fe74f31078901a3ed7928e" + integrity sha512-m4ne5Zw6XsdHhM5teBUHvu5s1SeJnwP0ljQ+IrGyZZ6U1TMohi+pVtsvgSgEsj5CPY6PLd/vMknFRuXdifdk+g== chardet@^0.4.0: version "0.4.2" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" + integrity sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I= + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== cheerio@^1.0.0-rc.1: version "1.0.0-rc.2" resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.2.tgz#4b9f53a81b27e4d5dac31c0ffd0cfa03cc6830db" + integrity sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs= dependencies: css-select "~1.2.0" dom-serializer "~0.1.0" @@ -2109,6 +2252,7 @@ cheerio@^1.0.0-rc.1: chokidar@^2.0.0, chokidar@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.3.tgz#dcbd4f6cbb2a55b4799ba8a840ac527e5f4b1176" + integrity sha512-zW8iXYZtXMx4kux/nuZVXjkLP+CyIK5Al5FHnj1OgTKGZfp4Oy6/ymtMSKFv3GD8DviEmUPmJg9eFdJ/JzudMg== dependencies: anymatch "^2.0.0" async-each "^1.0.0" @@ -2127,6 +2271,7 @@ chokidar@^2.0.0, chokidar@^2.0.3: chokidar@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.2.tgz#4dc65139eeb2714977735b6a35d06e97b494dfd7" + integrity sha512-l32Hw3wqB0L2kGVmSbK/a+xXLDrUEsc84pSgMkmwygHvD7ubRsP/vxxHa5BtB6oix1XLLVCHyYMsckRXxThmZw== dependencies: anymatch "^2.0.0" async-each "^1.0.0" @@ -2145,14 +2290,22 @@ chokidar@^2.0.2: chownr@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" + integrity sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE= ci-info@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.2.tgz#03561259db48d0474c8bdc90f5b47b068b6bbfb4" + integrity sha512-uTGIPNx/nSpBdsF6xnseRXLLtfr9VLqkz8ZqHXr3Y7b6SftyRxBGjwMtJj1OhNbmlc1wZzLNAlAcvyIiE8a6ZA== + +ci-info@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" + integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" @@ -2160,10 +2313,12 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: circular-json@^0.3.1: version "0.3.3" resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" + integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A== class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== dependencies: arr-union "^3.1.0" define-property "^0.2.5" @@ -2173,28 +2328,28 @@ class-utils@^0.3.5: clean-css@4.1.x: version "4.1.9" resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.9.tgz#35cee8ae7687a49b98034f70de00c4edd3826301" + integrity sha1-Nc7ornaHpJuYA09w3gDE7dOCYwE= dependencies: source-map "0.5.x" cli-cursor@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" + integrity sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc= dependencies: restore-cursor "^1.0.1" cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= dependencies: restore-cursor "^2.0.0" -cli-spinners@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c" - cli-truncate@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" + integrity sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ= dependencies: slice-ansi "0.0.4" string-width "^1.0.1" @@ -2202,10 +2357,12 @@ cli-truncate@^0.2.1: cli-width@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" + integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= cliui@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" + integrity sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE= dependencies: center-align "^0.1.1" right-align "^0.1.1" @@ -2214,6 +2371,7 @@ cliui@^2.1.0: cliui@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= dependencies: string-width "^1.0.1" strip-ansi "^3.0.1" @@ -2222,6 +2380,7 @@ cliui@^3.2.0: cliui@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.0.0.tgz#743d4650e05f36d1ed2575b59638d87322bfbbcc" + integrity sha512-nY3W5Gu2racvdDk//ELReY+dHjb9PlIcVDFXP72nVIhq2Gy3LuVXYwJoPVudwQnv1shtohpgkdCKT2YaKY0CKw== dependencies: string-width "^2.1.1" strip-ansi "^4.0.0" @@ -2230,26 +2389,32 @@ cliui@^4.0.0: clone-buffer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" + integrity sha1-4+JbIHrE5wGvch4staFnksrD3Fg= clone-stats@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" + integrity sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE= clone-stats@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" + integrity sha1-s3gt/4u1R04Yuba/D9/ngvh3doA= clone@^1.0.0, clone@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.3.tgz#298d7e2231660f40c003c2ed3140decf3f53085f" + integrity sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8= clone@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.1.tgz#d217d1e961118e3ac9a4b8bba3285553bf647cdb" + integrity sha1-0hfR6WERjjrJpLi7oyhVU79kfNs= cloneable-readable@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.0.0.tgz#a6290d413f217a61232f95e458ff38418cfb0117" + integrity sha1-pikNQT8hemEjL5XkWP84QYz7ARc= dependencies: inherits "^2.0.1" process-nextick-args "^1.0.6" @@ -2258,6 +2423,7 @@ cloneable-readable@^1.0.0: cmd-shim@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-2.0.2.tgz#6fcbda99483a8fd15d7d30a196ca69d688a2efdb" + integrity sha1-b8vamUg6j9FdfTChlspp1oii79s= dependencies: graceful-fs "^4.1.2" mkdirp "~0.5.0" @@ -2265,14 +2431,17 @@ cmd-shim@^2.0.2: co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= collection-map@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-map/-/collection-map-1.0.0.tgz#aea0f06f8d26c780c2b75494385544b2255af18c" + integrity sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw= dependencies: arr-map "^2.0.2" for-own "^1.0.0" @@ -2281,6 +2450,7 @@ collection-map@^1.0.0: collection-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= dependencies: map-visit "^1.0.0" object-visit "^1.0.0" @@ -2288,20 +2458,24 @@ collection-visit@^1.0.0: color-convert@^1.9.0: version "1.9.1" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" + integrity sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ== dependencies: color-name "^1.1.1" color-name@^1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= color-support@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== columnify@^1.5.4: version "1.5.4" resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb" + integrity sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs= dependencies: strip-ansi "^3.0.0" wcwidth "^1.0.0" @@ -2309,6 +2483,7 @@ columnify@^1.5.4: combine-source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.6.1.tgz#9b4a09c316033d768e0f11e029fa2730e079ad96" + integrity sha1-m0oJwxYDPXaODxHgKfonMOB5rZY= dependencies: convert-source-map "~1.1.0" inline-source-map "~0.5.0" @@ -2318,6 +2493,7 @@ combine-source-map@~0.6.1: combine-source-map@~0.7.1: version "0.7.2" resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.7.2.tgz#0870312856b307a87cc4ac486f3a9a62aeccc09e" + integrity sha1-CHAxKFazB6h8xKxIbzqaYq7MwJ4= dependencies: convert-source-map "~1.1.0" inline-source-map "~0.6.0" @@ -2327,6 +2503,7 @@ combine-source-map@~0.7.1: combine-source-map@~0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.8.0.tgz#a58d0df042c186fcf822a8e8015f5450d2d79a8b" + integrity sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos= dependencies: convert-source-map "~1.1.0" inline-source-map "~0.6.0" @@ -2336,73 +2513,107 @@ combine-source-map@~0.8.0: combined-stream@1.0.6, combined-stream@^1.0.5, combined-stream@~1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" + integrity sha1-cj599ugBrFYTETp+RFqbactjKBg= dependencies: delayed-stream "~1.0.0" command-join@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/command-join/-/command-join-2.0.0.tgz#52e8b984f4872d952ff1bdc8b98397d27c7144cf" + integrity sha1-Uui5hPSHLZUv8b3IuYOX0nxxRM8= -commander@2.14.x, commander@^2.11.0, commander@^2.8.1, commander@^2.9.0, commander@~2.14.1: +commander@2.14.x, commander@^2.8.1, commander@^2.9.0, commander@~2.14.1: version "2.14.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.14.1.tgz#2235123e37af8ca3c65df45b026dbd357b01b9aa" + integrity sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw== + +commander@^2.14.1: + version "2.18.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.18.0.tgz#2bf063ddee7c7891176981a2cc798e5754bc6970" + integrity sha512-6CYPa+JP2ftfRU2qkDK+UTVeQYosOg/2GbcjIcKPHfinyOLPVGXu/ovN86RP49Re5ndJK1N0kuiidFFuepc4ZQ== commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= compare-func@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-1.3.2.tgz#99dd0ba457e1f9bc722b12c08ec33eeab31fa648" + integrity sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg= dependencies: array-ify "^1.0.0" dot-prop "^3.0.0" +compare-versions@^3.1.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.3.0.tgz#af93ea705a96943f622ab309578b9b90586f39c3" + integrity sha512-MAAAIOdi2s4Gl6rZ76PNcUa9IOYB+5ICdT41o5uMRf09aEu/F9RK+qhe8RjXNPwcTjGV7KU7h2P/fljThFVqyQ== + component-emitter@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= 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= concat-stream@^1.4.10, concat-stream@^1.4.6, concat-stream@^1.5.0, concat-stream@^1.6.0: version "1.6.1" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.1.tgz#261b8f518301f1d834e36342b9fea095d2620a26" + integrity sha512-gslSSJx03QKa59cIKqeJO9HQ/WZMotvYJCuaUULrLpjj8oG40kV2Z+gz82pVxlTkOADi4PJxQPPfhl1ELYrrXw== dependencies: inherits "^2.0.3" readable-stream "^2.2.2" typedarray "^0.0.6" -concat-stream@~1.5.0, concat-stream@~1.5.1: +concat-stream@~1.5.1: version "1.5.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.2.tgz#708978624d856af41a5a741defdd261da752c266" + integrity sha1-cIl4Yk2FavQaWnQd790mHadSwmY= dependencies: inherits "~2.0.1" readable-stream "~2.0.0" typedarray "~0.0.5" +concat-stream@~1.6.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + console-browserify@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA= dependencies: date-now "^0.1.4" console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= constants-browserify@^1.0.0, constants-browserify@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= content-type-parser@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/content-type-parser/-/content-type-parser-1.0.2.tgz#caabe80623e63638b2502fd4c7f12ff4ce2352e7" + integrity sha512-lM4l4CnMEwOLHAHr/P6MEZwZFPJFtAAKgL6pogbXmVZggIqXhdB6RbBtPOTsw2FcXwYhehRGERJmRrjOiIB8pQ== conventional-changelog-angular@^1.6.6: version "1.6.6" resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-1.6.6.tgz#b27f2b315c16d0a1f23eb181309d0e6a4698ea0f" + integrity sha512-suQnFSqCxRwyBxY68pYTsFkG0taIdinHLNEAX5ivtw8bCRnIgnpvcHmlR/yjUyZIrNPYAoXlY1WiEKWgSE4BNg== dependencies: compare-func "^1.3.1" q "^1.5.1" @@ -2410,12 +2621,14 @@ conventional-changelog-angular@^1.6.6: conventional-changelog-atom@^0.2.8: version "0.2.8" resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-0.2.8.tgz#8037693455990e3256f297320a45fa47ee553a14" + integrity sha512-8pPZqhMbrnltNBizjoDCb/Sz85KyUXNDQxuAEYAU5V/eHn0okMBVjqc8aHWYpHrytyZWvMGbayOlDv7i8kEf6g== dependencies: q "^1.5.1" conventional-changelog-cli@^1.3.13: version "1.3.22" resolved "https://registry.yarnpkg.com/conventional-changelog-cli/-/conventional-changelog-cli-1.3.22.tgz#13570fe1728f56f013ff7a88878ff49d5162a405" + integrity sha512-pnjdIJbxjkZ5VdAX/H1wndr1G10CY8MuZgnXuJhIHglOXfIrXygb7KZC836GW9uo1u8PjEIvIw/bKX0lOmOzZg== dependencies: add-stream "^1.0.0" conventional-changelog "^1.1.24" @@ -2426,12 +2639,14 @@ conventional-changelog-cli@^1.3.13: conventional-changelog-codemirror@^0.3.8: version "0.3.8" resolved "https://registry.yarnpkg.com/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.3.8.tgz#a1982c8291f4ee4d6f2f62817c6b2ecd2c4b7b47" + integrity sha512-3HFZKtBXTaUCHvz7ai6nk2+psRIkldDoNzCsom0egDtVmPsvvHZkzjynhdQyULfacRSsBTaiQ0ol6nBOL4dDiQ== dependencies: q "^1.5.1" conventional-changelog-core@^2.0.11: version "2.0.11" resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-2.0.11.tgz#19b5fbd55a9697773ed6661f4e32030ed7e30287" + integrity sha512-HvTE6RlqeEZ/NFPtQeFLsIDOLrGP3bXYr7lFLMhCVsbduF1MXIe8OODkwMFyo1i9ku9NWBwVnVn0jDmIFXjDRg== dependencies: conventional-changelog-writer "^3.0.9" conventional-commits-parser "^2.1.7" @@ -2450,36 +2665,42 @@ conventional-changelog-core@^2.0.11: conventional-changelog-ember@^0.3.12: version "0.3.12" resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-0.3.12.tgz#b7d31851756d0fcb49b031dffeb6afa93b202400" + integrity sha512-mmJzA7uzbrOqeF89dMMi6z17O07ORTXlTMArnLG9ZTX4oLaKNolUlxFUFlFm9JUoVWajVpaHQWjxH1EOQ+ARoQ== dependencies: q "^1.5.1" conventional-changelog-eslint@^1.0.9: version "1.0.9" resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-1.0.9.tgz#b13cc7e4b472c819450ede031ff1a75c0e3d07d3" + integrity sha512-h87nfVh2fdk9fJIvz26wCBsbDC/KxqCc5wSlNMZbXcARtbgNbNDIF7Y7ctokFdnxkzVdaHsbINkh548T9eBA7Q== dependencies: q "^1.5.1" conventional-changelog-express@^0.3.6: version "0.3.6" resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-0.3.6.tgz#4a6295cb11785059fb09202180d0e59c358b9c2c" + integrity sha512-3iWVtBJZ9RnRnZveNDzOD8QRn6g6vUif0qVTWWyi5nUIAbuN1FfPVyKdAlJJfp5Im+dE8Kiy/d2SpaX/0X678Q== dependencies: q "^1.5.1" conventional-changelog-jquery@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/conventional-changelog-jquery/-/conventional-changelog-jquery-0.1.0.tgz#0208397162e3846986e71273b6c79c5b5f80f510" + integrity sha1-Agg5cWLjhGmG5xJztsecW1+A9RA= dependencies: q "^1.4.1" conventional-changelog-jscs@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/conventional-changelog-jscs/-/conventional-changelog-jscs-0.1.0.tgz#0479eb443cc7d72c58bf0bcf0ef1d444a92f0e5c" + integrity sha1-BHnrRDzH1yxYvwvPDvHURKkvDlw= dependencies: q "^1.4.1" conventional-changelog-jshint@^0.3.8: version "0.3.8" resolved "https://registry.yarnpkg.com/conventional-changelog-jshint/-/conventional-changelog-jshint-0.3.8.tgz#9051c1ac0767abaf62a31f74d2fe8790e8acc6c8" + integrity sha512-hn9QU4ZI/5V50wKPJNPGT4gEWgiBFpV6adieILW4MaUFynuDYOvQ71EMSj3EznJyKi/KzuXpc9dGmX8njZMjig== dependencies: compare-func "^1.3.1" q "^1.5.1" @@ -2487,10 +2708,12 @@ conventional-changelog-jshint@^0.3.8: conventional-changelog-preset-loader@^1.1.8: version "1.1.8" resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-1.1.8.tgz#40bb0f142cd27d16839ec6c74ee8db418099b373" + integrity sha512-MkksM4G4YdrMlT2MbTsV2F6LXu/hZR0Tc/yenRrDIKRwBl/SP7ER4ZDlglqJsCzLJi4UonBc52Bkm5hzrOVCcw== conventional-changelog-writer@^3.0.9: version "3.0.9" resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-3.0.9.tgz#4aecdfef33ff2a53bb0cf3b8071ce21f0e994634" + integrity sha512-n9KbsxlJxRQsUnK6wIBRnARacvNnN4C/nxnxCkH+B/R1JS2Fa+DiP1dU4I59mEDEjgnFaN2+9wr1P1s7GYB5/Q== dependencies: compare-func "^1.3.1" conventional-commits-filter "^1.1.6" @@ -2506,6 +2729,7 @@ conventional-changelog-writer@^3.0.9: conventional-changelog@^1.1.24: version "1.1.24" resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-1.1.24.tgz#3d94c29c960f5261c002678315b756cdd3d7d1f0" + integrity sha512-2WcSUst4Y3Z4hHvoMTWXMJr/DmgVdLiMOVY1Kak2LfFz+GIz2KDp5naqbFesYbfXPmaZ5p491dO0FWZIJoJw1Q== dependencies: conventional-changelog-angular "^1.6.6" conventional-changelog-atom "^0.2.8" @@ -2522,6 +2746,7 @@ conventional-changelog@^1.1.24: conventional-commits-filter@^1.1.1: version "1.1.5" resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-1.1.5.tgz#77aac065e3de9c1a74b801e8e25c9affb3184f65" + integrity sha512-mj3+WLj8UZE72zO9jocZjx8+W4Bwnx/KHoIz1vb4F8XUXj0XSjp8Y3MFkpRyIpsRiCBX+DkDjxGKF/nfeu7BGw== dependencies: is-subset "^0.1.1" modify-values "^1.0.0" @@ -2529,6 +2754,7 @@ conventional-commits-filter@^1.1.1: conventional-commits-filter@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-1.1.6.tgz#4389cd8e58fe89750c0b5fb58f1d7f0cc8ad3831" + integrity sha512-KcDgtCRKJCQhyk6VLT7zR+ZOyCnerfemE/CsR3iQpzRRFbLEs0Y6rwk3mpDvtOh04X223z+1xyJ582Stfct/0Q== dependencies: is-subset "^0.1.1" modify-values "^1.0.0" @@ -2536,6 +2762,7 @@ conventional-commits-filter@^1.1.6: conventional-commits-parser@^2.1.1: version "2.1.5" resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-2.1.5.tgz#9ac3a4ab221c0c3c9e9dd2c09ae01e6d1e1dabe0" + integrity sha512-jaAP61py+ISMF3/n3yIiIuY5h6mJlucOqawu5mLB1HaQADLvg/y5UB3pT7HSucZJan34lp7+7ylQPfbKEGmxrA== dependencies: JSONStream "^1.0.4" is-text-path "^1.0.0" @@ -2548,6 +2775,7 @@ conventional-commits-parser@^2.1.1: conventional-commits-parser@^2.1.7: version "2.1.7" resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-2.1.7.tgz#eca45ed6140d72ba9722ee4132674d639e644e8e" + integrity sha512-BoMaddIEJ6B4QVMSDu9IkVImlGOSGA1I2BQyOZHeLQ6qVOJLcLKn97+fL6dGbzWEiqDzfH4OkcveULmeq2MHFQ== dependencies: JSONStream "^1.0.4" is-text-path "^1.0.0" @@ -2560,6 +2788,7 @@ conventional-commits-parser@^2.1.7: conventional-recommended-bump@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-1.2.1.tgz#1b7137efb5091f99fe009e2fe9ddb7cc490e9375" + integrity sha512-oJjG6DkRgtnr/t/VrPdzmf4XZv8c4xKVJrVT4zrSHd92KEL+EYxSbYoKq8lQ7U5yLMw7130wrcQTLRjM/T+d4w== dependencies: concat-stream "^1.4.10" conventional-commits-filter "^1.1.1" @@ -2572,18 +2801,22 @@ conventional-recommended-bump@^1.2.1: convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.0: version "1.5.1" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" + integrity sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU= convert-source-map@~1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860" + integrity sha1-SCnId+n+SbMWHzvzZziI4gRpmGA= copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= copy-props@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/copy-props/-/copy-props-2.0.2.tgz#6151fc8fd47fd8703df00f53940a0ebfeb8c2162" + integrity sha512-/W7IE8h4Zj1jdyf26YhdEjTS/xO42ltxtlH6B9+rmFNeXO+LL7KhzqqJdKJUwwO+4ZZ4IRw7rFhm8VEw95T25A== dependencies: each-props "^1.3.0" is-plain-object "^2.0.1" @@ -2591,27 +2824,31 @@ copy-props@^2.0.1: core-js@^2.4.0, core-js@^2.5.0: version "2.5.3" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.3.tgz#8acc38345824f16d8365b7c9b4259168e8ed603e" + integrity sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4= core-js@^2.5.7: version "2.5.7" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" + integrity sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw== core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -cosmiconfig@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-4.0.0.tgz#760391549580bbd2df1e562bc177b13c290972dc" +cosmiconfig@^5.0.2, cosmiconfig@^5.0.6: + version "5.0.6" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.6.tgz#dca6cf680a0bd03589aff684700858c81abeeb39" + integrity sha512-6DWfizHriCrFWURP1/qyhsiFvYdlJzbCzmtFWh744+KyWsJo5+kPzUZZaMRSSItoYc0pxFX7gEO7ZC1/gN/7AQ== dependencies: is-directory "^0.3.1" js-yaml "^3.9.0" parse-json "^4.0.0" - require-from-string "^2.0.1" create-ecdh@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d" + integrity sha1-iIxyNZbN92EvZJgjPuvXo1MBc30= dependencies: bn.js "^4.1.0" elliptic "^6.0.0" @@ -2619,12 +2856,14 @@ create-ecdh@^4.0.0: create-error-class@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" + integrity sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y= dependencies: capture-stack-trace "^1.0.0" create-hash@^1.1.0, create-hash@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd" + integrity sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0= dependencies: cipher-base "^1.0.1" inherits "^2.0.1" @@ -2634,6 +2873,7 @@ create-hash@^1.1.0, create-hash@^1.1.2: create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: version "1.1.6" resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.6.tgz#acb9e221a4e17bdb076e90657c42b93e3726cf06" + integrity sha1-rLniIaThe9sHbpBlfEK5PjcmzwY= dependencies: cipher-base "^1.0.3" create-hash "^1.1.0" @@ -2645,6 +2885,7 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: cross-spawn@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= dependencies: lru-cache "^4.0.1" shebang-command "^1.2.0" @@ -2653,6 +2894,7 @@ cross-spawn@^5.0.1: cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== dependencies: nice-try "^1.0.4" path-key "^2.0.1" @@ -2663,18 +2905,21 @@ cross-spawn@^6.0.5: cryptiles@2.x.x: version "2.0.5" resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" + integrity sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g= dependencies: boom "2.x.x" cryptiles@3.x.x: version "3.1.2" resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe" + integrity sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4= dependencies: boom "5.x.x" crypto-browserify@^3.0.0, crypto-browserify@^3.11.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== dependencies: browserify-cipher "^1.0.0" browserify-sign "^4.0.0" @@ -2691,6 +2936,7 @@ crypto-browserify@^3.0.0, crypto-browserify@^3.11.0: css-select@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= dependencies: boolbase "~1.0.0" css-what "2.1" @@ -2700,72 +2946,86 @@ css-select@~1.2.0: css-what@2.1: version "2.1.0" resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd" + integrity sha1-lGfQMsOM+u+58teVASUwYvh/ob0= cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": version "0.3.2" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.2.tgz#b8036170c79f07a90ff2f16e22284027a243848b" + integrity sha1-uANhcMefB6kP8vFuIihAJ6JDhIs= "cssstyle@>= 0.2.37 < 0.3.0": version "0.2.37" resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-0.2.37.tgz#541097234cb2513c83ceed3acddc27ff27987d54" + integrity sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ= dependencies: cssom "0.3.x" currently-unhandled@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= dependencies: array-find-index "^1.0.1" d@1: version "1.0.0" resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" + integrity sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8= dependencies: es5-ext "^0.10.9" dargs@^4.0.1: version "4.1.0" resolved "https://registry.yarnpkg.com/dargs/-/dargs-4.1.0.tgz#03a9dbb4b5c2f139bf14ae53f0b8a2a6a86f4e17" + integrity sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc= dependencies: number-is-nan "^1.0.0" dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= dependencies: assert-plus "^1.0.0" date-fns@^1.27.2: version "1.29.0" resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.29.0.tgz#12e609cdcb935127311d04d33334e2960a2a54e6" + integrity sha512-lbTXWZ6M20cWH8N9S6afb0SBm6tMk+uUg6z3MqHPKE9atmsY3kJkTm8vKe93izJ2B2+q5MV990sM2CHgtAZaOw== date-now@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs= dateformat@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.2.0.tgz#4065e2013cf9fb916ddfd82efb506ad4c6769062" + integrity sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI= dateformat@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" + integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8: 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@^3.0.0, debug@^3.0.1, debug@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== dependencies: ms "2.0.0" decamelize-keys@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" + integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= dependencies: decamelize "^1.1.0" map-obj "^1.0.0" @@ -2773,52 +3033,63 @@ decamelize-keys@^1.0.0: decamelize@^1.0.0, decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= dedent@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== deep-extend@~0.4.0: version "0.4.2" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" + integrity sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8= 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= default-compare@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/default-compare/-/default-compare-1.0.0.tgz#cb61131844ad84d84788fb68fd01681ca7781a2f" + integrity sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ== dependencies: kind-of "^5.0.2" -default-require-extensions@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" +default-require-extensions@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-2.0.0.tgz#f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7" + integrity sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc= dependencies: - strip-bom "^2.0.0" + strip-bom "^3.0.0" default-resolution@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/default-resolution/-/default-resolution-2.0.0.tgz#bcb82baa72ad79b426a76732f1a81ad6df26d684" + integrity sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ= defaults@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= dependencies: clone "^1.0.2" define-properties@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" + integrity sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ= dependencies: foreach "^2.0.5" object-keys "^1.0.8" @@ -2826,18 +3097,21 @@ define-properties@^1.1.2: define-property@^0.2.5: version "0.2.5" resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= dependencies: is-descriptor "^0.1.0" define-property@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= dependencies: is-descriptor "^1.0.0" define-property@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== dependencies: is-descriptor "^1.0.2" isobject "^3.0.1" @@ -2845,10 +3119,12 @@ define-property@^2.0.2: defined@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= del@^2.0.2: version "2.2.2" resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" + integrity sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag= dependencies: globby "^5.0.0" is-path-cwd "^1.0.0" @@ -2861,14 +3137,17 @@ del@^2.0.2: delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= deps-sort@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.0.tgz#091724902e84658260eb910748cccd1af6e21fb5" + integrity sha1-CRckkC6EZYJg65EHSMzNGvbiH7U= dependencies: JSONStream "^1.0.3" shasum "^1.0.0" @@ -2878,6 +3157,7 @@ deps-sort@^2.0.0: derequire@^2.0.2: version "2.0.6" resolved "https://registry.yarnpkg.com/derequire/-/derequire-2.0.6.tgz#31a414bb7ca176239fa78b116636ef77d517e768" + integrity sha1-MaQUu3yhdiOfp4sRZjbvd9UX52g= dependencies: acorn "^4.0.3" concat-stream "^1.4.6" @@ -2888,6 +3168,7 @@ derequire@^2.0.2: des.js@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" + integrity sha1-wHTS4qpqipoH29YfmhXCzYPsjsw= dependencies: inherits "^2.0.1" minimalistic-assert "^1.0.0" @@ -2895,39 +3176,48 @@ des.js@^1.0.0: detect-file@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" + integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= detect-indent@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= dependencies: repeating "^2.0.0" detect-indent@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" + integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50= detect-libc@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= detect-newline@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" + integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= -detective@^4.0.0: - version "4.7.1" - resolved "https://registry.yarnpkg.com/detective/-/detective-4.7.1.tgz#0eca7314338442febb6d65da54c10bb1c82b246e" +detective@^5.0.2: + version "5.1.0" + resolved "https://registry.yarnpkg.com/detective/-/detective-5.1.0.tgz#7a20d89236d7b331ccea65832e7123b5551bb7cb" + integrity sha512-TFHMqfOvxlgrfVzTEkNBSh9SvSNX/HfF4OFI2QFGCyPm02EsyILqnUeb5P6q7JZ3SFNTBL5t2sePRgrN4epUWQ== dependencies: - acorn "^5.2.1" + acorn-node "^1.3.0" defined "^1.0.0" + minimist "^1.1.1" diff@^3.2.0: version "3.5.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== diffie-hellman@^5.0.0: version "5.0.2" resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e" + integrity sha1-tYNXOScM/ias9jIJn97SoH8gnl4= dependencies: bn.js "^4.1.0" miller-rabin "^4.0.0" @@ -2936,47 +3226,51 @@ diffie-hellman@^5.0.0: doctrine@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== dependencies: esutils "^2.0.2" dom-serializer@0, dom-serializer@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" + integrity sha1-BzxpdUbOB4DOI75KKOKT5AvDDII= dependencies: domelementtype "~1.1.1" entities "~1.1.1" -domain-browser@^1.1.1: +domain-browser@^1.1.1, domain-browser@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - -domain-browser@~1.1.0: - version "1.1.7" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== domelementtype@1, domelementtype@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" + integrity sha1-sXrtguirWeUt2cGbF1bg/BhyBMI= domelementtype@~1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" + integrity sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs= domexception@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" + integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== dependencies: webidl-conversions "^4.0.2" domhandler@^2.3.0: version "2.4.1" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.1.tgz#892e47000a99be55bbf3774ffea0561d8879c259" + integrity sha1-iS5HAAqZvlW783dP/qBWHYh5wlk= dependencies: domelementtype "1" domutils@1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= dependencies: dom-serializer "0" domelementtype "1" @@ -2984,6 +3278,7 @@ domutils@1.5.1: domutils@^1.5.1: version "1.7.0" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== dependencies: dom-serializer "0" domelementtype "1" @@ -2991,32 +3286,38 @@ domutils@^1.5.1: dot-prop@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177" + integrity sha1-G3CK8JSknJoOfbyteQq6U52sEXc= dependencies: is-obj "^1.0.0" duplexer2@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" + integrity sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds= dependencies: readable-stream "~1.1.9" duplexer2@^0.1.2, duplexer2@~0.1.0, duplexer2@~0.1.2: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" + integrity sha1-ixLauHjA1p4+eJEFFmKjL8a93ME= dependencies: readable-stream "^2.0.2" duplexer3@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= duplexer@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" + integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= duplexify@^3.5.3: version "3.5.4" resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.4.tgz#4bb46c1796eabebeec4ca9a2e66b808cb7a3d8b4" + integrity sha512-JzYSLYMhoVVBe8+mbHQ4KgpvHpm0DZpJuL8PY93Vyv1fW7jYJ90LoXa1di/CVbJM+TgMs91rbDapE/RNIfnJsA== dependencies: end-of-stream "^1.0.0" inherits "^2.0.1" @@ -3026,6 +3327,7 @@ duplexify@^3.5.3: each-props@^1.3.0: version "1.3.1" resolved "https://registry.yarnpkg.com/each-props/-/each-props-1.3.1.tgz#fc138f51e3a2774286d4858e02d6e7de462de158" + integrity sha1-/BOPUeOid0KG1IWOAtbn3kYt4Vg= dependencies: is-plain-object "^2.0.1" object.defaults "^1.1.0" @@ -3033,20 +3335,24 @@ each-props@^1.3.0: ecc-jsbn@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" + integrity sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU= dependencies: jsbn "~0.1.0" -electron-to-chromium@^1.3.33: - version "1.3.34" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.34.tgz#d93498f40391bb0c16a603d8241b9951404157ed" +electron-to-chromium@^1.3.61: + version "1.3.62" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.62.tgz#2e8e2dc070c800ec8ce23ff9dfcceb585d6f9ed8" + integrity sha512-x09ndL/Gjnuk3unlAyoGyUg3wbs4w/bXurgL7wL913vXHAOWmMhrLf1VNGRaMLngmadd5Q8gsV9BFuIr6rP+Xg== elegant-spinner@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" + integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4= elliptic@^6.0.0: version "6.4.0" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" + integrity sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8= dependencies: bn.js "^4.4.0" brorand "^1.0.1" @@ -3059,22 +3365,26 @@ elliptic@^6.0.0: emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= encoding@^0.1.11: version "0.1.12" resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" + integrity sha1-U4tm8+5izRq1HsMjgp0flIDHS+s= dependencies: iconv-lite "~0.4.13" end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.1" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" + integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== dependencies: once "^1.4.0" enhanced-resolve@^3.0.0, enhanced-resolve@^3.4.0: version "3.4.1" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" + integrity sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24= dependencies: graceful-fs "^4.1.2" memory-fs "^0.4.0" @@ -3084,32 +3394,26 @@ enhanced-resolve@^3.0.0, enhanced-resolve@^3.4.0: entities@^1.1.1, entities@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" + integrity sha1-blwtClYhtdra7O+AuQ7ftc13cvA= errno@^0.1.3: version "0.1.7" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== dependencies: prr "~1.0.1" error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" + integrity sha1-+FWobOYa3E6GIcPNoh56dhLDqNw= dependencies: is-arrayish "^0.2.1" -es-abstract@^1.10.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165" - dependencies: - es-to-primitive "^1.1.1" - function-bind "^1.1.1" - has "^1.0.1" - is-callable "^1.1.3" - is-regex "^1.0.4" - es-abstract@^1.4.3, es-abstract@^1.5.1: version "1.10.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.10.0.tgz#1ecb36c197842a00d8ee4c2dfd8646bb97d60864" + integrity sha512-/uh/DhdqIOSkAWifU+8nG78vlQxdLckUdI/sPgy0VhuXi2qJ7T8czBmqIYtLQVpCIFYafChnsRsB5pyb1JdmCQ== dependencies: es-to-primitive "^1.1.1" function-bind "^1.1.1" @@ -3120,6 +3424,7 @@ es-abstract@^1.4.3, es-abstract@^1.5.1: es-to-primitive@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" + integrity sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0= dependencies: is-callable "^1.1.1" is-date-object "^1.0.1" @@ -3128,6 +3433,7 @@ es-to-primitive@^1.1.1: es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: version "0.10.39" resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.39.tgz#fca21b67559277ca4ac1a1ed7048b107b6f76d87" + integrity sha512-AlaXZhPHl0po/uxMx1tyrlt1O86M6D5iVaDH8UgLfgek4kXTX6vzsRfJQWC2Ku+aG8pkw1XWzh9eTkwfVrsD5g== dependencies: es6-iterator "~2.0.3" es6-symbol "~3.1.1" @@ -3135,6 +3441,7 @@ es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= dependencies: d "1" es5-ext "^0.10.35" @@ -3143,6 +3450,7 @@ es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3: es6-map@^0.1.3: version "0.1.5" resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" + integrity sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA= dependencies: d "1" es5-ext "~0.10.14" @@ -3154,6 +3462,7 @@ es6-map@^0.1.3: es6-set@~0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" + integrity sha1-0rPsXU2ADO2BjbU40ol02wpzzLE= dependencies: d "1" es5-ext "~0.10.14" @@ -3164,6 +3473,7 @@ es6-set@~0.1.5: es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" + integrity sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc= dependencies: d "1" es5-ext "~0.10.14" @@ -3171,6 +3481,7 @@ es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: es6-templates@^0.2.2: version "0.2.3" resolved "https://registry.yarnpkg.com/es6-templates/-/es6-templates-0.2.3.tgz#5cb9ac9fb1ded6eb1239342b81d792bbb4078ee4" + integrity sha1-XLmsn7He1usSOTQrgdeSu7QHjuQ= dependencies: recast "~0.11.12" through "~2.3.6" @@ -3178,6 +3489,7 @@ es6-templates@^0.2.2: es6-weak-map@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" + integrity sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8= dependencies: d "1" es5-ext "^0.10.14" @@ -3187,10 +3499,12 @@ es6-weak-map@^2.0.1: escape-string-regexp@^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= escodegen@^1.9.0: version "1.9.1" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.9.1.tgz#dbae17ef96c8e4bedb1356f4504fa4cc2f7cb7e2" + integrity sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q== dependencies: esprima "^3.1.3" estraverse "^4.2.0" @@ -3202,58 +3516,77 @@ escodegen@^1.9.0: escope@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" + integrity sha1-4Bl16BJ4GhY6ba392AOY3GTIicM= dependencies: es6-map "^0.1.3" es6-weak-map "^2.0.1" esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-config-babel@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/eslint-config-babel/-/eslint-config-babel-7.0.2.tgz#cbde74f61cee087d8cd6e607fcfa087869a02d99" +eslint-config-babel@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/eslint-config-babel/-/eslint-config-babel-8.0.1.tgz#394a1d24aa9f725a2d33c43d33dddd5bdae89f79" + integrity sha512-z3woNZxSPtiLh933oeiMhPoYeHq00qk9NKEDxhRXLtQp/9XLt0wL+1BRHmGzVR+WYpSxMobS6X+aQS/GtuiHog== -eslint-plugin-flowtype@^2.49.3: - version "2.49.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.49.3.tgz#ccca6ee5ba2027eb3ed36bc2ec8c9a842feee841" +eslint-plugin-flowtype@^2.50.1: + version "2.50.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.50.1.tgz#36d4c961ac8b9e9e1dc091d3fba0537dad34ae8a" + integrity sha512-9kRxF9hfM/O6WGZcZPszOVPd2W0TLHBtceulLTsGfwMPtiCCLnCW0ssRiOOiXyqrCA20pm1iXdXm7gQeN306zQ== dependencies: lodash "^4.17.10" -eslint-plugin-prettier@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-2.6.1.tgz#de902b4a66b7bca24296429a59a1cc04020ccbbd" +eslint-plugin-local-rules@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-local-rules/-/eslint-plugin-local-rules-0.1.0.tgz#6808bb4c1b9a432f6e54ff4dfb290073e1cdf700" + integrity sha1-aAi7TBuaQy9uVP9N+ykAc+HN9wA= + +eslint-plugin-prettier@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-2.6.2.tgz#71998c60aedfa2141f7bfcbf9d1c459bf98b4fad" + integrity sha512-tGek5clmW5swrAx1mdPYM8oThrBE83ePh7LeseZHBWfHVGrHPhKn7Y5zgRMbU/9D5Td9K4CEmUPjGxA7iw98Og== dependencies: fast-diff "^1.1.1" jest-docblock "^21.0.0" -eslint-scope@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172" +eslint-scope@3.7.1: + version "3.7.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" + integrity sha1-PWPD7f2gLgbgGkUq2IyqzHzctug= dependencies: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-scope@~3.7.1: - version "3.7.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" +eslint-scope@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172" + integrity sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA== dependencies: esrecurse "^4.1.0" estraverse "^4.1.1" +eslint-utils@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512" + integrity sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q== + eslint-visitor-keys@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" + integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ== -eslint@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.0.1.tgz#109b90ab7f7a736f54e0f341c8bb9d09777494c3" +eslint@^5.6.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.6.0.tgz#b6f7806041af01f71b3f1895cbb20971ea4b6223" + integrity sha512-/eVYs9VVVboX286mBK7bbKnO1yamUy2UCRjiY6MryhQL2PaaXCExsCQ2aO83OeYRhU2eCU/FMFP+tVMoOrzNrA== dependencies: - ajv "^6.5.0" - babel-code-frame "^6.26.0" + "@babel/code-frame" "^7.0.0" + ajv "^6.5.3" chalk "^2.1.0" cross-spawn "^6.0.5" debug "^3.1.0" doctrine "^2.1.0" eslint-scope "^4.0.0" + eslint-utils "^1.3.1" eslint-visitor-keys "^1.0.0" espree "^4.0.0" esquery "^1.0.1" @@ -3261,12 +3594,12 @@ eslint@^5.0.1: file-entry-cache "^2.0.0" functional-red-black-tree "^1.0.1" glob "^7.1.2" - globals "^11.5.0" - ignore "^3.3.3" + globals "^11.7.0" + ignore "^4.0.6" imurmurhash "^0.1.4" - inquirer "^5.2.0" + inquirer "^6.1.0" is-resolvable "^1.1.0" - js-yaml "^3.11.0" + js-yaml "^3.12.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.3.0" lodash "^4.17.5" @@ -3277,10 +3610,9 @@ eslint@^5.0.1: path-is-inside "^1.0.2" pluralize "^7.0.0" progress "^2.0.0" - regexpp "^1.1.0" + regexpp "^2.0.0" require-uncached "^1.0.3" - semver "^5.5.0" - string.prototype.matchall "^2.0.0" + semver "^5.5.1" strip-ansi "^4.0.0" strip-json-comments "^2.0.1" table "^4.0.3" @@ -3289,6 +3621,7 @@ eslint@^5.0.1: espree@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/espree/-/espree-4.0.0.tgz#253998f20a0f82db5d866385799d912a83a36634" + integrity sha512-kapdTCt1bjmspxStVKX6huolXVV5ZfyZguY1lcfhVVZstce3bqxH9mcLzNn3/mlgW6wQ732+0fuG9v7h0ZQoKg== dependencies: acorn "^5.6.0" acorn-jsx "^4.1.1" @@ -3296,49 +3629,64 @@ espree@^4.0.0: esprima@^3.1.3, esprima@~3.1.0: version "3.1.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" + integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= esprima@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" + integrity sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw== esquery@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" + integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA== dependencies: estraverse "^4.0.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.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= estree-walker@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.3.1.tgz#e6b1a51cf7292524e7237c312e5fe6660c1ce1aa" + integrity sha1-5rGlHPcpJSTnI3wxLl/mZgwc4ao= esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs= event-emitter@~0.3.5: version "0.3.5" resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk= dependencies: d "1" es5-ext "~0.10.14" -events@^1.0.0, events@~1.1.0: +events@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ= + +events@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/events/-/events-2.1.0.tgz#2a9a1e18e6106e0e812aa9ebd4a819b3c29c0ba5" + integrity sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg== evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== dependencies: md5.js "^1.3.4" safe-buffer "^5.1.1" @@ -3346,12 +3694,14 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: exec-sh@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.1.tgz#163b98a6e89e6b65b47c2a28d215bc1f63989c38" + integrity sha512-aLt95pexaugVtQerpmE51+4QfWrNc304uez7jvj6fWnN8GeEHpttB8F36n8N7uVhUMbH/1enbxQ9HImZ4w/9qg== dependencies: merge "^1.1.3" execa@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= dependencies: cross-spawn "^5.0.1" get-stream "^3.0.0" @@ -3364,6 +3714,20 @@ execa@^0.7.0: execa@^0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da" + integrity sha1-2NdrvBtVIX7RkP1t1J08d07PyNo= + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.9.0.tgz#adb7ce62cf985071f60580deb4a88b9e34712d01" + integrity sha512-BbUMBiX4hqiHZUA5+JujIjNb6TyAlp2D5KLheMjMluwOuzcnylDL4AxZYLLn1n2AGB49eSWwyKvvEQoRpnAtmA== dependencies: cross-spawn "^5.0.1" get-stream "^3.0.0" @@ -3376,20 +3740,24 @@ execa@^0.8.0: exit-hook@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" + integrity sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g= exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= expand-brackets@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + integrity sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s= dependencies: is-posix-bracket "^0.1.0" expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= dependencies: debug "^2.3.3" define-property "^0.2.5" @@ -3402,41 +3770,47 @@ expand-brackets@^2.1.4: expand-range@^1.8.1: version "1.8.2" resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc= dependencies: fill-range "^2.1.0" expand-tilde@^2.0.0, expand-tilde@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= dependencies: homedir-polyfill "^1.0.1" -expect@^22.4.0: - version "22.4.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-22.4.0.tgz#371edf1ae15b83b5bf5ec34b42f1584660a36c16" +expect@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-23.6.0.tgz#1e0c8d3ba9a581c87bd71fb9bc8862d443425f98" + integrity sha512-dgSoOHgmtn/aDGRVFWclQyPDKl2CQRq0hmIEoUAuQs/2rn2NcvCWcSCovm6BLeuB/7EZuLGu2QfnR+qRt5OM4w== dependencies: ansi-styles "^3.2.0" - jest-diff "^22.4.0" + jest-diff "^23.6.0" jest-get-type "^22.1.0" - jest-matcher-utils "^22.4.0" - jest-message-util "^22.4.0" - jest-regex-util "^22.1.0" + jest-matcher-utils "^23.6.0" + jest-message-util "^23.4.0" + jest-regex-util "^23.3.0" extend-shallow@^1.1.2: version "1.1.4" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-1.1.4.tgz#19d6bf94dfc09d76ba711f39b872d21ff4dd9071" + integrity sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE= dependencies: kind-of "^1.1.0" extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= dependencies: is-extendable "^0.1.0" extend-shallow@^3.0.0, extend-shallow@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= dependencies: assign-symbols "^1.0.0" is-extendable "^1.0.1" @@ -3444,32 +3818,37 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: extend@^3.0.0, extend@~3.0.0, extend@~3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" + integrity sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ= external-editor@^2.0.4: version "2.1.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.1.0.tgz#3d026a21b7f95b5726387d4200ac160d372c3b48" + integrity sha512-E44iT5QVOUJBKij4IIV3uvxuNlbKS38Tw1HiupxEIHPv9qtC2PrDYohbXV5U+1jnfIXttny8gUhj+oZvflFlzA== dependencies: chardet "^0.4.0" iconv-lite "^0.4.17" tmp "^0.0.33" -external-editor@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" +external-editor@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27" + integrity sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA== dependencies: - chardet "^0.4.0" - iconv-lite "^0.4.17" + chardet "^0.7.0" + iconv-lite "^0.4.24" tmp "^0.0.33" extglob@^0.3.1: version "0.3.2" resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + integrity sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE= dependencies: is-extglob "^1.0.0" extglob@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== dependencies: array-unique "^0.3.2" define-property "^1.0.0" @@ -3483,14 +3862,17 @@ extglob@^2.0.4: extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= extsprintf@^1.2.0: version "1.4.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= falafel@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/falafel/-/falafel-2.1.0.tgz#96bb17761daba94f46d001738b3cedf3a67fe06c" + integrity sha1-lrsXdh2rqU9G0AFzizzt86Z/4Gw= dependencies: acorn "^5.0.0" foreach "^2.0.5" @@ -3500,6 +3882,7 @@ falafel@^2.1.0: fancy-log@^1.1.0, fancy-log@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.2.tgz#f41125e3d84f2e7d89a43d06d958c8f78be16be1" + integrity sha1-9BEl49hPLn2JpD0G2VjI94vha+E= dependencies: ansi-gray "^0.1.1" color-support "^1.1.3" @@ -3508,36 +3891,44 @@ fancy-log@^1.1.0, fancy-log@^1.3.2: fast-deep-equal@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" + integrity sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ= fast-deep-equal@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= fast-diff@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.1.2.tgz#4b62c42b8e03de3f848460b639079920695d0154" + integrity sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig== fast-json-stable-stringify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= fast-levenshtein@~2.0.4: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= fastparse@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8" + integrity sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg= fb-watchman@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" + integrity sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg= dependencies: bser "^2.0.0" figures@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4= dependencies: escape-string-regexp "^1.0.5" object-assign "^4.1.0" @@ -3545,12 +3936,14 @@ figures@^1.7.0: figures@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= dependencies: escape-string-regexp "^1.0.5" file-entry-cache@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" + integrity sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E= dependencies: flat-cache "^1.2.1" object-assign "^4.0.1" @@ -3558,10 +3951,12 @@ file-entry-cache@^2.0.0: filename-regex@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY= fileset@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0" + integrity sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA= dependencies: glob "^7.0.3" minimatch "^3.0.3" @@ -3569,6 +3964,7 @@ fileset@^2.0.2: fill-range@^2.1.0: version "2.2.3" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" + integrity sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM= dependencies: is-number "^2.1.0" isobject "^2.0.0" @@ -3579,6 +3975,7 @@ fill-range@^2.1.0: fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= dependencies: extend-shallow "^2.0.1" is-number "^3.0.0" @@ -3588,6 +3985,7 @@ fill-range@^4.0.0: find-cache-dir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" + integrity sha1-kojj6ePMN0hxfTnq3hfPcfww7m8= dependencies: commondir "^1.0.1" make-dir "^1.0.0" @@ -3596,10 +3994,12 @@ find-cache-dir@^1.0.0: find-parent-dir@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz#33c44b429ab2b2f0646299c5f9f718f376ff8d54" + integrity sha1-M8RLQpqysvBkYpnF+fcY83b/jVQ= find-up@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= dependencies: path-exists "^2.0.0" pinkie-promise "^2.0.0" @@ -3607,12 +4007,21 @@ find-up@^1.0.0: 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" +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + findup-sync@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc" + integrity sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw= dependencies: detect-file "^1.0.0" is-glob "^3.1.0" @@ -3622,6 +4031,7 @@ findup-sync@^2.0.0: fined@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/fined/-/fined-1.1.0.tgz#b37dc844b76a2f5e7081e884f7c0ae344f153476" + integrity sha1-s33IRLdqL15wgeiE98CuNE8VNHY= dependencies: expand-tilde "^2.0.2" is-plain-object "^2.0.3" @@ -3632,29 +4042,34 @@ fined@^1.0.1: first-chunk-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz#1bdecdb8e083c0664b91945581577a43a9f31d70" + integrity sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA= dependencies: readable-stream "^2.0.2" flagged-respawn@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-1.0.0.tgz#4e79ae9b2eb38bf86b3bb56bf3e0a56aa5fcabd7" + integrity sha1-Tnmumy6zi/hrO7Vr8+ClaqX8q9c= flat-cache@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" + integrity sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE= dependencies: circular-json "^0.3.1" del "^2.0.2" graceful-fs "^4.1.2" write "^0.2.1" -flow-bin@^0.75.0: - version "0.75.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.75.0.tgz#b96d1ee99d3b446a3226be66b4013224ce9df260" +flow-bin@^0.82.0: + version "0.82.0" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.82.0.tgz#fbec84c0d6cab7877565eca8214d655f3aefb8db" + integrity sha512-D7ViTCVJSVv19CB6dFWS9k2iKQlavtkRXn9el0ofVTTpGuybe+EPE8DZwdyohzEt6wRhHV8gwkteWvxdcVuOzg== flush-write-stream@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz#c5d586ef38af6097650b49bc41b55fabb19f35bd" + integrity sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw== dependencies: inherits "^2.0.1" readable-stream "^2.0.4" @@ -3662,30 +4077,36 @@ flush-write-stream@^1.0.2: for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= for-own@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4= dependencies: for-in "^1.0.1" for-own@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" + integrity sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs= dependencies: for-in "^1.0.1" foreach@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= form-data@~2.1.1: version "2.1.4" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" + integrity sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE= dependencies: asynckit "^0.4.0" combined-stream "^1.0.5" @@ -3694,6 +4115,7 @@ form-data@~2.1.1: form-data@~2.3.1: version "2.3.2" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" + integrity sha1-SXBJi+YEwgwAXU9cI67NIda0kJk= dependencies: asynckit "^0.4.0" combined-stream "1.0.6" @@ -3702,12 +4124,14 @@ form-data@~2.3.1: fragment-cache@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= dependencies: map-cache "^0.2.2" fs-extra@^4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" + integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== dependencies: graceful-fs "^4.1.2" jsonfile "^4.0.0" @@ -3716,27 +4140,32 @@ fs-extra@^4.0.1: fs-minipass@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" + integrity sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ== dependencies: minipass "^2.2.1" fs-mkdirp-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz#0b7815fc3201c6a69e14db98ce098c16935259eb" + integrity sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes= dependencies: graceful-fs "^4.1.11" through2 "^2.0.3" -fs-readdir-recursive@^1.0.0: +fs-readdir-recursive@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" + integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== 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= fsevents@^1.0.0, fsevents@^1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8" + integrity sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q== dependencies: nan "^2.3.0" node-pre-gyp "^0.6.39" @@ -3744,6 +4173,7 @@ fsevents@^1.0.0, fsevents@^1.1.1: fsevents@^1.1.2: version "1.2.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.2.tgz#4f598f0f69b273188ef4a62ca4e9e08ace314bbf" + integrity sha512-iownA+hC4uHFp+7gwP/y5SzaiUo7m2vpa0dhpzw8YuKtiZsz7cIXsFbXpLEeBM6WuCQyw1MH4RRe6XI8GFUctQ== dependencies: nan "^2.9.2" node-pre-gyp "^0.9.0" @@ -3751,6 +4181,7 @@ fsevents@^1.1.2: fstream-ignore@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" + integrity sha1-nDHa40dnAY/h0kmyTa2mfQktoQU= dependencies: fstream "^1.0.0" inherits "2" @@ -3759,6 +4190,7 @@ fstream-ignore@^1.0.5: fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: version "1.0.11" resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" + integrity sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE= dependencies: graceful-fs "^4.1.2" inherits "~2.0.0" @@ -3768,14 +4200,17 @@ fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: function-bind@^1.0.2, 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= gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= dependencies: aproba "^1.0.3" console-control-strings "^1.0.0" @@ -3789,14 +4224,17 @@ gauge@~2.7.3: get-caller-file@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" + integrity sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U= get-own-enumerable-property-symbols@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-2.0.1.tgz#5c4ad87f2834c4b9b4e84549dc1e0650fb38c24b" + integrity sha512-TtY/sbOemiMKPRUDDanGCSgBYe7Mf0vbRsWnBZ+9yghpZ1MvcpSpuZFjHdEeY/LZjZy0vdLjS77L6HosisFiug== get-pkg-repo@^1.0.0: version "1.4.0" resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz#c73b489c06d80cc5536c2c853f9e05232056972d" + integrity sha1-xztInAbYDMVTbCyFP54FIyBWly0= dependencies: hosted-git-info "^2.1.4" meow "^3.3.0" @@ -3807,28 +4245,39 @@ get-pkg-repo@^1.0.0: get-port@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" + integrity sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw= get-stdin@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= + +get-stdin@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" + integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= dependencies: assert-plus "^1.0.0" git-raw-commits@^1.3.0: version "1.3.4" resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-1.3.4.tgz#442c3df5985b4f5689e9e43597f5194736aac001" + integrity sha512-G3O+41xHbscpgL5nA0DUkbFVgaAz5rd57AMSIMew8p7C8SyFwZDyn08MoXHkTl9zcD0LmxsLFPxbqFY4YPbpPA== dependencies: dargs "^4.0.1" lodash.template "^4.0.2" @@ -3839,6 +4288,7 @@ git-raw-commits@^1.3.0: git-raw-commits@^1.3.6: version "1.3.6" resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-1.3.6.tgz#27c35a32a67777c1ecd412a239a6c19d71b95aff" + integrity sha512-svsK26tQ8vEKnMshTDatSIQSMDdz8CxIIqKsvPqbtV23Etmw6VNaFAitu8zwZ0VrOne7FztwPyRLxK7/DIUTQg== dependencies: dargs "^4.0.1" lodash.template "^4.0.2" @@ -3849,6 +4299,7 @@ git-raw-commits@^1.3.6: git-remote-origin-url@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f" + integrity sha1-UoJlna4hBxRaERJhEq0yFuxfpl8= dependencies: gitconfiglocal "^1.0.0" pify "^2.3.0" @@ -3856,6 +4307,7 @@ git-remote-origin-url@^2.0.0: git-semver-tags@^1.3.0: version "1.3.4" resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-1.3.4.tgz#2ceb2a355c6d7514c123c35e297067d08caf3a92" + integrity sha512-Xe2Z74MwXZfAezuaO6e6cA4nsgeCiARPzaBp23gma325c/OXdt//PhrknptIaynNeUp2yWtmikV7k5RIicgGIQ== dependencies: meow "^4.0.0" semver "^5.5.0" @@ -3863,6 +4315,7 @@ git-semver-tags@^1.3.0: git-semver-tags@^1.3.6: version "1.3.6" resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-1.3.6.tgz#357ea01f7280794fe0927f2806bee6414d2caba5" + integrity sha512-2jHlJnln4D/ECk9FxGEBh3k44wgYdWjWDtMmJPaecjoRmxKo3Y1Lh8GMYuOPu04CHw86NTAODchYjC5pnpMQig== dependencies: meow "^4.0.0" semver "^5.5.0" @@ -3870,12 +4323,14 @@ git-semver-tags@^1.3.6: gitconfiglocal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" + integrity sha1-QdBF84UaXqiPA/JMocYXgRRGS5s= dependencies: ini "^1.3.2" glob-base@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q= dependencies: glob-parent "^2.0.0" is-glob "^2.0.0" @@ -3883,12 +4338,14 @@ glob-base@^0.3.0: glob-parent@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg= dependencies: is-glob "^2.0.0" glob-parent@^3.0.1, glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= dependencies: is-glob "^3.1.0" path-dirname "^1.0.0" @@ -3896,6 +4353,7 @@ glob-parent@^3.0.1, glob-parent@^3.1.0: glob-stream@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-6.1.0.tgz#7045c99413b3eb94888d83ab46d0b404cc7bdde4" + integrity sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ= dependencies: extend "^3.0.0" glob "^7.1.1" @@ -3911,6 +4369,7 @@ glob-stream@^6.1.0: glob-watcher@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-5.0.1.tgz#239aaa621b6bd843b288fdf6b155f50963c7d7ea" + integrity sha512-fK92r2COMC199WCyGUblrZKhjra3cyVMDiypDdqg1vsSDmexnbYivK1kNR4QItiNXLKmGlqan469ks67RtNa2g== dependencies: async-done "^1.2.0" chokidar "^2.0.0" @@ -3920,6 +4379,7 @@ glob-watcher@^5.0.0: glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.0, glob@^7.1.1, glob@^7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + integrity sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -3931,6 +4391,7 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.0, glob@^7.1.1, glob@^7.1.2: global-modules@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" + integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== dependencies: global-prefix "^1.0.1" is-windows "^1.0.1" @@ -3939,6 +4400,7 @@ global-modules@^1.0.0: global-prefix@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" + integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= dependencies: expand-tilde "^2.0.2" homedir-polyfill "^1.0.1" @@ -3949,18 +4411,22 @@ global-prefix@^1.0.1: globals@^11.1.0: version "11.3.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.3.0.tgz#e04fdb7b9796d8adac9c8f64c14837b2313378b0" + integrity sha512-kkpcKNlmQan9Z5ZmgqKH/SMbSmjxQ7QjyNqfXVc8VJcoBV2UEg+sxQD15GQofGRh2hfpwUb70VC31DR7Rq5Hdw== -globals@^11.5.0: +globals@^11.7.0: version "11.7.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.7.0.tgz#a583faa43055b1aca771914bf68258e2fc125673" + integrity sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg== globals@^9.18.0: version "9.18.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== globby@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" + integrity sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0= dependencies: array-union "^1.0.1" arrify "^1.0.0" @@ -3972,6 +4438,7 @@ globby@^5.0.0: globby@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= dependencies: array-union "^1.0.1" glob "^7.0.3" @@ -3982,12 +4449,14 @@ globby@^6.1.0: glogg@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.1.tgz#dcf758e44789cc3f3d32c1f3562a3676e6a34810" + integrity sha512-ynYqXLoluBKf9XGR1gA59yEJisIL7YHEH4xr3ZziHB5/yl4qWfaK8Js9jGe6gBGCSCKVqiyO30WnRZADvemUNw== dependencies: sparkles "^1.0.0" got@^6.7.1: version "6.7.1" resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" + integrity sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA= dependencies: create-error-class "^3.0.0" duplexer3 "^0.1.4" @@ -4004,14 +4473,17 @@ got@^6.7.1: graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + integrity sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg= growly@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= gulp-babel@^8.0.0-beta.2: version "8.0.0-beta.2" resolved "https://registry.yarnpkg.com/gulp-babel/-/gulp-babel-8.0.0-beta.2.tgz#0ceed820eeece53da75bbb466b56db336c4136dd" + integrity sha512-GTC2PxAXWkp6u1fP+C5+kn5biQ0dKGhkOSSXvKAf3ykF0+R3tevmLm/zSIkc1+S7U1JwH3XTvuMwRL6LD+sEiw== dependencies: plugin-error "^1.0.1" replace-ext "^1.0.0" @@ -4021,6 +4493,7 @@ gulp-babel@^8.0.0-beta.2: gulp-cli@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/gulp-cli/-/gulp-cli-2.0.1.tgz#7847e220cb3662f2be8a6d572bf14e17be5a994b" + integrity sha512-RxujJJdN8/O6IW2nPugl7YazhmrIEjmiVfPKrWt68r71UCaLKS71Hp0gpKT+F6qOUFtr7KqtifDKaAJPRVvMYQ== dependencies: ansi-colors "^1.0.1" archy "^1.0.0" @@ -4044,6 +4517,7 @@ gulp-cli@^2.0.0: gulp-filter@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/gulp-filter/-/gulp-filter-5.1.0.tgz#a05e11affb07cf7dcf41a7de1cb7b63ac3783e73" + integrity sha1-oF4Rr/sHz33PQafeHLe2OsN4PnM= dependencies: multimatch "^2.0.0" plugin-error "^0.1.2" @@ -4052,6 +4526,7 @@ gulp-filter@^5.1.0: gulp-newer@^1.0.0: version "1.4.0" resolved "https://registry.yarnpkg.com/gulp-newer/-/gulp-newer-1.4.0.tgz#25243ed6eac8f5462b95894e0d41937b112e65f3" + integrity sha512-h79fGO55S/P9eAADbLAP9aTtVYpLSR1ONj08VPaSdVVNVYhTS8p1CO1TW7kEMu+hC+sytmCqcUr5LesvZEtDoQ== dependencies: glob "^7.0.3" kew "^0.7.0" @@ -4060,6 +4535,7 @@ gulp-newer@^1.0.0: gulp-plumber@^1.0.1: version "1.2.0" resolved "https://registry.yarnpkg.com/gulp-plumber/-/gulp-plumber-1.2.0.tgz#18ea03912c9ee483f8a5499973b5954cd90f6ad8" + integrity sha512-L/LJftsbKoHbVj6dN5pvMsyJn9jYI0wT0nMg3G6VZhDac4NesezecYTi8/48rHi+yEic3sUpw6jlSc7qNWh32A== dependencies: chalk "^1.1.3" fancy-log "^1.3.2" @@ -4069,10 +4545,12 @@ gulp-plumber@^1.0.1: gulp-rename@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/gulp-rename/-/gulp-rename-1.2.2.tgz#3ad4428763f05e2764dec1c67d868db275687817" + integrity sha1-OtRCh2PwXidk3sHGfYaNsnVoeBc= gulp-uglify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/gulp-uglify/-/gulp-uglify-3.0.0.tgz#0df0331d72a0d302e3e37e109485dddf33c6d1ca" + integrity sha1-DfAzHXKg0wLj434QlIXd3zPG0co= dependencies: gulplog "^1.0.0" has-gulplog "^0.1.0" @@ -4085,6 +4563,7 @@ gulp-uglify@^3.0.0: gulp-util@^3.0.7: version "3.0.8" resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f" + integrity sha1-AFTh50RQLifATBh8PsxQXdVLu08= dependencies: array-differ "^1.0.0" array-uniq "^1.0.2" @@ -4108,6 +4587,7 @@ gulp-util@^3.0.7: gulp-watch@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/gulp-watch/-/gulp-watch-5.0.0.tgz#6fb03ab1735972e0d2866475b568555836dfd0eb" + integrity sha512-q+HLppxXd11z9ndqql4Z0sd5xOAesJjycl0PRaq6ImK7b1BqBRL37YvxEE8ngUdIfpfHa0O9OCoovoggcFpCaQ== dependencies: anymatch "^1.3.0" chokidar "^2.0.0" @@ -4123,6 +4603,7 @@ gulp-watch@^5.0.0: gulp@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/gulp/-/gulp-4.0.0.tgz#95766c601dade4a77ed3e7b2b6dc03881b596366" + integrity sha1-lXZsYB2t5Kd+0+eyttwDiBtZY2Y= dependencies: glob-watcher "^5.0.0" gulp-cli "^2.0.0" @@ -4132,12 +4613,14 @@ gulp@^4.0.0: gulplog@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5" + integrity sha1-4oxNRdBey77YGDY86PnFkmIp/+U= dependencies: glogg "^1.0.0" handlebars@^4.0.2, handlebars@^4.0.3: version "4.0.11" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc" + integrity sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw= dependencies: async "^1.4.0" optimist "^0.6.1" @@ -4148,14 +4631,17 @@ handlebars@^4.0.2, handlebars@^4.0.3: har-schema@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" + integrity sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4= har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= har-validator@~4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" + integrity sha1-M0gdDxu/9gDdID11gSpqX7oALio= dependencies: ajv "^4.9.1" har-schema "^1.0.5" @@ -4163,6 +4649,7 @@ har-validator@~4.2.1: har-validator@~5.0.3: version "5.0.3" resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" + integrity sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0= dependencies: ajv "^5.1.0" har-schema "^2.0.0" @@ -4170,38 +4657,46 @@ har-validator@~5.0.3: has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= dependencies: ansi-regex "^2.0.0" has-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= has-flag@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + integrity sha1-6CB68cx7MNRGzHC3NLXovhj4jVE= 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-gulplog@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce" + integrity sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4= dependencies: sparkles "^1.0.0" has-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" + integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= has-value@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= dependencies: get-value "^2.0.3" has-values "^0.1.4" @@ -4210,6 +4705,7 @@ has-value@^0.3.1: has-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= dependencies: get-value "^2.0.6" has-values "^1.0.0" @@ -4218,10 +4714,12 @@ has-value@^1.0.0: has-values@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= has-values@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= dependencies: is-number "^3.0.0" kind-of "^4.0.0" @@ -4229,18 +4727,21 @@ has-values@^1.0.0: has@^1.0.0, has@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" + integrity sha1-hGFzP1OLCDfJNh45qauelwTcLyg= dependencies: function-bind "^1.0.2" hash-base@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz#66ea1d856db4e8a5470cadf6fce23ae5244ef2e1" + integrity sha1-ZuodhW206KVHDK32/OI65SRO8uE= dependencies: inherits "^2.0.1" hash-base@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" @@ -4248,6 +4749,7 @@ hash-base@^3.0.0: hash.js@^1.0.0, hash.js@^1.0.3: version "1.1.3" resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" + integrity sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA== dependencies: inherits "^2.0.3" minimalistic-assert "^1.0.0" @@ -4255,6 +4757,7 @@ hash.js@^1.0.0, hash.js@^1.0.3: hawk@3.1.3, hawk@~3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" + integrity sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ= dependencies: boom "2.x.x" cryptiles "2.x.x" @@ -4264,6 +4767,7 @@ hawk@3.1.3, hawk@~3.1.3: hawk@~6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038" + integrity sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ== dependencies: boom "4.x.x" cryptiles "3.x.x" @@ -4273,10 +4777,12 @@ hawk@~6.0.2: he@1.1.x: version "1.1.1" resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0= hmac-drbg@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= dependencies: hash.js "^1.0.3" minimalistic-assert "^1.0.0" @@ -4285,14 +4791,17 @@ hmac-drbg@^1.0.0: hoek@2.x.x: version "2.16.3" resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" + integrity sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0= hoek@4.x.x: version "4.2.1" resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb" + integrity sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA== home-or-tmp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg= dependencies: os-homedir "^1.0.0" os-tmpdir "^1.0.1" @@ -4300,30 +4809,36 @@ home-or-tmp@^2.0.0: home-or-tmp@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-3.0.0.tgz#57a8fe24cf33cdd524860a15821ddc25c86671fb" + integrity sha1-V6j+JM8zzdUkhgoVgh3cJchmcfs= homedir-polyfill@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc" + integrity sha1-TCu8inWJmP7r9e1oWA921GdotLw= dependencies: parse-passwd "^1.0.0" hosted-git-info@^2.1.4: version "2.5.0" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" + integrity sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg== hosted-git-info@^2.5.0: version "2.6.0" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.6.0.tgz#23235b29ab230c576aab0d4f13fc046b0b038222" + integrity sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw== html-encoding-sniffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" + integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== dependencies: whatwg-encoding "^1.0.1" html-loader@^0.4.5: version "0.4.5" resolved "https://registry.yarnpkg.com/html-loader/-/html-loader-0.4.5.tgz#5fbcd87cd63a5c49a7fce2fe56f425e05729c68c" + integrity sha1-X7zYfNY6XEmn/OL+VvQl4Fcpxow= dependencies: es6-templates "^0.2.2" fastparse "^1.1.1" @@ -4334,6 +4849,7 @@ html-loader@^0.4.5: html-minifier@^3.0.1: version "3.5.10" resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.10.tgz#8522c772c388db81aa5c26f62033302d906ea1c7" + integrity sha512-5c8iAyeIGAiuFhVjJ0qy1lgvyQxxuZgjeOuMnoK/wjEyy8DF3xKUnE9pO+6H7VMir976K6SGlZV8ZEmIOea/Zg== dependencies: camel-case "3.0.x" clean-css "4.1.x" @@ -4347,10 +4863,12 @@ html-minifier@^3.0.1: htmlescape@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351" + integrity sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E= htmlparser2@^3.9.1: version "3.9.2" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338" + integrity sha1-G9+HrMoPP55T+k/M6w9LTLsAszg= dependencies: domelementtype "^1.3.0" domhandler "^2.3.0" @@ -4362,6 +4880,7 @@ htmlparser2@^3.9.1: http-signature@~1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" + integrity sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8= dependencies: assert-plus "^0.2.0" jsprim "^1.2.2" @@ -4370,6 +4889,7 @@ http-signature@~1.1.0: http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= dependencies: assert-plus "^1.0.0" jsprim "^1.2.2" @@ -4378,46 +4898,64 @@ http-signature@~1.2.0: https-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - -https-browserify@~0.0.0: - version "0.0.1" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" - -husky@^0.14.3: - version "0.14.3" - resolved "https://registry.yarnpkg.com/husky/-/husky-0.14.3.tgz#c69ed74e2d2779769a17ba8399b54ce0b63c12c3" - dependencies: - is-ci "^1.0.10" - normalize-path "^1.0.0" - strip-indent "^2.0.0" + integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= + +husky@^1.0.0-rc.15: + version "1.0.0-rc.15" + resolved "https://registry.yarnpkg.com/husky/-/husky-1.0.0-rc.15.tgz#f1545d15c7f34d5db19e40b70df07ac9a362673d" + integrity sha512-JTZhkESlc4r1YFilvGgpbEC6wkFZdi1Sm/Haa1TiMFPHOErMUBlpScrIlgN0ttXO9EBYJyanL5WF+lwCtorrZw== + dependencies: + cosmiconfig "^5.0.6" + execa "^0.9.0" + find-up "^3.0.0" + get-stdin "^6.0.0" + is-ci "^1.2.1" + pkg-dir "^3.0.0" + please-upgrade-node "^3.1.1" + read-pkg "^4.0.1" + run-node "^1.0.0" + slash "^2.0.0" iconv-lite@0.4.19, iconv-lite@^0.4.17, iconv-lite@~0.4.13: version "0.4.19" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" + integrity sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ== + +iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" iconv-lite@^0.4.4: version "0.4.21" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.21.tgz#c47f8733d02171189ebc4a400f3218d348094798" + integrity sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw== dependencies: safer-buffer "^2.1.0" ieee754@^1.1.4: version "1.1.8" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" + integrity sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q= ignore-walk@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" + integrity sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ== dependencies: minimatch "^3.0.4" -ignore@^3.3.3: - version "3.3.7" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021" +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-local@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc" + integrity sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ== dependencies: pkg-dir "^2.0.0" resolve-cwd "^2.0.0" @@ -4425,24 +4963,29 @@ import-local@^1.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= indent-string@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= dependencies: repeating "^2.0.0" indent-string@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" + integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= indexof@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= 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" @@ -4450,30 +4993,36 @@ inflight@^1.0.4: inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= inherits@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= ini@^1.3.2, ini@^1.3.4, ini@~1.3.0: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== inline-source-map@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.5.0.tgz#4a4c5dd8e4fb5e9b3cda60c822dfadcaee66e0af" + integrity sha1-Skxd2OT7Xps82mDIIt+tyu5m4K8= dependencies: source-map "~0.4.0" inline-source-map@~0.6.0: version "0.6.2" resolved "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.6.2.tgz#f9393471c18a79d1724f863fa38b586370ade2a5" + integrity sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU= dependencies: source-map "~0.5.3" inquirer@^3.2.2: version "3.3.0" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" + integrity sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ== dependencies: ansi-escapes "^3.0.0" chalk "^2.0.0" @@ -4490,20 +5039,21 @@ inquirer@^3.2.2: strip-ansi "^4.0.0" through "^2.3.6" -inquirer@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-5.2.0.tgz#db350c2b73daca77ff1243962e9f22f099685726" +inquirer@^6.1.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.0.tgz#51adcd776f661369dc1e894859c2560a224abdd8" + integrity sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg== dependencies: ansi-escapes "^3.0.0" chalk "^2.0.0" cli-cursor "^2.1.0" cli-width "^2.0.0" - external-editor "^2.1.0" + external-editor "^3.0.0" figures "^2.0.0" - lodash "^4.3.0" + lodash "^4.17.10" mute-stream "0.0.7" run-async "^2.2.0" - rxjs "^5.5.2" + rxjs "^6.1.0" string-width "^2.1.0" strip-ansi "^4.0.0" through "^2.3.6" @@ -4511,6 +5061,7 @@ inquirer@^5.2.0: insert-module-globals@^7.0.0: version "7.0.2" resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.0.2.tgz#012c56baa7d3307a8b417d4ec5270cf9741c18f4" + integrity sha512-p3s7g96Nm62MbHRuj9ZXab0DuJNWD7qcmdUXCOQ/ZZn42DtDXfsLill7bq19lDCx3K3StypqUnuE3H2VmIJFUw== dependencies: JSONStream "^1.0.3" combine-source-map "~0.7.1" @@ -4524,20 +5075,31 @@ insert-module-globals@^7.0.0: interpret@^1.0.0, interpret@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" + integrity sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ= invariant@^2.2.0, invariant@^2.2.2: version "2.2.3" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.3.tgz#1a827dfde7dcbd7c323f0ca826be8fa7c5e9d688" + integrity sha512-7Z5PPegwDTyjbaeCnV0efcyS6vdKAU51kpEmS7QFib3P4822l8ICYyMn7qvJnc+WzLoDsuI9gPMKbJ8pCu8XtA== + dependencies: + loose-envify "^1.0.0" + +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" invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= is-absolute@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" + integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== dependencies: is-relative "^1.0.0" is-windows "^1.0.1" @@ -4545,64 +5107,83 @@ is-absolute@^1.0.0: is-accessor-descriptor@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= dependencies: kind-of "^3.0.2" is-accessor-descriptor@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== dependencies: kind-of "^6.0.0" 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-binary-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= dependencies: binary-extensions "^1.0.0" is-buffer@^1.1.0, is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== is-builtin-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" + integrity sha1-VAVy0096wxGfj3bDDLwbHgN6/74= dependencies: builtin-modules "^1.0.0" is-callable@^1.1.1, is-callable@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" + integrity sha1-hut1OSgF3cM69xySoO7fdO52BLI= is-ci@^1.0.10: version "1.1.0" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.1.0.tgz#247e4162e7860cebbdaf30b774d6b0ac7dcfe7a5" + integrity sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg== dependencies: ci-info "^1.0.0" +is-ci@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" + integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== + dependencies: + ci-info "^1.5.0" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= dependencies: kind-of "^3.0.2" is-data-descriptor@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== dependencies: kind-of "^6.0.0" is-date-object@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= is-descriptor@^0.1.0: version "0.1.6" resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== dependencies: is-accessor-descriptor "^0.1.6" is-data-descriptor "^0.1.4" @@ -4611,6 +5192,7 @@ is-descriptor@^0.1.0: is-descriptor@^1.0.0, is-descriptor@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== dependencies: is-accessor-descriptor "^1.0.0" is-data-descriptor "^1.0.0" @@ -4619,317 +5201,378 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-directory@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= is-dotfile@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + integrity sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE= is-equal-shallow@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + integrity sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ= dependencies: is-primitive "^2.0.0" is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= is-extendable@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== dependencies: is-plain-object "^2.0.4" is-extglob@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA= is-extglob@^2.1.0, 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-finite@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + integrity sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko= dependencies: number-is-nan "^1.0.0" is-fullwidth-code-point@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= dependencies: number-is-nan "^1.0.0" 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-generator-fn@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-1.0.0.tgz#969d49e1bb3329f6bb7f09089be26578b2ddd46a" + integrity sha1-lp1J4bszKfa7fwkIm+JleLLd1Go= is-glob@^2.0.0, is-glob@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM= dependencies: is-extglob "^1.0.0" is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= dependencies: is-extglob "^2.1.0" is-glob@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" + integrity sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A= dependencies: is-extglob "^2.1.1" is-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" + integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= is-negated-glob@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2" + integrity sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI= is-number@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8= dependencies: kind-of "^3.0.2" is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= dependencies: kind-of "^3.0.2" is-number@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" + integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== is-obj@^1.0.0, is-obj@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= -is-observable@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-0.2.0.tgz#b361311d83c6e5d726cabf5e250b0237106f5ae2" +is-observable@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" + integrity sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA== dependencies: - symbol-observable "^0.2.2" + symbol-observable "^1.1.0" is-odd@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-2.0.0.tgz#7646624671fd7ea558ccd9a2795182f2958f1b24" + integrity sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ== dependencies: is-number "^4.0.0" is-path-cwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" + integrity sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0= is-path-in-cwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" + integrity sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw= dependencies: is-path-inside "^1.0.0" is-path-inside@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" + integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= dependencies: path-is-inside "^1.0.1" is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== dependencies: isobject "^3.0.1" is-posix-bracket@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + integrity sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q= is-primitive@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU= is-promise@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= is-redirect@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" + integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= is-regex@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= dependencies: has "^1.0.1" is-regexp@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= is-relative@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" + integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== dependencies: is-unc-path "^1.0.0" is-resolvable@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== is-retry-allowed@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" + integrity sha1-EaBgVotnM5REAz0BJaYaINVk+zQ= is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= is-subset@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" + integrity sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY= is-symbol@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" + integrity sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI= is-text-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" + integrity sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4= dependencies: text-extensions "^1.0.0" is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= is-unc-path@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" + integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== dependencies: unc-path-regex "^0.1.2" is-utf8@^0.2.0, is-utf8@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= is-valid-glob@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-1.0.0.tgz#29bf3eff701be2d4d315dbacc39bc39fe8f601aa" + integrity sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao= is-windows@^1.0.1, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== isarray@0.0.1, isarray@~0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= isarray@1.0.0, isarray@^1.0.0, 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= isobject@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= dependencies: isarray "1.0.0" isobject@^3.0.0, isobject@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -istanbul-api@^1.1.14: - version "1.2.2" - resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.2.2.tgz#e17cd519dd5ec4141197f246fdf380b75487f3b1" +istanbul-api@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.3.1.tgz#4c3b05d18c0016d1022e079b98dc82c40f488954" + integrity sha512-duj6AlLcsWNwUpfyfHt0nWIeRiZpuShnP40YTxOGQgtaN8fd6JYSxsvxUphTDy8V5MfDXo4s/xVCIIvVCO808g== dependencies: async "^2.1.4" + compare-versions "^3.1.0" fileset "^2.0.2" - istanbul-lib-coverage "^1.1.2" - istanbul-lib-hook "^1.1.0" - istanbul-lib-instrument "^1.9.2" - istanbul-lib-report "^1.1.3" - istanbul-lib-source-maps "^1.2.3" - istanbul-reports "^1.1.4" + istanbul-lib-coverage "^1.2.0" + istanbul-lib-hook "^1.2.0" + istanbul-lib-instrument "^1.10.1" + istanbul-lib-report "^1.1.4" + istanbul-lib-source-maps "^1.2.4" + istanbul-reports "^1.3.0" js-yaml "^3.7.0" mkdirp "^0.5.1" once "^1.4.0" -istanbul-lib-coverage@^1.1.1, istanbul-lib-coverage@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.2.tgz#4113c8ff6b7a40a1ef7350b01016331f63afde14" +istanbul-lib-coverage@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz#f7d8f2e42b97e37fe796114cb0f9d68b5e3a4341" + integrity sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A== -istanbul-lib-hook@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz#8538d970372cb3716d53e55523dd54b557a8d89b" +istanbul-lib-hook@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.2.1.tgz#f614ec45287b2a8fc4f07f5660af787575601805" + integrity sha512-eLAMkPG9FU0v5L02lIkcj/2/Zlz9OuluaXikdr5iStk8FDbSwAixTK9TkYxbF0eNnzAJTwM2fkV2A1tpsIp4Jg== dependencies: - append-transform "^0.4.0" + append-transform "^1.0.0" -istanbul-lib-instrument@^1.7.5, istanbul-lib-instrument@^1.8.0, istanbul-lib-instrument@^1.9.2: - version "1.9.2" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.2.tgz#84905bf47f7e0b401d6b840da7bad67086b4aab6" +istanbul-lib-instrument@^1.10.1: + version "1.10.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz#724b4b6caceba8692d3f1f9d0727e279c401af7b" + integrity sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ== dependencies: babel-generator "^6.18.0" babel-template "^6.16.0" babel-traverse "^6.18.0" babel-types "^6.18.0" babylon "^6.18.0" - istanbul-lib-coverage "^1.1.2" + istanbul-lib-coverage "^1.2.0" semver "^5.3.0" -istanbul-lib-report@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.3.tgz#2df12188c0fa77990c0d2176d2d0ba3394188259" +istanbul-lib-report@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.4.tgz#e886cdf505c4ebbd8e099e4396a90d0a28e2acb5" + integrity sha512-Azqvq5tT0U09nrncK3q82e/Zjkxa4tkFZv7E6VcqP0QCPn6oNljDPfrZEC/umNXds2t7b8sRJfs6Kmpzt8m2kA== dependencies: - istanbul-lib-coverage "^1.1.2" + istanbul-lib-coverage "^1.2.0" mkdirp "^0.5.1" path-parse "^1.0.5" supports-color "^3.1.2" -istanbul-lib-source-maps@^1.2.1, istanbul-lib-source-maps@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz#20fb54b14e14b3fb6edb6aca3571fd2143db44e6" +istanbul-lib-source-maps@^1.2.4: + version "1.2.5" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.5.tgz#ffe6be4e7ab86d3603e4290d54990b14506fc9b1" + integrity sha512-8O2T/3VhrQHn0XcJbP1/GN7kXMiRAlPi+fj3uEHrjBD8Oz7Py0prSC25C09NuAZS6bgW1NNKAvCSHZXB0irSGA== dependencies: debug "^3.1.0" - istanbul-lib-coverage "^1.1.2" + istanbul-lib-coverage "^1.2.0" mkdirp "^0.5.1" rimraf "^2.6.1" source-map "^0.5.3" -istanbul-reports@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.1.4.tgz#5ccba5e22b7b5a5d91d5e0a830f89be334bf97bd" +istanbul-reports@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.3.0.tgz#2f322e81e1d9520767597dca3c20a0cce89a3554" + integrity sha512-y2Z2IMqE1gefWUaVjrBm0mSKvUkaBy9Vqz8iwr/r40Y9hBbIteH5wqHG/9DLTfJ9xUnUT2j7A3+VVJ6EaYBllA== dependencies: handlebars "^4.0.3" -jest-changed-files@^22.2.0: - version "22.2.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-22.2.0.tgz#517610c4a8ca0925bdc88b0ca53bd678aa8d019e" +jest-changed-files@^23.4.2: + version "23.4.2" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-23.4.2.tgz#1eed688370cd5eebafe4ae93d34bb3b64968fe83" + integrity sha512-EyNhTAUWEfwnK0Is/09LxoqNDOn7mU7S3EHskG52djOFS/z+IT0jT3h3Ql61+dklcG7bJJitIWEMB4Sp1piHmA== dependencies: throat "^4.0.0" -jest-cli@^22.4.2: - version "22.4.2" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-22.4.2.tgz#e6546dc651e13d164481aa3e76e53ac4f4edab06" +jest-cli@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-23.6.0.tgz#61ab917744338f443ef2baa282ddffdd658a5da4" + integrity sha512-hgeD1zRUp1E1zsiyOXjEn4LzRLWdJBV//ukAHGlx6s5mfCNJTbhbHjgxnDUXA8fsKWN/HqFFF6X5XcCwC/IvYQ== dependencies: ansi-escapes "^3.0.0" chalk "^2.0.1" @@ -4938,137 +5581,160 @@ jest-cli@^22.4.2: graceful-fs "^4.1.11" import-local "^1.0.0" is-ci "^1.0.10" - istanbul-api "^1.1.14" - istanbul-lib-coverage "^1.1.1" - istanbul-lib-instrument "^1.8.0" - istanbul-lib-source-maps "^1.2.1" - jest-changed-files "^22.2.0" - jest-config "^22.4.2" - jest-environment-jsdom "^22.4.1" + istanbul-api "^1.3.1" + istanbul-lib-coverage "^1.2.0" + istanbul-lib-instrument "^1.10.1" + istanbul-lib-source-maps "^1.2.4" + jest-changed-files "^23.4.2" + jest-config "^23.6.0" + jest-environment-jsdom "^23.4.0" jest-get-type "^22.1.0" - jest-haste-map "^22.4.2" - jest-message-util "^22.4.0" - jest-regex-util "^22.1.0" - jest-resolve-dependencies "^22.1.0" - jest-runner "^22.4.2" - jest-runtime "^22.4.2" - jest-snapshot "^22.4.0" - jest-util "^22.4.1" - jest-validate "^22.4.2" - jest-worker "^22.2.2" + jest-haste-map "^23.6.0" + jest-message-util "^23.4.0" + jest-regex-util "^23.3.0" + jest-resolve-dependencies "^23.6.0" + jest-runner "^23.6.0" + jest-runtime "^23.6.0" + jest-snapshot "^23.6.0" + jest-util "^23.4.0" + jest-validate "^23.6.0" + jest-watcher "^23.4.0" + jest-worker "^23.2.0" micromatch "^2.3.11" node-notifier "^5.2.1" + prompts "^0.1.9" realpath-native "^1.0.0" rimraf "^2.5.4" slash "^1.0.0" string-length "^2.0.0" strip-ansi "^4.0.0" which "^1.2.12" - yargs "^10.0.3" + yargs "^11.0.0" -jest-config@^22.4.2: - version "22.4.2" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-22.4.2.tgz#580ba5819bf81a5e48f4fd470e8b81834f45c855" +jest-config@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-23.6.0.tgz#f82546a90ade2d8c7026fbf6ac5207fc22f8eb1d" + integrity sha512-i8V7z9BeDXab1+VNo78WM0AtWpBRXJLnkT+lyT+Slx/cbP5sZJ0+NDuLcmBE5hXAoK0aUp7vI+MOxR+R4d8SRQ== dependencies: + babel-core "^6.0.0" + babel-jest "^23.6.0" chalk "^2.0.1" glob "^7.1.1" - jest-environment-jsdom "^22.4.1" - jest-environment-node "^22.4.1" + jest-environment-jsdom "^23.4.0" + jest-environment-node "^23.4.0" jest-get-type "^22.1.0" - jest-jasmine2 "^22.4.2" - jest-regex-util "^22.1.0" - jest-resolve "^22.4.2" - jest-util "^22.4.1" - jest-validate "^22.4.2" - pretty-format "^22.4.0" + jest-jasmine2 "^23.6.0" + jest-regex-util "^23.3.0" + jest-resolve "^23.6.0" + jest-util "^23.4.0" + jest-validate "^23.6.0" + micromatch "^2.3.11" + pretty-format "^23.6.0" -jest-diff@^22.4.0: - version "22.4.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-22.4.0.tgz#384c2b78519ca44ca126382df53f134289232525" +jest-diff@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-23.6.0.tgz#1500f3f16e850bb3d71233408089be099f610c7d" + integrity sha512-Gz9l5Ov+X3aL5L37IT+8hoCUsof1CVYBb2QEkOupK64XyRR3h+uRpYIm97K7sY8diFxowR8pIGEdyfMKTixo3g== dependencies: chalk "^2.0.1" diff "^3.2.0" jest-get-type "^22.1.0" - pretty-format "^22.4.0" + pretty-format "^23.6.0" jest-docblock@^21.0.0: version "21.2.0" resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-21.2.0.tgz#51529c3b30d5fd159da60c27ceedc195faf8d414" + integrity sha512-5IZ7sY9dBAYSV+YjQ0Ovb540Ku7AO9Z5o2Cg789xj167iQuZ2cG+z0f3Uct6WeYLbU6aQiM2pCs7sZ+4dotydw== -jest-docblock@^22.4.0: - version "22.4.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-22.4.0.tgz#dbf1877e2550070cfc4d9b07a55775a0483159b8" +jest-docblock@^23.2.0: + version "23.2.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-23.2.0.tgz#f085e1f18548d99fdd69b20207e6fd55d91383a7" + integrity sha1-8IXh8YVI2Z/dabICB+b9VdkTg6c= dependencies: detect-newline "^2.1.0" -jest-environment-jsdom@^22.4.1: - version "22.4.1" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-22.4.1.tgz#754f408872441740100d3917e5ec40c74de6447f" +jest-each@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-23.6.0.tgz#ba0c3a82a8054387016139c733a05242d3d71575" + integrity sha512-x7V6M/WGJo6/kLoissORuvLIeAoyo2YqLOoCDkohgJ4XOXSqOtyvr8FbInlAWS77ojBsZrafbozWoKVRdtxFCg== dependencies: - jest-mock "^22.2.0" - jest-util "^22.4.1" - jsdom "^11.5.1" + chalk "^2.0.1" + pretty-format "^23.6.0" -jest-environment-node@^22.4.1: - version "22.4.1" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-22.4.1.tgz#418850eb654596b8d6e36c2021cbedbc23df8e16" +jest-environment-jsdom@^23.4.0: + version "23.4.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-23.4.0.tgz#056a7952b3fea513ac62a140a2c368c79d9e6023" + integrity sha1-BWp5UrP+pROsYqFAosNox52eYCM= dependencies: - jest-mock "^22.2.0" - jest-util "^22.4.1" + jest-mock "^23.2.0" + jest-util "^23.4.0" + jsdom "^11.5.1" -jest-get-type@^21.2.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-21.2.0.tgz#f6376ab9db4b60d81e39f30749c6c466f40d4a23" +jest-environment-node@^23.4.0: + version "23.4.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-23.4.0.tgz#57e80ed0841dea303167cce8cd79521debafde10" + integrity sha1-V+gO0IQd6jAxZ8zozXlSHeuv3hA= + dependencies: + jest-mock "^23.2.0" + jest-util "^23.4.0" jest-get-type@^22.1.0: version "22.1.0" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.1.0.tgz#4e90af298ed6181edc85d2da500dbd2753e0d5a9" + integrity sha512-nD97IVOlNP6fjIN5i7j5XRH+hFsHL7VlauBbzRvueaaUe70uohrkz7pL/N8lx/IAwZRTJ//wOdVgh85OgM7g3w== -jest-haste-map@^22.4.2: - version "22.4.2" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-22.4.2.tgz#a90178e66146d4378bb076345a949071f3b015b4" +jest-haste-map@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-23.6.0.tgz#2e3eb997814ca696d62afdb3f2529f5bbc935e16" + integrity sha512-uyNhMyl6dr6HaXGHp8VF7cK6KpC6G9z9LiMNsst+rJIZ8l7wY0tk8qwjPmEghczojZ2/ZhtEdIabZ0OQRJSGGg== dependencies: fb-watchman "^2.0.0" graceful-fs "^4.1.11" - jest-docblock "^22.4.0" - jest-serializer "^22.4.0" - jest-worker "^22.2.2" + invariant "^2.2.4" + jest-docblock "^23.2.0" + jest-serializer "^23.0.1" + jest-worker "^23.2.0" micromatch "^2.3.11" sane "^2.0.0" -jest-jasmine2@^22.4.2: - version "22.4.2" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-22.4.2.tgz#dfd3d259579ed6f52510d8f1ab692808f0d40691" +jest-jasmine2@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-23.6.0.tgz#840e937f848a6c8638df24360ab869cc718592e0" + integrity sha512-pe2Ytgs1nyCs8IvsEJRiRTPC0eVYd8L/dXJGU08GFuBwZ4sYH/lmFDdOL3ZmvJR8QKqV9MFuwlsAi/EWkFUbsQ== dependencies: + babel-traverse "^6.0.0" chalk "^2.0.1" co "^4.6.0" - expect "^22.4.0" - graceful-fs "^4.1.11" + expect "^23.6.0" is-generator-fn "^1.0.0" - jest-diff "^22.4.0" - jest-matcher-utils "^22.4.0" - jest-message-util "^22.4.0" - jest-snapshot "^22.4.0" - jest-util "^22.4.1" - source-map-support "^0.5.0" - -jest-leak-detector@^22.4.0: - version "22.4.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-22.4.0.tgz#64da77f05b001c96d2062226e079f89989c4aa2f" - dependencies: - pretty-format "^22.4.0" - -jest-matcher-utils@^22.4.0: - version "22.4.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-22.4.0.tgz#d55f5faf2270462736bdf7c7485ee931c9d4b6a1" + jest-diff "^23.6.0" + jest-each "^23.6.0" + jest-matcher-utils "^23.6.0" + jest-message-util "^23.4.0" + jest-snapshot "^23.6.0" + jest-util "^23.4.0" + pretty-format "^23.6.0" + +jest-leak-detector@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-23.6.0.tgz#e4230fd42cf381a1a1971237ad56897de7e171de" + integrity sha512-f/8zA04rsl1Nzj10HIyEsXvYlMpMPcy0QkQilVZDFOaPbv2ur71X5u2+C4ZQJGyV/xvVXtCCZ3wQ99IgQxftCg== + dependencies: + pretty-format "^23.6.0" + +jest-matcher-utils@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-23.6.0.tgz#726bcea0c5294261a7417afb6da3186b4b8cac80" + integrity sha512-rosyCHQfBcol4NsckTn01cdelzWLU9Cq7aaigDf8VwwpIRvWE/9zLgX2bON+FkEW69/0UuYslUe22SOdEf2nog== dependencies: chalk "^2.0.1" jest-get-type "^22.1.0" - pretty-format "^22.4.0" + pretty-format "^23.6.0" -jest-message-util@^22.4.0: - version "22.4.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-22.4.0.tgz#e3d861df16d2fee60cb2bc8feac2188a42579642" +jest-message-util@^23.4.0: + version "23.4.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-23.4.0.tgz#17610c50942349508d01a3d1e0bda2c079086a9f" + integrity sha1-F2EMUJQjSVCNAaPR4L2iwHkIap8= dependencies: "@babel/code-frame" "^7.0.0-beta.35" chalk "^2.0.1" @@ -5076,138 +5742,167 @@ jest-message-util@^22.4.0: slash "^1.0.0" stack-utils "^1.0.1" -jest-mock@^22.2.0: - version "22.2.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-22.2.0.tgz#444b3f9488a7473adae09bc8a77294afded397a7" +jest-mock@^23.2.0: + version "23.2.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-23.2.0.tgz#ad1c60f29e8719d47c26e1138098b6d18b261134" + integrity sha1-rRxg8p6HGdR8JuETgJi20YsmETQ= -jest-regex-util@^22.1.0: - version "22.1.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-22.1.0.tgz#5daf2fe270074b6da63e5d85f1c9acc866768f53" +jest-regex-util@^23.3.0: + version "23.3.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-23.3.0.tgz#5f86729547c2785c4002ceaa8f849fe8ca471bc5" + integrity sha1-X4ZylUfCeFxAAs6qj4Sf6MpHG8U= -jest-resolve-dependencies@^22.1.0: - version "22.1.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-22.1.0.tgz#340e4139fb13315cd43abc054e6c06136be51e31" +jest-resolve-dependencies@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-23.6.0.tgz#b4526af24c8540d9a3fab102c15081cf509b723d" + integrity sha512-EkQWkFWjGKwRtRyIwRwI6rtPAEyPWlUC2MpzHissYnzJeHcyCn1Hc8j7Nn1xUVrS5C6W5+ZL37XTem4D4pLZdA== dependencies: - jest-regex-util "^22.1.0" + jest-regex-util "^23.3.0" + jest-snapshot "^23.6.0" -jest-resolve@^22.4.2: - version "22.4.2" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-22.4.2.tgz#25d88aa4147462c9c1c6a1ba16250d3794c24d00" +jest-resolve@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-23.6.0.tgz#cf1d1a24ce7ee7b23d661c33ba2150f3aebfa0ae" + integrity sha512-XyoRxNtO7YGpQDmtQCmZjum1MljDqUCob7XlZ6jy9gsMugHdN2hY4+Acz9Qvjz2mSsOnPSH7skBmDYCHXVZqkA== dependencies: - browser-resolve "^1.11.2" + browser-resolve "^1.11.3" chalk "^2.0.1" + realpath-native "^1.0.0" -jest-runner@^22.4.2: - version "22.4.2" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-22.4.2.tgz#19390ea9d99f768973e16f95a1efa351c0017e87" +jest-runner@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-23.6.0.tgz#3894bd219ffc3f3cb94dc48a4170a2e6f23a5a38" + integrity sha512-kw0+uj710dzSJKU6ygri851CObtCD9cN8aNkg8jWJf4ewFyEa6kwmiH/r/M1Ec5IL/6VFa0wnAk6w+gzUtjJzA== dependencies: exit "^0.1.2" - jest-config "^22.4.2" - jest-docblock "^22.4.0" - jest-haste-map "^22.4.2" - jest-jasmine2 "^22.4.2" - jest-leak-detector "^22.4.0" - jest-message-util "^22.4.0" - jest-runtime "^22.4.2" - jest-util "^22.4.1" - jest-worker "^22.2.2" + graceful-fs "^4.1.11" + jest-config "^23.6.0" + jest-docblock "^23.2.0" + jest-haste-map "^23.6.0" + jest-jasmine2 "^23.6.0" + jest-leak-detector "^23.6.0" + jest-message-util "^23.4.0" + jest-runtime "^23.6.0" + jest-util "^23.4.0" + jest-worker "^23.2.0" + source-map-support "^0.5.6" throat "^4.0.0" -jest-runtime@^22.4.2: - version "22.4.2" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-22.4.2.tgz#0de0444f65ce15ee4f2e0055133fc7c17b9168f3" +jest-runtime@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-23.6.0.tgz#059e58c8ab445917cd0e0d84ac2ba68de8f23082" + integrity sha512-ycnLTNPT2Gv+TRhnAYAQ0B3SryEXhhRj1kA6hBPSeZaNQkJ7GbZsxOLUkwg6YmvWGdX3BB3PYKFLDQCAE1zNOw== dependencies: babel-core "^6.0.0" - babel-jest "^22.4.1" - babel-plugin-istanbul "^4.1.5" + babel-plugin-istanbul "^4.1.6" chalk "^2.0.1" convert-source-map "^1.4.0" exit "^0.1.2" + fast-json-stable-stringify "^2.0.0" graceful-fs "^4.1.11" - jest-config "^22.4.2" - jest-haste-map "^22.4.2" - jest-regex-util "^22.1.0" - jest-resolve "^22.4.2" - jest-util "^22.4.1" - jest-validate "^22.4.2" - json-stable-stringify "^1.0.1" + jest-config "^23.6.0" + jest-haste-map "^23.6.0" + jest-message-util "^23.4.0" + jest-regex-util "^23.3.0" + jest-resolve "^23.6.0" + jest-snapshot "^23.6.0" + jest-util "^23.4.0" + jest-validate "^23.6.0" micromatch "^2.3.11" realpath-native "^1.0.0" slash "^1.0.0" strip-bom "3.0.0" write-file-atomic "^2.1.0" - yargs "^10.0.3" + yargs "^11.0.0" -jest-serializer@^22.4.0: - version "22.4.0" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-22.4.0.tgz#b5d145b98c4b0d2c20ab686609adbb81fe23b566" +jest-serializer@^23.0.1: + version "23.0.1" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-23.0.1.tgz#a3776aeb311e90fe83fab9e533e85102bd164165" + integrity sha1-o3dq6zEekP6D+rnlM+hRAr0WQWU= -jest-snapshot@^22.4.0: - version "22.4.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-22.4.0.tgz#03d3ce63f8fa7352388afc6a3c8b5ccc3a180ed7" +jest-snapshot@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-23.6.0.tgz#f9c2625d1b18acda01ec2d2b826c0ce58a5aa17a" + integrity sha512-tM7/Bprftun6Cvj2Awh/ikS7zV3pVwjRYU2qNYS51VZHgaAMBs5l4o/69AiDHhQrj5+LA2Lq4VIvK7zYk/bswg== dependencies: + babel-types "^6.0.0" chalk "^2.0.1" - jest-diff "^22.4.0" - jest-matcher-utils "^22.4.0" + jest-diff "^23.6.0" + jest-matcher-utils "^23.6.0" + jest-message-util "^23.4.0" + jest-resolve "^23.6.0" mkdirp "^0.5.1" natural-compare "^1.4.0" - pretty-format "^22.4.0" + pretty-format "^23.6.0" + semver "^5.5.0" -jest-util@^22.4.1: - version "22.4.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-22.4.1.tgz#dd17c3bdb067f8e90591563ec0c42bf847dc249f" +jest-util@^23.4.0: + version "23.4.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-23.4.0.tgz#4d063cb927baf0a23831ff61bec2cbbf49793561" + integrity sha1-TQY8uSe68KI4Mf9hvsLLv0l5NWE= dependencies: callsites "^2.0.0" chalk "^2.0.1" graceful-fs "^4.1.11" is-ci "^1.0.10" - jest-message-util "^22.4.0" + jest-message-util "^23.4.0" mkdirp "^0.5.1" + slash "^1.0.0" source-map "^0.6.0" -jest-validate@^21.1.0: - version "21.2.1" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-21.2.1.tgz#cc0cbca653cd54937ba4f2a111796774530dd3c7" +jest-validate@^23.5.0, jest-validate@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-23.6.0.tgz#36761f99d1ed33fcd425b4e4c5595d62b6597474" + integrity sha512-OFKapYxe72yz7agrDAWi8v2WL8GIfVqcbKRCLbRG9PAxtzF9b1SEDdTpytNDN12z2fJynoBwpMpvj2R39plI2A== dependencies: chalk "^2.0.1" - jest-get-type "^21.2.0" + jest-get-type "^22.1.0" leven "^2.1.0" - pretty-format "^21.2.1" + pretty-format "^23.6.0" -jest-validate@^22.4.2: - version "22.4.2" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-22.4.2.tgz#e789a4e056173bf97fe797a2df2d52105c57d4f4" +jest-watcher@^23.4.0: + version "23.4.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-23.4.0.tgz#d2e28ce74f8dad6c6afc922b92cabef6ed05c91c" + integrity sha1-0uKM50+NrWxq/JIrksq+9u0FyRw= dependencies: + ansi-escapes "^3.0.0" chalk "^2.0.1" - jest-config "^22.4.2" - jest-get-type "^22.1.0" - leven "^2.1.0" - pretty-format "^22.4.0" + string-length "^2.0.0" -jest-worker@^22.2.2: - version "22.2.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-22.2.2.tgz#c1f5dc39976884b81f68ec50cb8532b2cbab3390" +jest-worker@^23.2.0: + version "23.2.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-23.2.0.tgz#faf706a8da36fae60eb26957257fa7b5d8ea02b9" + integrity sha1-+vcGqNo2+uYOsmlXJX+ntdjqArk= dependencies: merge-stream "^1.0.1" -jest@^22.4.2: - version "22.4.2" - resolved "https://registry.yarnpkg.com/jest/-/jest-22.4.2.tgz#34012834a49bf1bdd3bc783850ab44e4499afc20" +jest@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-23.6.0.tgz#ad5835e923ebf6e19e7a1d7529a432edfee7813d" + integrity sha512-lWzcd+HSiqeuxyhG+EnZds6iO3Y3ZEnMrfZq/OTGvF/C+Z4fPMCdhWTGSAiO2Oym9rbEXfwddHhh6jqrTF3+Lw== dependencies: import-local "^1.0.0" - jest-cli "^22.4.2" + jest-cli "^23.6.0" js-levenshtein@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.3.tgz#3ef627df48ec8cf24bacf05c0f184ff30ef413c5" + integrity sha512-/812MXr9RBtMObviZ8gQBhHO8MOrGj8HlEE+4ccMTElNA/6I3u39u+bhny55Lk921yn44nSZFy9naNLElL5wgQ== js-tokens@^3.0.0, js-tokens@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= + +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.11.0: +js-yaml@^3.12.0: version "3.12.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" + integrity sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A== dependencies: argparse "^1.0.7" esprima "^4.0.0" @@ -5215,6 +5910,7 @@ js-yaml@^3.11.0: js-yaml@^3.2.1, js-yaml@^3.7.0, js-yaml@^3.9.0: version "3.11.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.11.0.tgz#597c1a8bd57152f26d622ce4117851a51f5ebaef" + integrity sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw== dependencies: argparse "^1.0.7" esprima "^4.0.0" @@ -5222,10 +5918,12 @@ js-yaml@^3.2.1, js-yaml@^3.7.0, js-yaml@^3.9.0: jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= jsdom@^11.5.1: version "11.6.2" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.6.2.tgz#25d1ef332d48adf77fc5221fe2619967923f16bb" + integrity sha512-pAeZhpbSlUp5yQcS6cBQJwkbzmv4tWFaYxHbFVSxzXefqjvtRA851Z5N2P+TguVG9YeUDcgb8pdeVQRJh0XR3Q== dependencies: abab "^1.0.4" acorn "^5.3.0" @@ -5257,76 +5955,93 @@ jsdom@^11.5.1: jsesc@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= jsesc@^2.5.1: version "2.5.1" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe" + integrity sha1-5CGiqOINawgZ3yiQj3glJrlt0f4= jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= json-loader@^0.5.4: version "0.5.7" resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" + integrity sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w== json-parse-better-errors@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz#50183cd1b2d25275de069e9e71b467ac9eab973a" + integrity sha512-xyQpxeWWMKyJps9CuGJYeng6ssI5bpqS9ltQpdVQ90t4ql6NdnxFKh95JcRt2cun/DjMVNrdjniLPuMA69xmCw== json-schema-traverse@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" + integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A= 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-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= 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= json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= dependencies: jsonify "~0.0.0" json-stable-stringify@~0.0.0: version "0.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz#611c23e814db375527df851193db59dd2af27f45" + integrity sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U= dependencies: jsonify "~0.0.0" json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= json5@^0.5.0, json5@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= optionalDependencies: graceful-fs "^4.1.6" jsonify@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= jsonparse@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= jsprim@^1.2.2: version "1.4.1" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= dependencies: assert-plus "1.0.0" extsprintf "1.3.0" @@ -5336,44 +6051,58 @@ jsprim@^1.2.2: just-debounce@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/just-debounce/-/just-debounce-1.0.0.tgz#87fccfaeffc0b68cd19d55f6722943f929ea35ea" + integrity sha1-h/zPrv/AtozRnVX2cilD+SnqNeo= kew@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/kew/-/kew-0.7.0.tgz#79d93d2d33363d6fdd2970b335d9141ad591d79b" + integrity sha1-edk9LTM2PW/dKXCzNdkUGtWR15s= kind-of@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-1.1.0.tgz#140a3d2d41a36d2efcfa9377b62c24f8495a5c44" + integrity sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ= kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.1.0, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= dependencies: is-buffer "^1.1.5" kind-of@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= dependencies: is-buffer "^1.1.5" kind-of@^5.0.0, kind-of@^5.0.2: version "5.1.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== kind-of@^6.0.0, kind-of@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" + integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== klaw@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/klaw/-/klaw-2.1.1.tgz#42b76894701169cc910fd0d19ce677b5fb378af1" + integrity sha1-QrdolHARacyRD9DRnOZ3tfs3ivE= dependencies: graceful-fs "^4.1.9" +kleur@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-1.0.2.tgz#637f126d3cda40a423b1297da88cf753bd04ebdd" + integrity sha512-4u2TF1/mKmiawrkjzCxRKszdCvqRsPgTJwjmZZt0RE4OiZMzvFfb4kwqfFP/p0gvakH1lhQOfCMYXUOYI9dTgA== + labeled-stream-splicer@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.0.tgz#a52e1d138024c00b86b1c0c91f677918b8ae0a59" + integrity sha1-pS4dE4AkwAuGscDJH2d5GLiuClk= dependencies: inherits "^2.0.1" isarray "~0.0.1" @@ -5382,6 +6111,7 @@ labeled-stream-splicer@^2.0.0: last-run@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/last-run/-/last-run-1.1.1.tgz#45b96942c17b1c79c772198259ba943bebf8ca5b" + integrity sha1-RblpQsF7HHnHchmCWbqUO+v4yls= dependencies: default-resolution "^2.0.0" es6-weak-map "^2.0.1" @@ -5389,38 +6119,45 @@ last-run@^1.1.0: lazy-cache@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4= lazy-cache@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-2.0.2.tgz#b9190a4f913354694840859f8a8f7084d8822264" + integrity sha1-uRkKT5EzVGlIQIWfio9whNiCImQ= dependencies: set-getter "^0.1.0" lazystream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" + integrity sha1-9plf4PggOS9hOWvolGJAe7dxaOQ= dependencies: readable-stream "^2.0.5" lcid@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= dependencies: invert-kv "^1.0.0" lead@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lead/-/lead-1.0.0.tgz#6f14f99a37be3a9dd784f5495690e5903466ee42" + integrity sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI= dependencies: flush-write-stream "^1.0.2" left-pad@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.2.0.tgz#d30a73c6b8201d8f7d8e7956ba9616087a68e0ee" + integrity sha1-0wpzxrggHY99jnlWupYWCHpo4O4= lerna-changelog@^0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/lerna-changelog/-/lerna-changelog-0.5.0.tgz#1617a8193a1309451ffa1e686b425faf0424b3f8" + integrity sha512-+HFe8T3Q35Fwn2+fTRBvi0EdbKXrsGOozkuWBhq33DTJLBAqAFZ7m1LtKqF8LLuP0asZ0W9L+tGCAhoAt1+J1w== dependencies: chalk "^1.1.3" mkdirp "^0.5.1" @@ -5433,6 +6170,7 @@ lerna-changelog@^0.5.0: lerna@^2.11.0: version "2.11.0" resolved "https://registry.yarnpkg.com/lerna/-/lerna-2.11.0.tgz#89b5681e286d388dda5bbbdbbf6b84c8094eff65" + integrity sha512-kgM6zwe2P2tR30MYvgiLLW+9buFCm6E7o8HnRlhTgm70WVBvXVhydqv+q/MF2HrVZkCawfVtCfetyQmtd4oHhQ== dependencies: async "^1.5.0" chalk "^2.1.0" @@ -5477,10 +6215,12 @@ lerna@^2.11.0: leven@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" + integrity sha1-wuep93IJTe6dNCAq6KzORoeHVYA= levn@^0.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= dependencies: prelude-ls "~1.1.2" type-check "~0.3.2" @@ -5488,12 +6228,14 @@ levn@^0.3.0, levn@~0.3.0: lexical-scope@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/lexical-scope/-/lexical-scope-1.2.0.tgz#fcea5edc704a4b3a8796cdca419c3a0afaf22df4" + integrity sha1-/Ope3HBKSzqHls3KQZw6CvryLfQ= dependencies: astw "^2.0.0" liftoff@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-2.5.0.tgz#2009291bb31cea861bbf10a7c15a28caf75c31ec" + integrity sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew= dependencies: extend "^3.0.0" findup-sync "^2.0.0" @@ -5504,38 +6246,43 @@ liftoff@^2.5.0: rechoir "^0.6.2" resolve "^1.1.7" -lint-staged@^6.0.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-6.1.1.tgz#cd08c4d9b8ccc2d37198d1c47ce77d22be6cf324" +lint-staged@^7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-7.3.0.tgz#90ff33e5ca61ed3dbac35b6f6502dbefdc0db58d" + integrity sha512-AXk40M9DAiPi7f4tdJggwuKIViUplYtVj1os1MVEteW7qOkU50EOehayCfO9TsoGK24o/EsWb41yrEgfJDDjCw== dependencies: - app-root-path "^2.0.0" - chalk "^2.1.0" - commander "^2.11.0" - cosmiconfig "^4.0.0" + chalk "^2.3.1" + commander "^2.14.1" + cosmiconfig "^5.0.2" debug "^3.1.0" dedent "^0.7.0" - execa "^0.8.0" + execa "^0.9.0" find-parent-dir "^0.3.0" is-glob "^4.0.0" - jest-validate "^21.1.0" - listr "^0.13.0" - lodash "^4.17.4" - log-symbols "^2.0.0" - minimatch "^3.0.0" + is-windows "^1.0.2" + jest-validate "^23.5.0" + listr "^0.14.1" + lodash "^4.17.5" + log-symbols "^2.2.0" + micromatch "^3.1.8" npm-which "^3.0.1" p-map "^1.1.1" path-is-inside "^1.0.2" pify "^3.0.0" - staged-git-files "1.0.0" - stringify-object "^3.2.0" + please-upgrade-node "^3.0.2" + staged-git-files "1.1.1" + string-argv "^0.0.2" + stringify-object "^3.2.2" listr-silent-renderer@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" + integrity sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4= listr-update-renderer@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.4.0.tgz#344d980da2ca2e8b145ba305908f32ae3f4cc8a7" + integrity sha1-NE2YDaLKLosUW6MFkI8yrj9MyKc= dependencies: chalk "^1.1.3" cli-truncate "^0.2.1" @@ -5549,37 +6296,32 @@ listr-update-renderer@^0.4.0: listr-verbose-renderer@^0.4.0: version "0.4.1" resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz#8206f4cf6d52ddc5827e5fd14989e0e965933a35" + integrity sha1-ggb0z21S3cWCfl/RSYng6WWTOjU= dependencies: chalk "^1.1.3" cli-cursor "^1.0.2" date-fns "^1.27.2" figures "^1.7.0" -listr@^0.13.0: - version "0.13.0" - resolved "https://registry.yarnpkg.com/listr/-/listr-0.13.0.tgz#20bb0ba30bae660ee84cc0503df4be3d5623887d" +listr@^0.14.1: + version "0.14.2" + resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.2.tgz#cbe44b021100a15376addfc2d79349ee430bfe14" + integrity sha512-vmaNJ1KlGuGWShHI35X/F8r9xxS0VTHh9GejVXwSN20fG5xpq3Jh4bJbnumoT6q5EDM/8/YP1z3YMtQbFmhuXw== dependencies: - chalk "^1.1.3" - cli-truncate "^0.2.1" - figures "^1.7.0" - indent-string "^2.1.0" - is-observable "^0.2.0" + "@samverschueren/stream-to-observable" "^0.3.0" + is-observable "^1.1.0" is-promise "^2.1.0" is-stream "^1.1.0" listr-silent-renderer "^1.1.1" listr-update-renderer "^0.4.0" listr-verbose-renderer "^0.4.0" - log-symbols "^1.0.2" - log-update "^1.0.2" - ora "^0.2.3" p-map "^1.1.1" - rxjs "^5.4.2" - stream-to-observable "^0.2.0" - strip-ansi "^3.0.1" + rxjs "^6.1.0" load-json-file@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= dependencies: graceful-fs "^4.1.2" parse-json "^2.2.0" @@ -5590,6 +6332,7 @@ load-json-file@^1.0.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" @@ -5599,6 +6342,7 @@ load-json-file@^2.0.0: load-json-file@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= dependencies: graceful-fs "^4.1.2" parse-json "^4.0.0" @@ -5608,10 +6352,12 @@ load-json-file@^4.0.0: loader-runner@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" + integrity sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI= loader-utils@^1.0.2, loader-utils@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" + integrity sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0= dependencies: big.js "^3.1.3" emojis-list "^2.0.0" @@ -5620,67 +6366,90 @@ loader-utils@^1.0.2, loader-utils@^1.1.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" +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + lodash._basecopy@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" + integrity sha1-jaDmqHbPNEwK2KVIghEd08XHyjY= lodash._basetostring@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5" + integrity sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U= lodash._basevalues@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7" + integrity sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc= lodash._getnative@^3.0.0: version "3.9.1" resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U= lodash._isiterateecall@^3.0.0: version "3.0.9" resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" + integrity sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw= lodash._reescape@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a" + integrity sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo= lodash._reevaluate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed" + integrity sha1-WLx0xAZklTrgsSTYBpltrKQx4u0= lodash._reinterpolate@^3.0.0, lodash._reinterpolate@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= lodash._root@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" + integrity sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI= lodash.clone@^4.3.2: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.clone/-/lodash.clone-4.5.0.tgz#195870450f5a13192478df4bc3d23d2dea1907b6" + integrity sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y= lodash.escape@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698" + integrity sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg= dependencies: lodash._root "^3.0.0" lodash.isarguments@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo= lodash.isarray@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" + integrity sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U= lodash.keys@^3.0.0: version "3.1.2" resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" + integrity sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo= dependencies: lodash._getnative "^3.0.0" lodash.isarguments "^3.0.0" @@ -5689,22 +6458,27 @@ lodash.keys@^3.0.0: lodash.memoize@~3.0.3: version "3.0.4" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f" + integrity sha1-LcvSwofLwKVcxCMovQxzYVDVPj8= lodash.restparam@^3.0.0: version "3.6.1" resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" + integrity sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU= lodash.some@^4.2.2: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" + integrity sha1-G7nzFO9ri63tE7VJFpsqlF62jk0= lodash.sortby@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= lodash.template@^3.0.0: version "3.6.2" resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f" + integrity sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8= dependencies: lodash._basecopy "^3.0.0" lodash._basetostring "^3.0.0" @@ -5719,6 +6493,7 @@ lodash.template@^3.0.0: lodash.template@^4.0.2: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.4.0.tgz#e73a0385c8355591746e020b99679c690e68fba0" + integrity sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A= dependencies: lodash._reinterpolate "~3.0.0" lodash.templatesettings "^4.0.0" @@ -5726,6 +6501,7 @@ lodash.template@^4.0.2: lodash.templatesettings@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz#fb307844753b66b9f1afa54e262c745307dba8e5" + integrity sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU= dependencies: lodash._reinterpolate "^3.0.0" lodash.escape "^3.0.0" @@ -5733,32 +6509,38 @@ lodash.templatesettings@^3.0.0: lodash.templatesettings@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz#2b4d4e95ba440d915ff08bc899e4553666713316" + integrity sha1-K01OlbpEDZFf8IvImeRVNmZxMxY= dependencies: lodash._reinterpolate "~3.0.0" lodash@^4.13.1, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0: version "4.17.5" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" + integrity sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw== lodash@^4.17.10, lodash@^4.17.5: version "4.17.10" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" + integrity sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg== log-symbols@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" + integrity sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg= dependencies: chalk "^1.0.0" -log-symbols@^2.0.0: +log-symbols@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" + integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== dependencies: chalk "^2.0.1" log-update@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/log-update/-/log-update-1.0.2.tgz#19929f64c4093d2d2e7075a1dad8af59c296b8d1" + integrity sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE= dependencies: ansi-escapes "^1.0.0" cli-cursor "^1.0.2" @@ -5766,16 +6548,19 @@ log-update@^1.0.2: longest@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc= loose-envify@^1.0.0: version "1.3.1" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" + integrity sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg= dependencies: js-tokens "^3.0.0" loud-rejection@^1.0.0: version "1.6.0" resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= dependencies: currently-unhandled "^0.4.1" signal-exit "^3.0.0" @@ -5783,14 +6568,17 @@ loud-rejection@^1.0.0: lower-case@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" + integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= lowercase-keys@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== lru-cache@^4.0.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" + integrity sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew== dependencies: pseudomap "^1.0.2" yallist "^2.1.2" @@ -5798,52 +6586,62 @@ lru-cache@^4.0.1: make-dir@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.2.0.tgz#6d6a49eead4aae296c53bbf3a1a008bd6c89469b" + integrity sha512-aNUAa4UMg/UougV25bbrU4ZaaKNjJ/3/xnvg/twpmKROPdKZPZ9wGgI0opdZzO8q/zUFawoUuixuOv33eZ61Iw== dependencies: pify "^3.0.0" make-error-cause@^1.1.1: version "1.2.2" resolved "https://registry.yarnpkg.com/make-error-cause/-/make-error-cause-1.2.2.tgz#df0388fcd0b37816dff0a5fb8108939777dcbc9d" + integrity sha1-3wOI/NCzeBbf8KX7gQiTl3fcvJ0= dependencies: make-error "^1.2.0" make-error@^1.2.0: version "1.3.4" resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.4.tgz#19978ed575f9e9545d2ff8c13e33b5d18a67d535" + integrity sha512-0Dab5btKVPhibSalc9QGXb559ED7G7iLjFXBaj9Wq8O3vorueR5K5jaE3hkG6ZQINyhA/JgG6Qk4qdFQjsYV6g== make-iterator@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/make-iterator/-/make-iterator-1.0.0.tgz#57bef5dc85d23923ba23767324d8e8f8f3d9694b" + integrity sha1-V7713IXSOSO6I3ZzJNjo+PPZaUs= dependencies: kind-of "^3.1.0" makeerror@1.0.x: version "1.0.11" resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" + integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= dependencies: tmpl "1.0.x" map-cache@^0.2.0, map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= map-obj@^1.0.0, map-obj@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= map-obj@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" + integrity sha1-plzSkIepJZi4eRJXpSPgISIqwfk= map-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= dependencies: object-visit "^1.0.0" matchdep@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/matchdep/-/matchdep-2.0.0.tgz#c6f34834a0d8dbc3b37c27ee8bbcb27c7775582e" + integrity sha1-xvNINKDY28OzfCfui7yyfHd1WC4= dependencies: findup-sync "^2.0.0" micromatch "^3.0.4" @@ -5853,6 +6651,7 @@ matchdep@^2.0.0: md5.js@^1.3.4: version "1.3.4" resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" + integrity sha1-6b296UogpawYsENA/Fdk1bCdkB0= dependencies: hash-base "^3.0.0" inherits "^2.0.1" @@ -5860,12 +6659,14 @@ md5.js@^1.3.4: mem@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + integrity sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y= dependencies: mimic-fn "^1.0.0" memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= dependencies: errno "^0.1.3" readable-stream "^2.0.1" @@ -5873,6 +6674,7 @@ memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1: meow@^3.3.0: version "3.7.0" resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= dependencies: camelcase-keys "^2.0.0" decamelize "^1.1.2" @@ -5888,6 +6690,7 @@ meow@^3.3.0: meow@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/meow/-/meow-4.0.0.tgz#fd5855dd008db5b92c552082db1c307cba20b29d" + integrity sha512-Me/kel335m6vMKmEmA6c87Z6DUFW3JqkINRnxkbC+A/PUm0D5Fl2dEBQrPKnqCL9Te/CIa1MUt/0InMJhuC/sw== dependencies: camelcase-keys "^4.0.0" decamelize-keys "^1.0.0" @@ -5902,16 +6705,19 @@ meow@^4.0.0: merge-stream@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" + integrity sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE= dependencies: readable-stream "^2.0.1" merge@^1.1.3: version "1.2.0" resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da" + integrity sha1-dTHjnUlJwoGma4xabgJl6LBYlNo= micromatch@^2.1.5, micromatch@^2.3.11: version "2.3.11" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU= dependencies: arr-diff "^2.0.0" array-unique "^0.2.1" @@ -5930,6 +6736,7 @@ micromatch@^2.1.5, micromatch@^2.3.11: micromatch@^3.0.4, micromatch@^3.1.4: version "3.1.9" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.9.tgz#15dc93175ae39e52e93087847096effc73efcf89" + integrity sha512-SlIz6sv5UPaAVVFRKodKjCg48EbNoIhgetzfK/Cy0v5U52Z6zB136M8tp0UC9jM53LYbmIRihJszvvqpKkfm9g== dependencies: arr-diff "^4.0.0" array-unique "^0.3.2" @@ -5945,9 +6752,10 @@ micromatch@^3.0.4, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -micromatch@^3.1.10: +micromatch@^3.1.8: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== dependencies: arr-diff "^4.0.0" array-unique "^0.3.2" @@ -5966,6 +6774,7 @@ micromatch@^3.1.10: miller-rabin@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== dependencies: bn.js "^4.0.0" brorand "^1.0.1" @@ -5973,34 +6782,41 @@ miller-rabin@^4.0.0: mime-db@~1.33.0: version "1.33.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" + integrity sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ== mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.7: version "2.1.18" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" + integrity sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ== dependencies: mime-db "~1.33.0" mimic-fn@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== minimalistic-assert@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" + integrity sha1-cCvi3aazf0g2vLP121ZkG2Sh09M= minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, 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-options@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954" + integrity sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ== dependencies: arrify "^1.0.1" is-plain-obj "^1.1.0" @@ -6008,22 +6824,27 @@ minimist-options@^3.0.1: minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= minimist@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.1.0.tgz#99df657a52574c21c9057497df742790b2b4c0de" + integrity sha1-md9lelJXTCHJBXSX33QnkLK0wN4= minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= minimist@~0.0.1: version "0.0.10" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= minipass@^2.2.1, minipass@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.2.4.tgz#03c824d84551ec38a8d1bb5bc350a5a30a354a40" + integrity sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g== dependencies: safe-buffer "^5.1.1" yallist "^3.0.0" @@ -6031,12 +6852,14 @@ minipass@^2.2.1, minipass@^2.2.4: minizlib@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb" + integrity sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA== dependencies: minipass "^2.2.1" mixin-deep@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" + integrity sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ== dependencies: for-in "^1.0.2" is-extendable "^1.0.1" @@ -6044,28 +6867,31 @@ mixin-deep@^1.2.0: "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= dependencies: minimist "0.0.8" modify-values@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.0.tgz#e2b6cdeb9ce19f99317a53722f3dbf5df5eaaab2" + integrity sha1-4rbN65zhn5kxelNyLz2/XfXqqrI= -module-deps@^4.0.8: - version "4.1.1" - resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-4.1.1.tgz#23215833f1da13fd606ccb8087b44852dcb821fd" +module-deps@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-6.1.0.tgz#d1e1efc481c6886269f7112c52c3236188e16479" + integrity sha512-NPs5N511VD1rrVJihSso/LiBShRbJALYBKzDW91uZYy7BpjnO4bGnZL3HjZ9yKcFdZUWwaYjDz9zxbuP7vKMuQ== dependencies: JSONStream "^1.0.3" browser-resolve "^1.7.0" cached-path-relative "^1.0.0" - concat-stream "~1.5.0" + concat-stream "~1.6.0" defined "^1.0.0" - detective "^4.0.0" + detective "^5.0.2" duplexer2 "^0.1.2" inherits "^2.0.1" parents "^1.0.0" readable-stream "^2.0.2" - resolve "^1.1.3" + resolve "^1.4.0" stream-combiner2 "^1.1.1" subarg "^1.0.0" through2 "^2.0.0" @@ -6074,14 +6900,17 @@ module-deps@^4.0.8: moment@^2.6.0: version "2.21.0" resolved "https://registry.yarnpkg.com/moment/-/moment-2.21.0.tgz#2a114b51d2a6ec9e6d83cf803f838a878d8a023a" + integrity sha512-TCZ36BjURTeFTM/CwRcViQlfkMvL1/vFISuNLO5GkcVm1+QHfbSiNqZuWeMFjj1/3+uAjXswgRk30j1kkLYJBQ== ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= multimatch@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b" + integrity sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis= dependencies: array-differ "^1.0.0" array-union "^1.0.1" @@ -6091,28 +6920,34 @@ multimatch@^2.0.0: multipipe@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b" + integrity sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s= dependencies: duplexer2 "0.0.2" mute-stdout@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/mute-stdout/-/mute-stdout-1.0.0.tgz#5b32ea07eb43c9ded6130434cf926f46b2a7fd4d" + integrity sha1-WzLqB+tDyd7WEwQ0z5JvRrKn/U0= mute-stream@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= nan@^2.3.0: version "2.9.2" resolved "https://registry.yarnpkg.com/nan/-/nan-2.9.2.tgz#f564d75f5f8f36a6d9456cca7a6c4fe488ab7866" + integrity sha512-ltW65co7f3PQWBDbqVvaU1WtFJUsNW7sWWm4HINhbMQIyVyzIeyZ8toX5TC5eeooE6piZoaEh4cZkueSKG3KYw== nan@^2.9.2: version "2.10.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" + integrity sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA== nanomatch@^1.2.9: version "1.2.9" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.9.tgz#879f7150cb2dab7a471259066c104eee6e0fa7c2" + integrity sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA== dependencies: arr-diff "^4.0.0" array-unique "^0.3.2" @@ -6130,16 +6965,19 @@ nanomatch@^1.2.9: 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= ncname@1.0.x: version "1.0.0" resolved "https://registry.yarnpkg.com/ncname/-/ncname-1.0.0.tgz#5b57ad18b1ca092864ef62b0b1ed8194f383b71c" + integrity sha1-W1etGLHKCShk72Kwse2BlPODtxw= dependencies: xml-char-classes "^1.0.0" needle@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.0.tgz#f14efc69cee1024b72c8b21c7bdf94a731dc12fa" + integrity sha512-eFagy6c+TYayorXw/qtAdSvaUpEbBsDwDyxYFgLZ0lTojfH7K+OdBqAF7TAFwDokJaGpubpSGG0wO3iC0XPi8w== dependencies: debug "^2.1.2" iconv-lite "^0.4.4" @@ -6148,20 +6986,24 @@ needle@^2.2.0: neo-async@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.5.0.tgz#76b1c823130cca26acfbaccc8fbaf0a2fa33b18f" + integrity sha512-nJmSswG4As/MkRq7QZFuH/sf/yuv8ODdMZrY4Bedjp77a5MK4A6s7YbBB64c9u79EBUOfXUXBvArmvzTD0X+6g== nice-try@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.4.tgz#d93962f6c52f2c1558c0fbda6d512819f1efe1c4" + integrity sha512-2NpiFHqC87y/zFke0fC0spBXL3bBsoh/p5H1EFhshxjCR5+0g2d6BiXbUFz9v1sAcxsk2htp2eQnNIci2dIYcA== no-case@^2.2.0: version "2.3.2" resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" + integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== dependencies: lower-case "^1.1.1" node-fetch@^1.7.0: version "1.7.3" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" + integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== dependencies: encoding "^0.1.11" is-stream "^1.0.1" @@ -6169,10 +7011,12 @@ node-fetch@^1.7.0: node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= node-libs-browser@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" + integrity sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg== dependencies: assert "^1.1.1" browserify-zlib "^0.2.0" @@ -6201,10 +7045,12 @@ node-libs-browser@^2.0.0: node-modules-regexp@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" + integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= node-notifier@^5.2.1: version "5.2.1" resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.2.1.tgz#fa313dd08f5517db0e2502e5758d664ac69f9dea" + integrity sha512-MIBs+AAd6dJ2SklbbE8RUDRlIVhU8MaNLh1A9SUZDUHPiZkWLFde6UNwG41yQHZEToHgJMXqyVZ9UcS/ReOVTg== dependencies: growly "^1.3.0" semver "^5.4.1" @@ -6214,6 +7060,7 @@ node-notifier@^5.2.1: node-pre-gyp@^0.6.39: version "0.6.39" resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649" + integrity sha512-OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ== dependencies: detect-libc "^1.0.2" hawk "3.1.3" @@ -6230,6 +7077,7 @@ node-pre-gyp@^0.6.39: node-pre-gyp@^0.9.0: version "0.9.1" resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.9.1.tgz#f11c07516dd92f87199dbc7e1838eab7cd56c9e0" + integrity sha1-8RwHUW3ZL4cZnbx+GDjqt81WyeA= dependencies: detect-libc "^1.0.2" mkdirp "^0.5.1" @@ -6242,9 +7090,17 @@ node-pre-gyp@^0.9.0: semver "^5.3.0" tar "^4" +node-releases@^1.0.0-alpha.11: + version "1.0.0-alpha.11" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.0.0-alpha.11.tgz#73c810acc2e5b741a17ddfbb39dfca9ab9359d8a" + integrity sha512-CaViu+2FqTNYOYNihXa5uPS/zry92I3vPU4nCB6JB3OeZ2UGtOpF5gRwuN4+m3hbEcL47bOXyun1jX2iC+3uEQ== + dependencies: + semver "^5.3.0" + nopt@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= dependencies: abbrev "1" osenv "^0.1.4" @@ -6252,35 +7108,36 @@ nopt@^4.0.1: normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5: version "2.4.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" + integrity sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw== dependencies: hosted-git-info "^2.1.4" is-builtin-module "^1.0.0" semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -normalize-path@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379" - normalize-path@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= dependencies: remove-trailing-separator "^1.0.1" now-and-later@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/now-and-later/-/now-and-later-2.0.0.tgz#bc61cbb456d79cb32207ce47ca05136ff2e7d6ee" + integrity sha1-vGHLtFbXnLMiB85HygUTb/Ln1u4= dependencies: once "^1.3.2" npm-bundled@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.3.tgz#7e71703d973af3370a9591bafe3a63aca0be2308" + integrity sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow== npm-packlist@^1.1.6: version "1.1.10" resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.10.tgz#1039db9e985727e464df066f4cf0ab6ef85c398a" + integrity sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA== dependencies: ignore-walk "^3.0.1" npm-bundled "^1.0.1" @@ -6288,18 +7145,21 @@ npm-packlist@^1.1.6: npm-path@^2.0.2: version "2.0.4" resolved "https://registry.yarnpkg.com/npm-path/-/npm-path-2.0.4.tgz#c641347a5ff9d6a09e4d9bce5580c4f505278e64" + integrity sha512-IFsj0R9C7ZdR5cP+ET342q77uSRdtWOlWpih5eC+lu29tIDbNEgDbzgVJ5UFvYHWhxDZ5TFkJafFioO0pPQjCw== dependencies: which "^1.2.10" npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= dependencies: path-key "^2.0.0" npm-which@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/npm-which/-/npm-which-3.0.1.tgz#9225f26ec3a285c209cae67c3b11a6b4ab7140aa" + integrity sha1-kiXybsOihcIJyuZ8OxGmtKtxQKo= dependencies: commander "^2.9.0" npm-path "^2.0.2" @@ -6308,6 +7168,7 @@ npm-which@^3.0.1: npmlog@^4.0.2, npmlog@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== dependencies: are-we-there-yet "~1.1.2" console-control-strings "~1.1.0" @@ -6317,32 +7178,39 @@ npmlog@^4.0.2, npmlog@^4.1.2: nth-check@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4" + integrity sha1-mSms32KPwsQQmN6rgqxYDPFJquQ= dependencies: boolbase "~1.0.0" number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= nwmatcher@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.4.3.tgz#64348e3b3d80f035b40ac11563d278f8b72db89c" + integrity sha512-IKdSTiDWCarf2JTS5e9e2+5tPZGdkRJ79XjYV0pzK8Q9BpsFyBq1RGKxzs7Q8UBushGw7m6TzVKz6fcY99iSWw== oauth-sign@~0.8.1, oauth-sign@~0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" + integrity sha1-Rqarfwrq2N6unsBWV4C31O/rnUM= object-assign@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" + integrity sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I= object-assign@^4.0.1, object-assign@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= object-copy@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= dependencies: copy-descriptor "^0.1.0" define-property "^0.2.5" @@ -6351,16 +7219,19 @@ object-copy@^0.1.0: object-keys@^1.0.11, object-keys@^1.0.6, object-keys@^1.0.8: version "1.0.11" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" + integrity sha1-xUYBd4rVYPEULODgG8yotW0TQm0= object-visit@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= dependencies: isobject "^3.0.0" object.assign@^4.0.4: 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" @@ -6370,6 +7241,7 @@ object.assign@^4.0.4: object.defaults@^1.0.0, object.defaults@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf" + integrity sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8= dependencies: array-each "^1.0.1" array-slice "^1.0.0" @@ -6379,6 +7251,7 @@ object.defaults@^1.0.0, object.defaults@^1.1.0: object.getownpropertydescriptors@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" + integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY= dependencies: define-properties "^1.1.2" es-abstract "^1.5.1" @@ -6386,6 +7259,7 @@ object.getownpropertydescriptors@^2.0.3: object.map@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/object.map/-/object.map-1.0.1.tgz#cf83e59dc8fcc0ad5f4250e1f78b3b81bd801d37" + integrity sha1-z4Plncj8wK1fQlDh94s7gb2AHTc= dependencies: for-own "^1.0.0" make-iterator "^1.0.0" @@ -6393,6 +7267,7 @@ object.map@^1.0.0: object.omit@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + integrity sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo= dependencies: for-own "^0.1.4" is-extendable "^0.1.1" @@ -6400,12 +7275,14 @@ object.omit@^2.0.0: object.pick@^1.2.0, object.pick@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= dependencies: isobject "^3.0.1" object.reduce@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/object.reduce/-/object.reduce-1.0.1.tgz#6fe348f2ac7fa0f95ca621226599096825bb03ad" + integrity sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60= dependencies: for-own "^1.0.0" make-iterator "^1.0.0" @@ -6413,22 +7290,26 @@ object.reduce@^1.0.0: once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.3.3, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= dependencies: wrappy "1" onetime@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + integrity sha1-ofeDj4MUxRbwXs78vEzP4EtO14k= onetime@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= dependencies: mimic-fn "^1.0.0" optimist@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY= dependencies: minimist "~0.0.1" wordwrap "~0.0.2" @@ -6436,6 +7317,7 @@ optimist@^0.6.1: optionator@^0.8.1, optionator@^0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" + integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q= dependencies: deep-is "~0.1.3" fast-levenshtein "~2.0.4" @@ -6444,42 +7326,34 @@ optionator@^0.8.1, optionator@^0.8.2: type-check "~0.3.2" wordwrap "~1.0.0" -ora@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/ora/-/ora-0.2.3.tgz#37527d220adcd53c39b73571d754156d5db657a4" - dependencies: - chalk "^1.1.1" - cli-cursor "^1.0.2" - cli-spinners "^0.1.2" - object-assign "^4.0.1" - ordered-read-streams@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz#77c0cb37c41525d64166d990ffad7ec6a0e1363e" + integrity sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4= dependencies: readable-stream "^2.0.1" -os-browserify@^0.3.0: +os-browserify@^0.3.0, os-browserify@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - -os-browserify@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.1.2.tgz#49ca0293e0b19590a5f5de10c7f265a617d8fe54" + integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= os-homedir@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= os-locale@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" + integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk= dependencies: lcid "^1.0.0" os-locale@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" + integrity sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA== dependencies: execa "^0.7.0" lcid "^1.0.0" @@ -6488,10 +7362,12 @@ os-locale@^2.0.0: os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= osenv@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== dependencies: os-homedir "^1.0.0" os-tmpdir "^1.0.0" @@ -6499,6 +7375,7 @@ osenv@^0.1.4: output-file-sync@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-2.0.1.tgz#f53118282f5f553c2799541792b723a4c71430c0" + integrity sha512-mDho4qm7WgIXIGf4eYU1RHN2UU5tPfVYVSRwDJw0uTmj35DQUt/eNp19N7v6T3SrR0ESTEf2up2CGO73qI35zQ== dependencies: graceful-fs "^4.1.11" is-plain-obj "^1.1.0" @@ -6507,59 +7384,84 @@ output-file-sync@^2.0.0: p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= p-limit@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c" + integrity sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng== dependencies: p-try "^1.0.0" +p-limit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.0.0.tgz#e624ed54ee8c460a778b3c9f3670496ff8a57aec" + integrity sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A== + dependencies: + p-try "^2.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-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + p-map@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" + integrity sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA== 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= + +p-try@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1" + integrity sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ== package-json@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" + integrity sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0= dependencies: got "^6.7.1" registry-auth-token "^3.0.1" registry-url "^3.0.3" semver "^5.1.0" -pako@~0.2.0: - version "0.2.9" - resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" - pako@~1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" + integrity sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg== param-case@2.1.x: version "2.1.1" resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" + integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc= dependencies: no-case "^2.2.0" parents@^1.0.0, parents@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/parents/-/parents-1.0.1.tgz#fedd4d2bf193a77745fe71e371d73c3307d9c751" + integrity sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E= dependencies: path-platform "~0.11.15" parse-asn1@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz#37c4f9b7ed3ab65c74817b5f2480937fbf97c712" + integrity sha1-N8T5t+06tlx0gXtfJICTf7+XxxI= dependencies: asn1.js "^4.0.0" browserify-aes "^1.0.0" @@ -6570,6 +7472,7 @@ parse-asn1@^5.0.0: parse-filepath@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" + integrity sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE= dependencies: is-absolute "^1.0.0" map-cache "^0.2.0" @@ -6578,10 +7481,12 @@ parse-filepath@^1.0.1: parse-github-repo-url@^1.3.0: version "1.4.1" resolved "https://registry.yarnpkg.com/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz#9e7d8bb252a6cb6ba42595060b7bf6df3dbc1f50" + integrity sha1-nn2LslKmy2ukJZUGC3v23z28H1A= parse-glob@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + integrity sha1-ssN2z7EfNVE7rdFz7wu246OIORw= dependencies: glob-base "^0.3.0" is-dotfile "^1.0.0" @@ -6591,12 +7496,14 @@ parse-glob@^3.0.4: 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" parse-json@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= dependencies: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" @@ -6604,72 +7511,88 @@ parse-json@^4.0.0: parse-passwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= parse5@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" + integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== parse5@^3.0.1: version "3.0.3" resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" + integrity sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA== dependencies: "@types/node" "*" pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= path-browserify@0.0.0, path-browserify@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" + integrity sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo= path-dirname@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= path-exists@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= dependencies: pinkie-promise "^2.0.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, path-is-absolute@^1.0.1: 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-is-inside@^1.0.1, path-is-inside@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= path-parse@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" + integrity sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME= path-platform@~0.11.15: version "0.11.15" resolved "https://registry.yarnpkg.com/path-platform/-/path-platform-0.11.15.tgz#e864217f74c36850f0852b78dc7bf7d4a5721bf2" + integrity sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I= path-root-regex@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" + integrity sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0= path-root@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" + integrity sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc= dependencies: path-root-regex "^0.1.0" path-type@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= dependencies: graceful-fs "^4.1.2" pify "^2.0.0" @@ -6678,18 +7601,21 @@ path-type@^1.0.0: 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" path-type@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== dependencies: pify "^3.0.0" pbkdf2@^3.0.3: version "3.0.14" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.14.tgz#a35e13c64799b06ce15320f459c230e68e73bade" + integrity sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA== dependencies: create-hash "^1.1.2" create-hmac "^1.1.4" @@ -6700,44 +7626,67 @@ pbkdf2@^3.0.3: performance-now@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" + integrity sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU= performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= pify@^2.0.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= pify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= dependencies: pinkie "^2.0.0" pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= -pirates@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-3.0.2.tgz#7e6f85413fd9161ab4e12b539b06010d85954bb9" +pirates@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.0.tgz#850b18781b4ac6ec58a43c9ed9ec5fe6796addbd" + integrity sha512-8t5BsXy1LUIjn3WWOlOuFDuKswhQb/tkak641lvBgmPOBUQHXveORtlMCp6OdPV1dtuTaEahKA8VNz6uLfKBtA== dependencies: node-modules-regexp "^1.0.0" 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" +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +please-upgrade-node@^3.0.2, please-upgrade-node@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz#ed320051dfcc5024fae696712c8288993595e8ac" + integrity sha512-KY1uHnQ2NlQHqIJQpnh/i54rKkuxCEBx+voJIS/Mvb+L2iYd2NMotwduhKTMjfC1uKoX3VXOxLjIYG66dfJTVQ== + dependencies: + semver-compare "^1.0.0" + plugin-error@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-0.1.2.tgz#3b9bb3335ccf00f425e07437e19276967da47ace" + integrity sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4= dependencies: ansi-cyan "^0.1.1" ansi-red "^0.1.1" @@ -6748,6 +7697,7 @@ plugin-error@^0.1.2: plugin-error@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-1.0.1.tgz#77016bd8919d0ac377fdcdd0322328953ca5781c" + integrity sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA== dependencies: ansi-colors "^1.0.1" arr-diff "^4.0.0" @@ -6757,41 +7707,42 @@ plugin-error@^1.0.1: pluralize@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" + integrity sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow== pn@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" + integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= prepend-http@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks= -prettier@1.13.2: - version "1.13.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.13.2.tgz#412b87bc561cb11074d2877a33a38f78c2303cda" +prettier@^1.14.3: + version "1.14.3" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.14.3.tgz#90238dd4c0684b7edce5f83b0fb7328e48bd0895" + integrity sha512-qZDVnCrnpsRJJq5nSsiHCE3BYMED2OtsI+cmzIzF1QIfqm5ALf8tEJcO27zV1gKNKRPdhjO0dNWnrzssDQ1tFg== -pretty-format@^21.2.1: - version "21.2.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-21.2.1.tgz#ae5407f3cf21066cd011aa1ba5fce7b6a2eddb36" - dependencies: - ansi-regex "^3.0.0" - ansi-styles "^3.2.0" - -pretty-format@^22.4.0: - version "22.4.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-22.4.0.tgz#237b1f7e1c50ed03bc65c03ccc29d7c8bb7beb94" +pretty-format@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-23.6.0.tgz#5eaac8eeb6b33b987b7fe6097ea6a8a146ab5760" + integrity sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw== dependencies: ansi-regex "^3.0.0" ansi-styles "^3.2.0" @@ -6799,42 +7750,60 @@ pretty-format@^22.4.0: pretty-hrtime@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" + integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= private@^0.1.6, private@^0.1.7, private@~0.1.5: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== process-nextick-args@^1.0.6, process-nextick-args@^1.0.7, process-nextick-args@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + integrity sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M= process-nextick-args@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" + integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw== process@^0.11.10, process@~0.11.0: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= progress@^1.1.8: version "1.1.8" resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" + integrity sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74= progress@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" + integrity sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8= + +prompts@^0.1.9: + version "0.1.12" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-0.1.12.tgz#39dc42de7d2f0ec3e2af76bf40713fcb8726090d" + integrity sha512-pgR1GE1JM8q8UsHVIgjdK62DPwvrf0kvaKWJ/mfMoCm2lwfIReX/giQ1p0AlMoUXNhQap/8UiOdqi3bOROm/eg== + dependencies: + kleur "^1.0.0" + sisteransi "^0.1.1" prr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= public-encrypt@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6" + integrity sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY= dependencies: bn.js "^4.1.0" browserify-rsa "^4.0.0" @@ -6845,6 +7814,7 @@ public-encrypt@^4.0.0: pump@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.3.tgz#5dfe8311c33bbf6fc18261f9f34702c47c08a954" + integrity sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw== dependencies: end-of-stream "^1.1.0" once "^1.3.1" @@ -6852,6 +7822,7 @@ pump@^1.0.2: pump@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== dependencies: end-of-stream "^1.1.0" once "^1.3.1" @@ -6859,6 +7830,7 @@ pump@^2.0.0: pumpify@^1.3.5: version "1.4.0" resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.4.0.tgz#80b7c5df7e24153d03f0e7ac8a05a5d068bd07fb" + integrity sha512-2kmNR9ry+Pf45opRVirpNuIFotsxUGLaYqxIwuR77AYrYRMuFCz9eryHBS52L360O+NcR383CL4QYlMKPq4zYA== dependencies: duplexify "^3.5.3" inherits "^2.0.3" @@ -6867,42 +7839,52 @@ pumpify@^1.3.5: punycode@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= punycode@^1.2.4, punycode@^1.3.2, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= punycode@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" + integrity sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0= q@^1.4.1, q@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= qs@~6.4.0: version "6.4.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" + integrity sha1-E+JtKK1rD/qpExLNO/cI7TUecjM= qs@~6.5.1: version "6.5.1" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" + integrity sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A== querystring-es3@^0.2.0, querystring-es3@~0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= querystring@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= quick-lru@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" + integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g= randomatic@^1.1.3: version "1.1.7" resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" + integrity sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how== dependencies: is-number "^3.0.0" kind-of "^4.0.0" @@ -6910,12 +7892,14 @@ randomatic@^1.1.3: randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: version "2.0.6" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80" + integrity sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A== dependencies: safe-buffer "^5.1.0" randomfill@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== dependencies: randombytes "^2.0.5" safe-buffer "^5.1.0" @@ -6923,6 +7907,7 @@ randomfill@^1.0.3: rc@^1.0.1, rc@^1.1.6: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== dependencies: deep-extend "^0.6.0" ini "~1.3.0" @@ -6932,6 +7917,7 @@ rc@^1.0.1, rc@^1.1.6: rc@^1.1.7: version "1.2.5" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.5.tgz#275cd687f6e3b36cc756baa26dfee80a790301fd" + integrity sha1-J1zWh/bjs2zHVrqibf7oCnkDAf0= dependencies: deep-extend "~0.4.0" ini "~1.3.0" @@ -6941,18 +7927,21 @@ rc@^1.1.7: read-cmd-shim@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz#2d5d157786a37c055d22077c32c53f8329e91c7b" + integrity sha1-LV0Vd4ajfAVdIgd8MsU/gynpHHs= dependencies: graceful-fs "^4.1.2" read-only-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0" + integrity sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A= dependencies: readable-stream "^2.0.2" read-pkg-up@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= dependencies: find-up "^1.0.0" read-pkg "^1.0.0" @@ -6960,6 +7949,7 @@ read-pkg-up@^1.0.1: 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" @@ -6967,6 +7957,7 @@ read-pkg-up@^2.0.0: read-pkg-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" + integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= dependencies: find-up "^2.0.0" read-pkg "^3.0.0" @@ -6974,6 +7965,7 @@ read-pkg-up@^3.0.0: read-pkg@^1.0.0, read-pkg@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= dependencies: load-json-file "^1.0.0" normalize-package-data "^2.3.2" @@ -6982,6 +7974,7 @@ read-pkg@^1.0.0, read-pkg@^1.1.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" @@ -6990,14 +7983,25 @@ read-pkg@^2.0.0: read-pkg@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= dependencies: load-json-file "^4.0.0" normalize-package-data "^2.3.2" path-type "^3.0.0" +read-pkg@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-4.0.1.tgz#963625378f3e1c4d48c85872b5a6ec7d5d093237" + integrity sha1-ljYlN48+HE1IyFhytabsfV0JMjc= + dependencies: + normalize-package-data "^2.3.2" + parse-json "^4.0.0" + pify "^3.0.0" + "readable-stream@>=1.1.13-1 <1.2.0-0", readable-stream@~1.1.9: version "1.1.14" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= dependencies: core-util-is "~1.0.0" inherits "~2.0.1" @@ -7007,6 +8011,7 @@ read-pkg@^3.0.0: readable-stream@^2.0.0, readable-stream@^2.0.4: version "2.3.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== dependencies: core-util-is "~1.0.0" inherits "~2.0.3" @@ -7019,6 +8024,7 @@ readable-stream@^2.0.0, readable-stream@^2.0.4: readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3: version "2.3.5" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.5.tgz#b4f85003a938cbb6ecbce2a124fb1012bd1a838d" + integrity sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw== dependencies: core-util-is "~1.0.0" inherits "~2.0.3" @@ -7031,6 +8037,7 @@ readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable readable-stream@~2.0.0: version "2.0.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" + integrity sha1-j5A0HmilPMySh4jaz80Rs265t44= dependencies: core-util-is "~1.0.0" inherits "~2.0.1" @@ -7042,6 +8049,7 @@ readable-stream@~2.0.0: readdirp@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" + integrity sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg= dependencies: graceful-fs "^4.1.2" minimatch "^3.0.2" @@ -7051,12 +8059,14 @@ readdirp@^2.0.0: realpath-native@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.0.0.tgz#7885721a83b43bd5327609f0ddecb2482305fdf0" + integrity sha512-XJtlRJ9jf0E1H1SLeJyQ9PGzQD7S65h1pRXEcAeK48doKOnKxcgPeNohJvD5u/2sI9J1oke6E8bZHS/fmW1UiQ== dependencies: util.promisify "^1.0.0" recast@~0.11.12: version "0.11.23" resolved "https://registry.yarnpkg.com/recast/-/recast-0.11.23.tgz#451fd3004ab1e4df9b4e4b66376b2a21912462d3" + integrity sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM= dependencies: ast-types "0.9.6" esprima "~3.1.0" @@ -7066,12 +8076,14 @@ recast@~0.11.12: rechoir@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= dependencies: resolve "^1.1.6" redent@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= dependencies: indent-string "^2.1.0" strip-indent "^1.0.1" @@ -7079,6 +8091,7 @@ redent@^1.0.0: redent@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa" + integrity sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo= dependencies: indent-string "^3.0.0" strip-indent "^2.0.0" @@ -7086,59 +8099,68 @@ redent@^2.0.0: regenerate-unicode-properties@^5.1.1: version "5.1.3" resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-5.1.3.tgz#54f5891543468f36f2274b67c6bc4c033c27b308" + integrity sha512-Yjy6t7jFQczDhYE+WVm7pg6gWYE258q4sUkk9qDErwXJIqx7jU9jGrMFHutJK/SRfcg7MEkXjGaYiVlOZyev/A== dependencies: regenerate "^1.3.3" regenerate-unicode-properties@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz#107405afcc4a190ec5ed450ecaa00ed0cafa7a4c" + integrity sha512-s5NGghCE4itSlUS+0WUj88G6cfMVMmH8boTPNvABf8od+2dhT9WDlWu8n01raQAJZMOK8Ch6jSexaRO7swd6aw== dependencies: regenerate "^1.4.0" regenerate@^1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f" + integrity sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg== regenerate@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" + integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== regenerator-runtime@^0.11.0: version "0.11.1" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + +regenerator-runtime@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.0.tgz#8052ac952d85b10f3425192cd0c53f45cf65c6cb" + integrity sha512-SpV2LhF5Dm9UYMEprB3WwsBnWwqTrmjrm2UZb42cl2G02WVGgx7Mg8aa9pdLEKp6hZ+/abcMc2NxKA8f02EG2w== regenerator-transform@^0.13.3: version "0.13.3" resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.13.3.tgz#264bd9ff38a8ce24b06e0636496b2c856b57bcbb" + integrity sha512-5ipTrZFSq5vU2YoGoww4uaRVAK4wyYC4TSICibbfEPOruUu8FFP7ErV0BjmbIOEpn3O/k9na9UEdYR/3m7N6uA== dependencies: private "^0.1.6" regex-cache@^0.4.2: version "0.4.4" resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" + integrity sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ== dependencies: is-equal-shallow "^0.1.3" regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== dependencies: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexp.prototype.flags@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz#6b30724e306a27833eeb171b66ac8890ba37e41c" - dependencies: - define-properties "^1.1.2" - -regexpp@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-1.1.0.tgz#0e3516dd0b7904f413d2d4193dce4618c3a689ab" +regexpp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.0.tgz#b2a7534a85ca1b033bcf5ce9ff8e56d4e0755365" + integrity sha512-g2FAVtR8Uh8GO1Nv5wpxW7VFVwHcCEr4wyA8/MHiRkO8uHoR5ntAA8Uq3P1vvMTX/BeQiRVSpDGLd+Wn5HNOTA== regexpu-core@^4.1.3: version "4.1.3" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.1.3.tgz#fb81616dbbc2a917a7419b33f8379144f51eb8d0" + integrity sha512-mB+njEzO7oezA57IbQxxd6fVPOeWKDmnGvJ485CwmfNchjHe5jWwqKepapmzUEj41yxIAqOg+C4LbXuJlkiO8A== dependencies: regenerate "^1.3.3" regenerate-unicode-properties "^5.1.1" @@ -7150,6 +8172,7 @@ regexpu-core@^4.1.3: regexpu-core@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.2.0.tgz#a3744fa03806cffe146dea4421a3e73bdcc47b1d" + integrity sha512-Z835VSnJJ46CNBttalHD/dB+Sj2ezmY6Xp38npwU87peK6mqOzOpV8eYktdkLTEkzzD+JsTcxd84ozd8I14+rw== dependencies: regenerate "^1.4.0" regenerate-unicode-properties "^7.0.0" @@ -7161,6 +8184,7 @@ regexpu-core@^4.2.0: registry-auth-token@^3.0.1: version "3.3.2" resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.2.tgz#851fd49038eecb586911115af845260eec983f20" + integrity sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ== dependencies: rc "^1.1.6" safe-buffer "^5.0.1" @@ -7168,36 +8192,43 @@ registry-auth-token@^3.0.1: registry-url@^3.0.3: version "3.1.0" resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" + integrity sha1-PU74cPc93h138M+aOBQyRE4XSUI= dependencies: rc "^1.0.1" regjsgen@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.3.0.tgz#0ee4a3e9276430cda25f1e789ea6c15b87b0cb43" + integrity sha1-DuSj6SdkMM2iXx54nqbBW4ewy0M= regjsgen@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.4.0.tgz#c1eb4c89a209263f8717c782591523913ede2561" + integrity sha512-X51Lte1gCYUdlwhF28+2YMO0U6WeN0GLpgpA7LK7mbdDnkQYiwvEpmpe0F/cv5L14EbxgrdayAG3JETBv0dbXA== regjsparser@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.2.1.tgz#c3787553faf04e775c302102ef346d995000ec1c" + integrity sha1-w3h1U/rwTndcMCEC7zRtmVAA7Bw= dependencies: jsesc "~0.5.0" regjsparser@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.3.0.tgz#3c326da7fcfd69fa0d332575a41c8c0cdf588c96" + integrity sha512-zza72oZBBHzt64G7DxdqrOo/30bhHkwMUoT0WqfGu98XLd7N+1tsy5MJ96Bk4MD0y74n629RhmrGW6XlnLLwCA== dependencies: jsesc "~0.5.0" relateurl@0.2.x: version "0.2.7" resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= remove-bom-buffer@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz#c2bf1e377520d324f623892e33c10cac2c252b53" + integrity sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ== dependencies: is-buffer "^1.1.5" is-utf8 "^0.2.1" @@ -7205,6 +8236,7 @@ remove-bom-buffer@^3.0.0: remove-bom-stream@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz#05f1a593f16e42e1fb90ebf59de8e569525f9523" + integrity sha1-BfGlk/FuQuH7kOv1nejlaVJflSM= dependencies: remove-bom-buffer "^3.0.0" safe-buffer "^5.1.0" @@ -7213,32 +8245,39 @@ remove-bom-stream@^1.2.0: remove-trailing-separator@^1.0.1, remove-trailing-separator@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= repeat-element@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + integrity sha1-7wiaF40Ug7quTZPrmLT55OEdmQo= repeat-string@^1.5.2, repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= repeating@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= dependencies: is-finite "^1.0.0" replace-ext@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" + integrity sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ= replace-ext@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" + integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= replace-homedir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/replace-homedir/-/replace-homedir-1.0.0.tgz#e87f6d513b928dde808260c12be7fec6ff6e798c" + integrity sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw= dependencies: homedir-polyfill "^1.0.1" is-absolute "^1.0.0" @@ -7247,12 +8286,14 @@ replace-homedir@^1.0.0: request-promise-core@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.1.tgz#3eee00b2c5aa83239cfb04c5700da36f81cd08b6" + integrity sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY= dependencies: lodash "^4.13.1" request-promise-native@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.5.tgz#5281770f68e0c9719e5163fd3fab482215f4fda5" + integrity sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU= dependencies: request-promise-core "1.1.1" stealthy-require "^1.1.0" @@ -7261,6 +8302,7 @@ request-promise-native@^1.0.5: request@2.81.0: version "2.81.0" resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" + integrity sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA= dependencies: aws-sign2 "~0.6.0" aws4 "^1.2.1" @@ -7288,6 +8330,7 @@ request@2.81.0: request@^2.83.0: version "2.83.0" resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356" + integrity sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw== dependencies: aws-sign2 "~0.7.0" aws4 "^1.6.0" @@ -7315,18 +8358,17 @@ request@^2.83.0: require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - -require-from-string@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.1.tgz#c545233e9d7da6616e9d59adfb39fc9f588676ff" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= require-main-filename@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= require-uncached@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" + integrity sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM= dependencies: caller-path "^0.1.0" resolve-from "^1.0.0" @@ -7334,12 +8376,14 @@ require-uncached@^1.0.3: resolve-cwd@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= dependencies: resolve-from "^3.0.0" resolve-dir@^1.0.0, resolve-dir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" + integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= dependencies: expand-tilde "^2.0.0" global-modules "^1.0.0" @@ -7347,40 +8391,55 @@ resolve-dir@^1.0.0, resolve-dir@^1.0.1: resolve-from@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" + integrity sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY= resolve-from@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= resolve-options@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/resolve-options/-/resolve-options-1.1.0.tgz#32bb9e39c06d67338dc9378c0d6d6074566ad131" + integrity sha1-MrueOcBtZzONyTeMDW1gdFZq0TE= dependencies: value-or-function "^3.0.0" resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= resolve@1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= -resolve@^1.1.3, resolve@^1.1.4, resolve@^1.1.6, resolve@^1.1.7, resolve@^1.3.2: +resolve@^1.1.4, resolve@^1.1.6, resolve@^1.1.7, resolve@^1.3.2: version "1.5.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36" + integrity sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw== dependencies: path-parse "^1.0.5" resolve@^1.4.0: version "1.7.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.7.1.tgz#aadd656374fd298aee895bc026b8297418677fd3" + integrity sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw== + dependencies: + path-parse "^1.0.5" + +resolve@^1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" + integrity sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA== dependencies: path-parse "^1.0.5" restore-cursor@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" + integrity sha1-NGYfRohjJ/7SmRR5FSJS35LapUE= dependencies: exit-hook "^1.0.0" onetime "^1.0.0" @@ -7388,6 +8447,7 @@ restore-cursor@^1.0.1: restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= dependencies: onetime "^2.0.0" signal-exit "^3.0.2" @@ -7395,22 +8455,26 @@ restore-cursor@^2.0.0: ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== right-align@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + integrity sha1-YTObci/mo1FWiSENJOFMlhSGE+8= dependencies: align-text "^0.1.1" rimraf@2, rimraf@^2.2.8, rimraf@^2.4.3, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.1: version "2.6.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" + integrity sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w== dependencies: glob "^7.0.5" ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7" + integrity sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc= dependencies: hash-base "^2.0.0" inherits "^2.0.1" @@ -7418,6 +8482,7 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: rollup-plugin-babel@^4.0.0-beta.0: version "4.0.0-beta.2" resolved "https://registry.yarnpkg.com/rollup-plugin-babel/-/rollup-plugin-babel-4.0.0-beta.2.tgz#abc05af4644aa52180e3fa2452f909b39b4ef145" + integrity sha1-q8Ba9GRKpSGA4/okUvkJs5tO8UU= dependencies: "@babel/helper-module-imports" "7.0.0-beta.35" rollup-pluginutils "^2.0.1" @@ -7425,6 +8490,7 @@ rollup-plugin-babel@^4.0.0-beta.0: rollup-plugin-node-resolve@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.0.3.tgz#8f57b253edd00e5b0ad0aed7b7e9cf5982e98fa4" + integrity sha512-qJLXJ1aASV6p8SrEfRdQdHmb5OQmqXyIWIdVGcju8QFzftSsHcuL554Vy+n8mr0fZCC+ksO6aWJ7TAVl2F+Qwg== dependencies: builtin-modules "^1.1.0" is-module "^1.0.0" @@ -7433,6 +8499,7 @@ rollup-plugin-node-resolve@^3.0.2: rollup-pluginutils@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.0.1.tgz#7ec95b3573f6543a46a6461bd9a7c544525d0fc0" + integrity sha1-fslbNXP2VDpGpkYb2afFRFJdD8A= dependencies: estree-walker "^0.3.0" micromatch "^2.3.11" @@ -7440,58 +8507,67 @@ rollup-pluginutils@^2.0.1: rollup-stream@^1.24.1: version "1.24.1" resolved "https://registry.yarnpkg.com/rollup-stream/-/rollup-stream-1.24.1.tgz#9bc002afba51c517e6daa3e17f9559580a460f89" + integrity sha512-iQ159xbWSOPc7ey8tjEYf7pCaQwBz3ov37KNCeDewqh6Qj1gntAgZSmmEJIPs2niXMDNqVZ3rnTFXBXhZ+sYSg== dependencies: rollup "^0.49.2" rollup@^0.49.2: version "0.49.3" resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.49.3.tgz#4cce32643dd8cf2154c69ff0e43470067db0adbf" + integrity sha512-n/vHRX4GhMIyGZEQRANcSFVtvz99bSRbNMuoC33ar9f4CViqffyF9WklLb2mxIQ6I/uFf7wDEpc66bXBFE7FvA== run-async@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" + integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= dependencies: is-promise "^2.1.0" +run-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/run-node/-/run-node-1.0.0.tgz#46b50b946a2aa2d4947ae1d886e9856fd9cabe5e" + integrity sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A== + rx-lite-aggregates@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" + integrity sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74= dependencies: rx-lite "*" rx-lite@*, rx-lite@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" + integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ= -rxjs@^5.4.2: - version "5.5.6" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.6.tgz#e31fb96d6fd2ff1fd84bcea8ae9c02d007179c02" - dependencies: - symbol-observable "1.0.1" - -rxjs@^5.5.2: - version "5.5.11" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.11.tgz#f733027ca43e3bec6b994473be4ab98ad43ced87" +rxjs@^6.1.0: + version "6.3.2" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.3.2.tgz#6a688b16c4e6e980e62ea805ec30648e1c60907f" + integrity sha512-hV7criqbR0pe7EeL3O66UYVg92IR0XsA97+9y+BWTePK9SKmEI5Qd3Zj6uPnGkNzXsBywBQWTvujPl+1Kn9Zjw== dependencies: - symbol-observable "1.0.1" + tslib "^1.9.0" safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" + integrity sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg== safe-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= dependencies: ret "~0.1.10" -safer-buffer@^2.1.0: +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sane@^2.0.0: version "2.4.1" resolved "https://registry.yarnpkg.com/sane/-/sane-2.4.1.tgz#29f991208cf28636720efdc584293e7fd66663a5" + integrity sha512-fW9svvNd81XzHDZyis9/tEY1bZikDGryy8Hi1BErPyNPYv47CdLseUN+tI5FBHWXEENRtj1SWtX/jBnggLaP0w== dependencies: anymatch "^1.3.0" exec-sh "^0.2.0" @@ -7506,34 +8582,51 @@ sane@^2.0.0: sax@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= semver-greatest-satisfied-range@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz#13e8c2658ab9691cb0cd71093240280d36f77a5b" + integrity sha1-E+jCZYq5aRywzXEJMkAoDTb3els= dependencies: sver-compat "^1.5.0" "semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" + integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA== + +semver@^5.5.1: + version "5.5.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.1.tgz#7dfdd8814bdb7cabc7be0fb1d734cfb66c940477" + integrity sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw== set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= set-getter@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/set-getter/-/set-getter-0.1.0.tgz#d769c182c9d5a51f409145f2fba82e5e86e80376" + integrity sha1-12nBgsnVpR9AkUXy+6guXoboA3Y= dependencies: to-object-path "^0.3.0" set-immediate-shim@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + integrity sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E= set-value@^0.4.3: version "0.4.3" resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" + integrity sha1-fbCPnT0i3H945Trzw79GZuzfzPE= dependencies: extend-shallow "^2.0.1" is-extendable "^0.1.1" @@ -7543,6 +8636,7 @@ set-value@^0.4.3: set-value@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" + integrity sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg== dependencies: extend-shallow "^2.0.1" is-extendable "^0.1.1" @@ -7552,10 +8646,12 @@ set-value@^2.0.0: setimmediate@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= sha.js@^2.4.0, sha.js@^2.4.8, sha.js@~2.4.4: version "2.4.10" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.10.tgz#b1fde5cd7d11a5626638a07c604ab909cfa31f9b" + integrity sha512-vnwmrFDlOExK4Nm16J2KMWHLrp14lBrjxMxBJpu++EnsuBmpiYaM/MEs46Vxxm/4FvdP5yTwuCTO9it5FSjrqA== dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" @@ -7563,6 +8659,7 @@ sha.js@^2.4.0, sha.js@^2.4.8, sha.js@~2.4.4: shasum@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/shasum/-/shasum-1.0.2.tgz#e7012310d8f417f4deb5712150e5678b87ae565f" + integrity sha1-5wEjENj0F/TetXEhUOVni4euVl8= dependencies: json-stable-stringify "~0.0.0" sha.js "~2.4.4" @@ -7570,16 +8667,19 @@ shasum@^1.0.0: shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= dependencies: shebang-regex "^1.0.0" shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= shell-quote@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" + integrity sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c= dependencies: array-filter "~0.0.0" array-map "~0.0.0" @@ -7589,28 +8689,44 @@ shell-quote@^1.6.1: shellwords@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= + +sisteransi@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-0.1.1.tgz#5431447d5f7d1675aac667ccd0b865a4994cb3ce" + integrity sha512-PmGOd02bM9YO5ifxpw36nrNMBTptEtfRl4qUYl9SndkolplkrZZOW7PGHjrZL53QvMVj9nQ+TKqUnRsw4tJa4g== slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= + +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== slice-ansi@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU= slice-ansi@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" + integrity sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg== dependencies: is-fullwidth-code-point "^2.0.0" snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== dependencies: define-property "^1.0.0" isobject "^3.0.0" @@ -7619,12 +8735,14 @@ snapdragon-node@^2.0.1: snapdragon-util@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== dependencies: kind-of "^3.2.0" snapdragon@^0.8.1: version "0.8.1" resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.1.tgz#e12b5487faded3e3dea0ac91e9400bf75b401370" + integrity sha1-4StUh/re0+PeoKyR6UAL91tAE3A= dependencies: base "^0.11.1" debug "^2.2.0" @@ -7638,28 +8756,33 @@ snapdragon@^0.8.1: sntp@1.x.x: version "1.0.9" resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" + integrity sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg= dependencies: hoek "2.x.x" sntp@2.x.x: version "2.1.0" resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8" + integrity sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg== dependencies: hoek "4.x.x" sort-keys@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" + integrity sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg= dependencies: is-plain-obj "^1.0.0" source-list-map@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" + integrity sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A== source-map-resolve@^0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.1.tgz#7ad0f593f2281598e854df80f19aae4b92d7a11a" + integrity sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A== dependencies: atob "^2.0.0" decode-uri-component "^0.2.0" @@ -7667,43 +8790,60 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.4.15, source-map-support@^0.4.2: +source-map-support@^0.4.15: version "0.4.18" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== dependencies: source-map "^0.5.6" -source-map-support@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.3.tgz#2b3d5fff298cfa4d1afd7d4352d569e9a0158e76" +source-map-support@^0.5.6: + version "0.5.6" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.6.tgz#4435cee46b1aab62b8e8610ce60f788091c51c13" + integrity sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-support@^0.5.9: + version "0.5.9" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.9.tgz#41bc953b2534267ea2d605bccfa7bfa3111ced5f" + integrity sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA== dependencies: + buffer-from "^1.0.0" source-map "^0.6.0" source-map-url@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= source-map@0.5.x, source-map@^0.5.0, source-map@^0.5.1, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.0, source-map@~0.5.1, source-map@~0.5.3: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= source-map@^0.4.4, source-map@~0.4.0, source-map@~0.4.2: version "0.4.4" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + integrity sha1-66T12pwNyZneaAMti092FzZSA2s= dependencies: amdefine ">=0.0.4" source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== sparkles@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3" + integrity sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM= spdx-correct@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82" + integrity sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g== dependencies: spdx-expression-parse "^3.0.0" spdx-license-ids "^3.0.0" @@ -7711,10 +8851,12 @@ spdx-correct@^3.0.0: spdx-exceptions@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9" + integrity sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg== spdx-expression-parse@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== dependencies: spdx-exceptions "^2.1.0" spdx-license-ids "^3.0.0" @@ -7722,32 +8864,38 @@ spdx-expression-parse@^3.0.0: spdx-license-ids@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87" + integrity sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA== split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== dependencies: extend-shallow "^3.0.0" split2@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/split2/-/split2-2.2.0.tgz#186b2575bcf83e85b7d18465756238ee4ee42493" + integrity sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw== dependencies: through2 "^2.0.2" split@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" + integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== dependencies: through "2" 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= sshpk@^1.7.0: version "1.13.1" resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" + integrity sha1-US322mKHFEMW3EwY/hzx2UBzm+M= dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" @@ -7762,18 +8910,22 @@ sshpk@^1.7.0: stack-trace@0.0.10: version "0.0.10" resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" + integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= stack-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.1.tgz#d4f33ab54e8e38778b0ca5cfd3b3afb12db68620" + integrity sha1-1PM6tU6OOHeLDKXP07OvsS22hiA= -staged-git-files@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/staged-git-files/-/staged-git-files-1.0.0.tgz#cdb847837c1fcc52c08a872d4883cc0877668a80" +staged-git-files@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/staged-git-files/-/staged-git-files-1.1.1.tgz#37c2218ef0d6d26178b1310719309a16a59f8f7b" + integrity sha512-H89UNKr1rQJvI1c/PIR3kiAMBV23yvR7LItZiV74HWZwzt7f3YHuujJ9nJZlt58WlFox7XQsOahexwk7nTe69A== static-extend@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= dependencies: define-property "^0.2.5" object-copy "^0.1.0" @@ -7781,10 +8933,12 @@ static-extend@^0.1.1: stealthy-require@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= stream-browserify@^2.0.0, stream-browserify@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" + integrity sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds= dependencies: inherits "~2.0.1" readable-stream "^2.0.2" @@ -7792,6 +8946,7 @@ stream-browserify@^2.0.0, stream-browserify@^2.0.1: stream-combiner2@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" + integrity sha1-+02KFCDqNidk4hrUeAOXvry0HL4= dependencies: duplexer2 "~0.1.0" readable-stream "^2.0.2" @@ -7799,10 +8954,12 @@ stream-combiner2@^1.1.1: stream-exhaust@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/stream-exhaust/-/stream-exhaust-1.0.2.tgz#acdac8da59ef2bc1e17a2c0ccf6c320d120e555d" + integrity sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw== stream-http@^2.0.0, stream-http@^2.7.2: version "2.8.0" resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.0.tgz#fd86546dac9b1c91aff8fc5d287b98fafb41bc10" + integrity sha512-sZOFxI/5xw058XIRHl4dU3dZ+TTOIGJR78Dvo0oEAejIt4ou27k+3ne1zYmCV+v7UucbxIFQuOgnkTVHh8YPnw== dependencies: builtin-status-codes "^3.0.0" inherits "^2.0.1" @@ -7813,29 +8970,32 @@ stream-http@^2.0.0, stream-http@^2.7.2: stream-shift@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" + integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= stream-splicer@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-2.0.0.tgz#1b63be438a133e4b671cc1935197600175910d83" + integrity sha1-G2O+Q4oTPktnHMGTUZdgAXWRDYM= dependencies: inherits "^2.0.1" readable-stream "^2.0.2" -stream-to-observable@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/stream-to-observable/-/stream-to-observable-0.2.0.tgz#59d6ea393d87c2c0ddac10aa0d561bc6ba6f0e10" - dependencies: - any-observable "^0.2.0" - streamfilter@^1.0.5: version "1.0.7" resolved "https://registry.yarnpkg.com/streamfilter/-/streamfilter-1.0.7.tgz#ae3e64522aa5a35c061fd17f67620c7653c643c9" + integrity sha512-Gk6KZM+yNA1JpW0KzlZIhjo3EaBJDkYfXtYSbOwNIQ7Zd6006E6+sCFlW1NDvFG/vnXhKmw6TJJgiEQg/8lXfQ== dependencies: readable-stream "^2.0.2" +string-argv@^0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.0.2.tgz#dac30408690c21f3c3630a3ff3a05877bdcbd736" + integrity sha1-2sMECGkMIfPDYwo/86BYd73L1zY= + string-length@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" + integrity sha1-1A27aGo6zpYMHP/KVivyxF+DY+0= dependencies: astral-regex "^1.0.0" strip-ansi "^4.0.0" @@ -7843,6 +9003,7 @@ string-length@^2.0.0: string-width@^1.0.1, string-width@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= dependencies: code-point-at "^1.0.0" is-fullwidth-code-point "^1.0.0" @@ -7851,23 +9012,15 @@ string-width@^1.0.1, string-width@^1.0.2: string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== dependencies: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string.prototype.matchall@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-2.0.0.tgz#2af8fe3d2d6dc53ca2a59bd376b089c3c152b3c8" - dependencies: - define-properties "^1.1.2" - es-abstract "^1.10.0" - function-bind "^1.1.1" - has-symbols "^1.0.0" - regexp.prototype.flags "^1.2.0" - string.prototype.padend@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz#f3aaef7c1719f170c5eab1c32bf780d96e21f2f0" + integrity sha1-86rvfBcZ8XDF6rHDK/eA2W4h8vA= dependencies: define-properties "^1.1.2" es-abstract "^1.4.3" @@ -7876,22 +9029,26 @@ string.prototype.padend@^3.0.0: string_decoder@^1.0.0, string_decoder@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" + integrity sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ== dependencies: safe-buffer "~5.1.0" -string_decoder@~0.10.0, string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - -string_decoder@~1.1.1: +string_decoder@^1.1.1, string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: safe-buffer "~5.1.0" -stringify-object@^3.2.0: +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + +stringify-object@^3.2.2: version "3.2.2" resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.2.2.tgz#9853052e5a88fb605a44cd27445aa257ad7ffbcd" + integrity sha512-O696NF21oLiDy8PhpWu8AEqoZHw++QW6mUv0UvKZe8gWSdSvMXkiLufK7OmnP27Dro4GU5kb9U7JIO0mBuCRQg== dependencies: get-own-enumerable-property-symbols "^2.0.1" is-obj "^1.0.1" @@ -7900,22 +9057,26 @@ stringify-object@^3.2.0: stringstream@~0.0.4, stringstream@~0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" + integrity sha1-TkhM1N5aC7vuGORjB3EKioFiGHg= strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= dependencies: ansi-regex "^2.0.0" strip-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= dependencies: ansi-regex "^3.0.0" strip-bom-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz#f87db5ef2613f6968aa545abfe1ec728b6a829ca" + integrity sha1-+H217yYT9paKpUWr/h7HKLaoKco= dependencies: first-chunk-stream "^2.0.0" strip-bom "^2.0.0" @@ -7923,34 +9084,41 @@ strip-bom-stream@^2.0.0: strip-bom@3.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-bom@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= dependencies: is-utf8 "^0.2.0" strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= strip-indent@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= dependencies: get-stdin "^4.0.1" strip-indent@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" + integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= strong-log-transformer@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/strong-log-transformer/-/strong-log-transformer-1.0.6.tgz#f7fb93758a69a571140181277eea0c2eb1301fa3" + integrity sha1-9/uTdYpppXEUAYEnfuoMLrEwH6M= dependencies: byline "^5.0.0" duplexer "^0.1.1" @@ -7961,59 +9129,65 @@ strong-log-transformer@^1.0.6: subarg@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2" + integrity sha1-9izxdYHplrSPyWVpn1TAauJouNI= dependencies: minimist "^1.1.0" supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= supports-color@^3.1.2: version "3.2.3" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= dependencies: has-flag "^1.0.0" supports-color@^4.2.1: version "4.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" + integrity sha1-vnoN5ITexcXN34s9WRJQRJEvY1s= dependencies: has-flag "^2.0.0" supports-color@^5.2.0, supports-color@^5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.3.0.tgz#5b24ac15db80fa927cf5227a4a33fd3c4c7676c0" + integrity sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg== dependencies: has-flag "^3.0.0" sver-compat@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/sver-compat/-/sver-compat-1.5.0.tgz#3cf87dfeb4d07b4a3f14827bc186b3fd0c645cd8" + integrity sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg= dependencies: es6-iterator "^2.0.1" es6-symbol "^3.1.1" -symbol-observable@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4" - -symbol-observable@^0.2.2: - version "0.2.4" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-0.2.4.tgz#95a83db26186d6af7e7a18dbd9760a2f86d08f40" +symbol-observable@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" + integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== symbol-tree@^3.2.2: version "3.2.2" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" + integrity sha1-rifbOPZgp64uHDt9G8KQgZuFGeY= syntax-error@^1.1.1: version "1.4.0" resolved "https://registry.yarnpkg.com/syntax-error/-/syntax-error-1.4.0.tgz#2d9d4ff5c064acb711594a3e3b95054ad51d907c" + integrity sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w== dependencies: acorn-node "^1.2.0" table@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/table/-/table-4.0.3.tgz#00b5e2b602f1794b9acaf9ca908a76386a7813bc" + integrity sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg== dependencies: ajv "^6.0.1" ajv-keywords "^3.0.0" @@ -8025,10 +9199,12 @@ table@^4.0.3: tapable@^0.2.7: version "0.2.8" resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22" + integrity sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI= tar-pack@^3.4.0: version "3.4.1" resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f" + integrity sha512-PPRybI9+jM5tjtCbN2cxmmRU7YmqT3Zv/UDy48tAh2XRkLa9bAORtSWLkVc13+GJF+cdTh1yEnHEk3cpTaL5Kg== dependencies: debug "^2.2.0" fstream "^1.0.10" @@ -8042,6 +9218,7 @@ tar-pack@^3.4.0: tar@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" + integrity sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE= dependencies: block-stream "*" fstream "^1.0.2" @@ -8050,6 +9227,7 @@ tar@^2.2.1: tar@^4: version "4.4.1" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.1.tgz#b25d5a8470c976fd7a9a8a350f42c59e9fa81749" + integrity sha512-O+v1r9yN4tOsvl90p5HAP4AEqbYhx4036AGMm075fH9F8Qwi3oJ+v4u50FkT/KkvywNGtwkk0zRI+8eYm1X/xg== dependencies: chownr "^1.0.1" fs-minipass "^1.2.5" @@ -8062,10 +9240,12 @@ tar@^4: temp-dir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" + integrity sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0= temp-write@^3.3.0: version "3.4.0" resolved "https://registry.yarnpkg.com/temp-write/-/temp-write-3.4.0.tgz#8cff630fb7e9da05f047c74ce4ce4d685457d492" + integrity sha1-jP9jD7fp2gXwR8dM5M5NaFRX1JI= dependencies: graceful-fs "^4.1.2" is-stream "^1.1.0" @@ -8077,16 +9257,18 @@ temp-write@^3.3.0: tempfile@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/tempfile/-/tempfile-1.1.1.tgz#5bcc4eaecc4ab2c707d8bc11d99ccc9a2cb287f2" + integrity sha1-W8xOrsxKsscH2LwR2ZzMmiyyh/I= dependencies: os-tmpdir "^1.0.0" uuid "^2.0.1" -test-exclude@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.0.tgz#07e3613609a362c74516a717515e13322ab45b3c" +test-exclude@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.1.tgz#dfa222f03480bca69207ca728b37d74b45f724fa" + integrity sha512-qpqlP/8Zl+sosLxBcVKl9vYy26T9NPalxSzzCP/OY6K7j938ui2oKgo+kRZYfxAeIpLqpbVnsHq1tyV70E4lWQ== dependencies: arrify "^1.0.1" - micromatch "^2.3.11" + micromatch "^3.1.8" object-assign "^4.1.0" read-pkg-up "^1.0.1" require-main-filename "^1.0.1" @@ -8094,6 +9276,7 @@ test-exclude@^4.1.1: test262-parser@^2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/test262-parser/-/test262-parser-2.0.7.tgz#733b46bf7759e747eae34b5b14d6a3c8d2082add" + integrity sha1-cztGv3dZ50fq40tbFNajyNIIKt0= dependencies: js-yaml "^3.2.1" through "^2.3.4" @@ -8101,6 +9284,7 @@ test262-parser@^2.0.7: test262-stream@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/test262-stream/-/test262-stream-1.2.0.tgz#37f03bf56672ec0f0120596372ea98313309d32e" + integrity sha512-SHuSII4Dmg4BTNybTYf+h8rFs7y8rqm+WP9XxxrJvhOmbbkItlo4zRgaoavNUNbCMWrZiy6e81DF3vJhIlkf8A== dependencies: klaw "^2.1.0" test262-parser "^2.0.7" @@ -8108,18 +9292,22 @@ test262-stream@^1.2.0: text-extensions@^1.0.0: version "1.7.0" resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.7.0.tgz#faaaba2625ed746d568a23e4d0aacd9bf08a8b39" + integrity sha512-AKXZeDq230UaSzaO5s3qQUZOaC7iKbzq0jOFL614R7d9R593HLqAOL0cYoqLdkNrjBSOdmoQI06yigq1TSBXAg== 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= throat@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" + integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo= through2-filter@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-2.0.0.tgz#60bc55a0dacb76085db1f9dae99ab43f83d622ec" + integrity sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw= dependencies: through2 "~2.0.0" xtend "~4.0.0" @@ -8127,6 +9315,7 @@ through2-filter@^2.0.0: through2@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/through2/-/through2-1.1.1.tgz#0847cbc4449f3405574dbdccd9bb841b83ac3545" + integrity sha1-CEfLxESfNAVXTb3M2buEG4OsNUU= dependencies: readable-stream ">=1.1.13-1 <1.2.0-0" xtend ">=4.0.0 <4.1.0-0" @@ -8134,6 +9323,7 @@ through2@^1.0.0: through2@^2.0.0, through2@^2.0.1, through2@^2.0.2, through2@^2.0.3, through2@~2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" + integrity sha1-AARWmzfHx0ujnEPzzteNGtlBQL4= dependencies: readable-stream "^2.1.5" xtend "~4.0.1" @@ -8141,40 +9331,48 @@ through2@^2.0.0, through2@^2.0.1, through2@^2.0.2, through2@^2.0.3, through2@~2. through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6, through@^2.3.8, through@~2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= time-stamp@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" + integrity sha1-dkpaEa9QVhkhsTPztE5hhofg9cM= timed-out@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= timers-browserify@^1.0.1: version "1.4.2" resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" + integrity sha1-ycWLV1voQHN1y14kYtrO50NZ9B0= dependencies: process "~0.11.0" timers-browserify@^2.0.4: version "2.0.6" resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.6.tgz#241e76927d9ca05f4d959819022f5b3664b64bae" + integrity sha512-HQ3nbYRAowdVd0ckGFvmJPPCOH/CHleFN/Y0YQCX1DVaB7t+KFvisuyN09fuP8Jtp1CpfSh8O8bMkHbdbPe6Pw== dependencies: setimmediate "^1.0.4" tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== dependencies: os-tmpdir "~1.0.2" tmpl@1.0.x: version "1.0.4" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" + integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= to-absolute-glob@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz#1865f43d9e74b0822db9f145b78cff7d0f7c849b" + integrity sha1-GGX0PZ50sIItufFFt4z/fQ98hJs= dependencies: is-absolute "^1.0.0" is-negated-glob "^1.0.0" @@ -8182,24 +9380,29 @@ to-absolute-glob@^2.0.0: to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= to-fast-properties@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= 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= to-object-path@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= dependencies: kind-of "^3.0.2" to-regex-range@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= dependencies: is-number "^3.0.0" repeat-string "^1.6.1" @@ -8207,6 +9410,7 @@ to-regex-range@^2.1.0: to-regex@^3.0.1, to-regex@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== dependencies: define-property "^2.0.2" extend-shallow "^3.0.2" @@ -8216,68 +9420,87 @@ to-regex@^3.0.1, to-regex@^3.0.2: to-through@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-through/-/to-through-2.0.0.tgz#fc92adaba072647bc0b67d6b03664aa195093af6" + integrity sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY= dependencies: through2 "^2.0.3" tough-cookie@>=2.3.3, tough-cookie@^2.3.3, tough-cookie@~2.3.0, tough-cookie@~2.3.3: version "2.3.4" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655" + integrity sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA== dependencies: punycode "^1.4.1" tr46@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= dependencies: punycode "^2.1.0" trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= trim-newlines@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20" + integrity sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA= trim-off-newlines@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" + integrity sha1-n5up2e+odkw4dpi8v+sshI8RrbM= trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= + +tslib@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" + integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= -tty-browserify@~0.0.0: +tty-browserify@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811" + integrity sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw== tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= dependencies: safe-buffer "^5.0.1" tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= dependencies: prelude-ls "~1.1.2" typedarray@^0.0.6, typedarray@~0.0.5: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= uglify-js@3.3.x, uglify-js@^3.0.5: version "3.3.13" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.3.13.tgz#8a1a89eeb16e2d6a66b0db2b04cb871af3c669cf" + integrity sha512-7rdn/bDOG1ElSTPdh7AI5TCjLv63ZD4k8BBadN3ssIkhlaQL2c0yRxmXCyOYhZK0wZTgGgUSnYQ4CGu+Jos5cA== dependencies: commander "~2.14.1" source-map "~0.6.1" @@ -8285,6 +9508,7 @@ uglify-js@3.3.x, uglify-js@^3.0.5: uglify-js@^2.4.16, uglify-js@^2.6, uglify-js@^2.8.29: version "2.8.29" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" + integrity sha1-KcVzMUgFe7Th913zW3qcty5qWd0= dependencies: source-map "~0.5.1" yargs "~3.10.0" @@ -8294,10 +9518,12 @@ uglify-js@^2.4.16, uglify-js@^2.6, uglify-js@^2.8.29: uglify-to-browserify@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + integrity sha1-bgkk1r2mta/jSeOabWMoUKD4grc= uglifyjs-webpack-plugin@^0.4.6: version "0.4.6" resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz#b951f4abb6bd617e66f63eb891498e391763e309" + integrity sha1-uVH0q7a9YX5m9j64kUmOORdj4wk= dependencies: source-map "^0.5.6" uglify-js "^2.8.29" @@ -8306,22 +9532,27 @@ uglifyjs-webpack-plugin@^0.4.6: uid-number@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" + integrity sha1-DqEOgDXo61uOREnwbaHHMGY7qoE= umd@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.1.tgz#8ae556e11011f63c2596708a8837259f01b3d60e" + integrity sha1-iuVW4RAR9jwllnCKiDclnwGz1g4= unc-path-regex@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" + integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo= undertaker-registry@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/undertaker-registry/-/undertaker-registry-1.0.1.tgz#5e4bda308e4a8a2ae584f9b9a4359a499825cc50" + integrity sha1-XkvaMI5KiirlhPm5pDWaSZglzFA= undertaker@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/undertaker/-/undertaker-1.2.0.tgz#339da4646252d082dc378e708067299750e11b49" + integrity sha1-M52kZGJS0ILcN45wgGcpl1DhG0k= dependencies: arr-flatten "^1.0.1" arr-map "^2.0.0" @@ -8336,14 +9567,17 @@ undertaker@^1.0.0: unicode-canonical-property-names-ecmascript@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.3.tgz#f6119f417467593c0086357c85546b6ad5abc583" + integrity sha512-iG/2t0F2LAU8aZYPkX5gi7ebukHnr3sWFESpb+zPQeeaQwOkfoO6ZW17YX7MdRPNG9pCy+tjzGill+Ah0Em0HA== 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.3: version "1.0.3" resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.3.tgz#db9b1cb4ffc67e0c5583780b1b59370e4cbe97b9" + integrity sha512-nFcaBFcr08UQNF15ZgI5ISh3yUnQm7SJRRxwYrL5VYX46pS+6Q7TCTv4zbK+j6/l7rQt0mMiTL2zpmeygny6rA== dependencies: unicode-canonical-property-names-ecmascript "^1.0.2" unicode-property-aliases-ecmascript "^1.0.3" @@ -8351,6 +9585,7 @@ unicode-match-property-ecmascript@^1.0.3: 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" @@ -8358,22 +9593,27 @@ unicode-match-property-ecmascript@^1.0.4: unicode-match-property-value-ecmascript@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.1.tgz#fea059120a016f403afd3bf586162b4db03e0604" + integrity sha512-lM8B0FDZQh9yYGgiabRQcyWicB27VLOolSBRIxsO7FeQPtg+79Oe7sC8Mzr8BObDs+G9CeYmC/shHo6OggNEog== unicode-match-property-value-ecmascript@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz#9f1dc76926d6ccf452310564fd834ace059663d4" + integrity sha512-Rx7yODZC1L/T8XKo/2kNzVAQaRE88AaMvI1EF/Xnj3GW2wzN6fop9DDWuFAKUVFH7vozkz26DzP0qyWLKLIVPQ== unicode-property-aliases-ecmascript@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.3.tgz#ac3522583b9e630580f916635333e00c5ead690d" + integrity sha512-TdDmDOTxEf2ad1g3ZBpM6cqKIb2nJpVlz1Q++casDryKz18tpeMBhSng9hjC1CTQCkOV9Rw2knlSB6iRo7ad1w== unicode-property-aliases-ecmascript@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz#5a533f31b4317ea76f17d807fa0d116546111dd0" + integrity sha512-2WSLa6OdYd2ng8oqiGIWnJqyFArvhn+5vgx5GTxMbUYjCYKUcuKS62YLFF0R/BDGlB1yzXjQOLtPAfHsgirEpg== union-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" + integrity sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ= dependencies: arr-union "^3.1.0" get-value "^2.0.6" @@ -8383,6 +9623,7 @@ union-value@^1.0.0: unique-stream@^2.0.2: version "2.2.1" resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.2.1.tgz#5aa003cfbe94c5ff866c4e7d668bb1c4dbadb369" + integrity sha1-WqADz76Uxf+GbE59ZouxxNuts2k= dependencies: json-stable-stringify "^1.0.0" through2-filter "^2.0.0" @@ -8390,10 +9631,12 @@ unique-stream@^2.0.2: universalify@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7" + integrity sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc= unset-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= dependencies: has-value "^0.3.1" isobject "^3.0.0" @@ -8401,34 +9644,41 @@ unset-value@^1.0.0: unzip-response@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" + integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c= upath@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" + integrity sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw== upper-case@^1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" + integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= -uri-js@^4.2.1: +uri-js@^4.2.1, 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" urix@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= url-parse-lax@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= dependencies: prepend-http "^1.0.1" url@^0.11.0, url@~0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= dependencies: punycode "1.3.2" querystring "0.2.0" @@ -8436,6 +9686,7 @@ url@^0.11.0, url@~0.11.0: use@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/use/-/use-2.0.2.tgz#ae28a0d72f93bf22422a18a2e379993112dec8e8" + integrity sha1-riig1y+TvyJCKhii43mZMRLeyOg= dependencies: define-property "^0.2.5" isobject "^3.0.0" @@ -8444,10 +9695,12 @@ use@^2.0.0: util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= util.promisify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== dependencies: define-properties "^1.1.2" object.getownpropertydescriptors "^2.0.3" @@ -8455,26 +9708,31 @@ util.promisify@^1.0.0: util@0.10.3, util@^0.10.3, util@~0.10.1: version "0.10.3" resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= dependencies: inherits "2.0.1" uuid@^2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" + integrity sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho= uuid@^3.0.0, uuid@^3.0.1, uuid@^3.1.0: version "3.2.1" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" + integrity sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA== v8flags@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.0.2.tgz#ad6a78a20a6b23d03a8debc11211e3cc23149477" + integrity sha512-6sgSKoFw1UpUPd3cFdF7QGnrH6tDeBgW1F3v9gy8gLY0mlbiBXq8soy8aQpY6xeeCjH5K+JvC62Acp7gtl7wWA== dependencies: homedir-polyfill "^1.0.1" validate-npm-package-license@^3.0.1: version "3.0.3" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338" + integrity sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g== dependencies: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" @@ -8482,10 +9740,12 @@ validate-npm-package-license@^3.0.1: value-or-function@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/value-or-function/-/value-or-function-3.0.0.tgz#1c243a50b595c1be54a754bfece8563b9ff8d813" + integrity sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM= verror@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= dependencies: assert-plus "^1.0.0" core-util-is "1.0.2" @@ -8494,6 +9754,7 @@ verror@1.10.0: vinyl-buffer@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/vinyl-buffer/-/vinyl-buffer-1.0.1.tgz#96c1a3479b8c5392542c612029013b5b27f88bbf" + integrity sha1-lsGjR5uMU5JULGEgKQE7Wyf4i78= dependencies: bl "^1.2.1" through2 "^2.0.3" @@ -8501,6 +9762,7 @@ vinyl-buffer@^1.0.1: vinyl-file@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/vinyl-file/-/vinyl-file-2.0.0.tgz#a7ebf5ffbefda1b7d18d140fcb07b223efb6751a" + integrity sha1-p+v1/779obfRjRQPyweyI++2dRo= dependencies: graceful-fs "^4.1.2" pify "^2.3.0" @@ -8512,6 +9774,7 @@ vinyl-file@^2.0.0: vinyl-fs@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-3.0.2.tgz#1b86258844383f57581fcaac081fe09ef6d6d752" + integrity sha512-AUSFda1OukBwuLPBTbyuO4IRWgfXmqC4UTW0f8xrCa8Hkv9oyIU+NSqBlgfOLZRoUt7cHdo75hKQghCywpIyIw== dependencies: fs-mkdirp-stream "^1.0.0" glob-stream "^6.1.0" @@ -8534,6 +9797,7 @@ vinyl-fs@^3.0.0: vinyl-source-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/vinyl-source-stream/-/vinyl-source-stream-2.0.0.tgz#f38a5afb9dd1e93b65d550469ac6182ac4f54b8e" + integrity sha1-84pa+53R6Ttl1VBGmsYYKsT1S44= dependencies: through2 "^2.0.3" vinyl "^2.1.0" @@ -8541,6 +9805,7 @@ vinyl-source-stream@^2.0.0: vinyl-sourcemap@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz#92a800593a38703a8cdb11d8b300ad4be63b3e16" + integrity sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY= dependencies: append-buffer "^1.0.2" convert-source-map "^1.5.0" @@ -8553,12 +9818,14 @@ vinyl-sourcemap@^1.1.0: vinyl-sourcemaps-apply@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz#ab6549d61d172c2b1b87be5c508d239c8ef87705" + integrity sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU= dependencies: source-map "^0.5.1" vinyl@^0.5.0: version "0.5.3" resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde" + integrity sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4= dependencies: clone "^1.0.0" clone-stats "^0.0.1" @@ -8567,6 +9834,7 @@ vinyl@^0.5.0: vinyl@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-1.2.0.tgz#5c88036cf565e5df05558bfc911f8656df218884" + integrity sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ= dependencies: clone "^1.0.0" clone-stats "^0.0.1" @@ -8575,6 +9843,7 @@ vinyl@^1.1.0: vinyl@^2.0.0, vinyl@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.1.0.tgz#021f9c2cf951d6b939943c89eb5ee5add4fd924c" + integrity sha1-Ah+cLPlR1rk5lDyJ617lrdT9kkw= dependencies: clone "^2.1.1" clone-buffer "^1.0.0" @@ -8583,27 +9852,36 @@ vinyl@^2.0.0, vinyl@^2.1.0: remove-trailing-separator "^1.0.1" replace-ext "^1.0.0" -vm-browserify@0.0.4, vm-browserify@~0.0.1: +vm-browserify@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" + integrity sha1-XX6kW7755Kb/ZflUOOCofDV9WnM= dependencies: indexof "0.0.1" +vm-browserify@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019" + integrity sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw== + w3c-hr-time@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045" + integrity sha1-gqwr/2PZUOqeMYmlimViX+3xkEU= dependencies: browser-process-hrtime "^0.1.2" walker@~1.0.5: version "1.0.7" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= dependencies: makeerror "1.0.x" watch@~0.18.0: version "0.18.0" resolved "https://registry.yarnpkg.com/watch/-/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986" + integrity sha1-KAlUdsbffJDJYxOJkMClQj60uYY= dependencies: exec-sh "^0.2.0" minimist "^1.2.0" @@ -8611,6 +9889,7 @@ watch@~0.18.0: watchpack@^1.4.0: version "1.5.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.5.0.tgz#231e783af830a22f8966f65c4c4bacc814072eed" + integrity sha512-RSlipNQB1u48cq0wH/BNfCu1tD/cJ8ydFIkNYhp9o+3d+8unClkIovpW5qpFPgmL9OE48wfAnlZydXByWP82AA== dependencies: chokidar "^2.0.2" graceful-fs "^4.1.2" @@ -8619,16 +9898,19 @@ watchpack@^1.4.0: wcwidth@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= dependencies: defaults "^1.0.3" webidl-conversions@^4.0.1, webidl-conversions@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== webpack-dependency-suite@^2.4.4: version "2.4.5" resolved "https://registry.yarnpkg.com/webpack-dependency-suite/-/webpack-dependency-suite-2.4.5.tgz#e2d3c9a178140edb7be41de57413a31cb2f11ec0" + integrity sha512-UyAXvIu12XjcuiUkO1QQ7xRC/rpOyCfdCOhlhgJrLkt2FqK/l0dhynVxLRHO/QyGoNpfoO0N7k+m/LTxfriwrQ== dependencies: "@types/acorn" "^4.0.2" "@types/cheerio" "^0.22.1" @@ -8653,6 +9935,7 @@ webpack-dependency-suite@^2.4.4: webpack-sources@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.1.0.tgz#a101ebae59d6507354d71d8013950a3a8b7a5a54" + integrity sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw== dependencies: source-list-map "^2.0.0" source-map "~0.6.1" @@ -8660,6 +9943,7 @@ webpack-sources@^1.0.1: webpack-stream@^4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/webpack-stream/-/webpack-stream-4.0.2.tgz#7b90aec71d45c8a4519ff8b5a4d59e039cfd02c0" + integrity sha512-x9st6kLpPXaB7wPb7nKVtTgdIZx2TFV0+rTAzMQEPyA72qzYPKR5OItxP7e1vTtbX5T4Fm7rAlMPfAq1Ijq6gg== dependencies: fancy-log "^1.3.2" lodash.clone "^4.3.2" @@ -8674,6 +9958,7 @@ webpack-stream@^4.0.0: webpack@^3.4.1: version "3.11.0" resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.11.0.tgz#77da451b1d7b4b117adaf41a1a93b5742f24d894" + integrity sha512-3kOFejWqj5ISpJk4Qj/V7w98h9Vl52wak3CLiw/cDOfbVTq7FeoZ0SdoHHY9PYlHr50ZS42OfvzE2vB4nncKQg== dependencies: acorn "^5.0.0" acorn-dynamic-import "^2.0.0" @@ -8701,12 +9986,14 @@ webpack@^3.4.1: whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz#57c235bc8657e914d24e1a397d3c82daee0a6ba3" + integrity sha512-jLBwwKUhi8WtBfsMQlL4bUUcT8sMkAtQinscJAe/M4KHCkHuUJAF6vuB0tueNIw4c8ziO6AkRmgY+jL3a0iiPw== dependencies: iconv-lite "0.4.19" whatwg-url@^6.4.0: version "6.4.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.4.0.tgz#08fdf2b9e872783a7a1f6216260a1d66cc722e08" + integrity sha512-Z0CVh/YE217Foyb488eo+iBv+r7eAQ0wSTyApi9n06jhcA3z6Nidg/EGvl0UFkg7kMdKxfBzzr+o9JF+cevgMg== dependencies: lodash.sortby "^4.7.0" tr46 "^1.0.0" @@ -8715,42 +10002,51 @@ whatwg-url@^6.4.0: which-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" + integrity sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8= which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= which@^1.2.10, which@^1.2.12, which@^1.2.14, which@^1.2.9, which@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" + integrity sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg== dependencies: isexe "^2.0.0" wide-align@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" + integrity sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w== dependencies: string-width "^1.0.2" window-size@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + integrity sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0= wordwrap@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + integrity sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8= wordwrap@~0.0.2: version "0.0.3" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= wordwrap@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= wrap-ansi@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= dependencies: string-width "^1.0.1" strip-ansi "^3.0.1" @@ -8758,10 +10054,12 @@ wrap-ansi@^2.0.0: wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= write-file-atomic@^2.0.0, write-file-atomic@^2.1.0, write-file-atomic@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" + integrity sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA== dependencies: graceful-fs "^4.1.11" imurmurhash "^0.1.4" @@ -8770,6 +10068,7 @@ write-file-atomic@^2.0.0, write-file-atomic@^2.1.0, write-file-atomic@^2.3.0: write-json-file@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-2.3.0.tgz#2b64c8a33004d54b8698c76d585a77ceb61da32f" + integrity sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8= dependencies: detect-indent "^5.0.0" graceful-fs "^4.1.2" @@ -8781,6 +10080,7 @@ write-json-file@^2.2.0: write-pkg@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/write-pkg/-/write-pkg-3.2.0.tgz#0e178fe97820d389a8928bc79535dbe68c2cff21" + integrity sha512-tX2ifZ0YqEFOF1wjRW2Pk93NLsj02+n1UP5RvO6rCs0K6R2g1padvf006cY74PQJKMGS2r42NK7FD0dG6Y6paw== dependencies: sort-keys "^2.0.0" write-json-file "^2.2.0" @@ -8788,12 +10088,14 @@ write-pkg@^3.1.0: write@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" + integrity sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c= dependencies: mkdirp "^0.5.1" ws@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/ws/-/ws-4.1.0.tgz#a979b5d7d4da68bf54efe0408967c324869a7289" + integrity sha512-ZGh/8kF9rrRNffkLFV4AzhvooEclrOH0xaugmqGsIfFgOE/pIz4fMc4Ef+5HSQqTEug2S9JZIWDR47duDSLfaA== dependencies: async-limiter "~1.0.0" safe-buffer "~5.1.0" @@ -8801,54 +10103,65 @@ ws@^4.0.0: xml-char-classes@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/xml-char-classes/-/xml-char-classes-1.0.0.tgz#64657848a20ffc5df583a42ad8a277b4512bbc4d" + integrity sha1-ZGV4SKIP/F31g6Qq2KJ3tFErvE0= xml-name-validator@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== "xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68= y18n@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= yallist@^3.0.0, yallist@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" + integrity sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k= yargs-parser@^4.2.0: version "4.2.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" + integrity sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw= dependencies: camelcase "^3.0.0" yargs-parser@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" + integrity sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo= dependencies: camelcase "^3.0.0" yargs-parser@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" + integrity sha1-jQrELxbqVd69MyyvTEA4s+P139k= dependencies: camelcase "^4.1.0" -yargs-parser@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.1.0.tgz#f1376a33b6629a5d063782944da732631e966950" +yargs-parser@^9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" + integrity sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc= dependencies: camelcase "^4.1.0" -yargs@^10.0.3: - version "10.1.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-10.1.2.tgz#454d074c2b16a51a43e2fb7807e4f9de69ccb5c5" +yargs@^11.0.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77" + integrity sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A== dependencies: cliui "^4.0.0" decamelize "^1.1.1" @@ -8861,11 +10174,12 @@ yargs@^10.0.3: string-width "^2.0.0" which-module "^2.0.0" y18n "^3.2.1" - yargs-parser "^8.1.0" + yargs-parser "^9.0.2" yargs@^6.5.0, yargs@^6.6.0: version "6.6.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" + integrity sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg= dependencies: camelcase "^3.0.0" cliui "^3.2.0" @@ -8884,6 +10198,7 @@ yargs@^6.5.0, yargs@^6.6.0: yargs@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" + integrity sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg= dependencies: camelcase "^3.0.0" cliui "^3.2.0" @@ -8902,6 +10217,7 @@ yargs@^7.1.0: yargs@^8.0.2: version "8.0.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" + integrity sha1-YpmpBVsc78lp/355wdkY3Osiw2A= dependencies: camelcase "^4.1.0" cliui "^3.2.0" @@ -8920,6 +10236,7 @@ yargs@^8.0.2: yargs@~3.10.0: version "3.10.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + integrity sha1-9+572FfdfB0tOMDnTvvWgdFDH9E= dependencies: camelcase "^1.0.2" cliui "^2.1.0"