diff --git a/packages/babel-plugin-proposal-async-generator-functions/package.json b/packages/babel-plugin-proposal-async-generator-functions/package.json index efbe30c6552b..5b4b724b5310 100644 --- a/packages/babel-plugin-proposal-async-generator-functions/package.json +++ b/packages/babel-plugin-proposal-async-generator-functions/package.json @@ -27,7 +27,7 @@ "devDependencies": { "@babel/core": "workspace:^", "@babel/helper-plugin-test-runner": "workspace:^", - "babel-plugin-polyfill-corejs3": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.4.0", "core-js-pure": "^3.19.0" }, "engines": { diff --git a/packages/babel-plugin-proposal-decorators/package.json b/packages/babel-plugin-proposal-decorators/package.json index 4569f5f8dd83..94b3165804a2 100644 --- a/packages/babel-plugin-proposal-decorators/package.json +++ b/packages/babel-plugin-proposal-decorators/package.json @@ -30,7 +30,7 @@ "devDependencies": { "@babel/core": "workspace:^", "@babel/helper-plugin-test-runner": "workspace:^", - "babel-plugin-polyfill-es-shims": "^0.5.0", + "babel-plugin-polyfill-es-shims": "^0.6.0", "object.getownpropertydescriptors": "^2.1.1" }, "engines": { diff --git a/packages/babel-plugin-transform-runtime/package.json b/packages/babel-plugin-transform-runtime/package.json index 785cb5fd724b..2258cafd1f6b 100644 --- a/packages/babel-plugin-transform-runtime/package.json +++ b/packages/babel-plugin-transform-runtime/package.json @@ -22,9 +22,9 @@ "dependencies": { "@babel/helper-module-imports": "workspace:^", "@babel/helper-plugin-utils": "workspace:^", - "babel-plugin-polyfill-corejs2": "^0.2.3", - "babel-plugin-polyfill-corejs3": "^0.3.0", - "babel-plugin-polyfill-regenerator": "^0.2.3", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.4.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", "semver": "condition:BABEL_8_BREAKING ? ^7.3.4 : ^6.3.0" }, "peerDependencies": { diff --git a/packages/babel-plugin-transform-runtime/src/get-runtime-path/browser.ts b/packages/babel-plugin-transform-runtime/src/get-runtime-path/browser.ts index 508eada79778..94af79f4ce4d 100644 --- a/packages/babel-plugin-transform-runtime/src/get-runtime-path/browser.ts +++ b/packages/babel-plugin-transform-runtime/src/get-runtime-path/browser.ts @@ -1,6 +1,10 @@ export default function (moduleName, dirname, absoluteRuntime) { if (absoluteRuntime === false) return moduleName; + resolveFSPath(); +} + +export function resolveFSPath() { throw new Error( "The 'absoluteRuntime' option is not supported when using @babel/standalone.", ); diff --git a/packages/babel-plugin-transform-runtime/src/get-runtime-path/index.ts b/packages/babel-plugin-transform-runtime/src/get-runtime-path/index.ts index 56e3a5a1ed49..28f6d7a82197 100644 --- a/packages/babel-plugin-transform-runtime/src/get-runtime-path/index.ts +++ b/packages/babel-plugin-transform-runtime/src/get-runtime-path/index.ts @@ -32,3 +32,7 @@ function resolveAbsoluteRuntime(moduleName: string, dirname: string) { ); } } + +export function resolveFSPath(path) { + return require.resolve(path); +} diff --git a/packages/babel-plugin-transform-runtime/src/index.ts b/packages/babel-plugin-transform-runtime/src/index.ts index f1c48fb588a4..ebb54cbf11eb 100644 --- a/packages/babel-plugin-transform-runtime/src/index.ts +++ b/packages/babel-plugin-transform-runtime/src/index.ts @@ -3,7 +3,7 @@ import { addDefault, isModule } from "@babel/helper-module-imports"; import { types as t } from "@babel/core"; import { hasMinVersion } from "./helpers"; -import getRuntimePath from "./get-runtime-path"; +import getRuntimePath, { resolveFSPath } from "./get-runtime-path"; import _pluginCorejs2 from "babel-plugin-polyfill-corejs2"; import _pluginCorejs3 from "babel-plugin-polyfill-corejs3"; @@ -165,8 +165,6 @@ export default declare((api, options, dirname) => { }; } - const corejsExt = absoluteRuntime ? ".js" : ""; - return { name: "transform-runtime", @@ -175,14 +173,16 @@ export default declare((api, options, dirname) => { pluginCorejs2, { method: "usage-pure", + absoluteImports: absoluteRuntime ? modulePath : false, [pluginsCompat]: { runtimeVersion, useBabelRuntime: modulePath, - ext: corejsExt, + ext: "", }, }, createRegeneratorPlugin({ method: "usage-pure", + absoluteImports: absoluteRuntime ? modulePath : false, [pluginsCompat]: { useBabelRuntime: modulePath }, }), ) @@ -193,15 +193,18 @@ export default declare((api, options, dirname) => { method: "usage-pure", version: 3, proposals, - [pluginsCompat]: { useBabelRuntime: modulePath, ext: corejsExt }, + absoluteImports: absoluteRuntime ? modulePath : false, + [pluginsCompat]: { useBabelRuntime: modulePath, ext: "" }, }, createRegeneratorPlugin({ method: "usage-pure", + absoluteImports: absoluteRuntime ? modulePath : false, [pluginsCompat]: { useBabelRuntime: modulePath }, }), ) : createRegeneratorPlugin({ method: "usage-pure", + absoluteImports: absoluteRuntime ? modulePath : false, [pluginsCompat]: { useBabelRuntime: modulePath }, }), @@ -232,12 +235,10 @@ export default declare((api, options, dirname) => { ? "helpers/esm" : "helpers"; - return addDefaultImport( - `${modulePath}/${helpersDir}/${name}`, - name, - blockHoist, - true, - ); + let helperPath = `${modulePath}/${helpersDir}/${name}`; + if (absoluteRuntime) helperPath = resolveFSPath(helperPath); + + return addDefaultImport(helperPath, name, blockHoist, true); }); const cache = new Map(); 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 index 4e7a5218225f..8b22aebeabe2 100644 --- a/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/relative/output.js +++ b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/relative/output.js @@ -1,4 +1,4 @@ -var _classCallCheck = require("/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/relative/subfolder/node_modules/@babel/runtime/helpers/classCallCheck"); +var _classCallCheck = require("/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/relative/subfolder/node_modules/@babel/runtime/helpers/classCallCheck.js"); let Foo = function Foo() { "use strict"; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/relative/subfolder/node_modules/@babel/runtime/helpers/classCallCheck.js b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/relative/subfolder/node_modules/@babel/runtime/helpers/classCallCheck.js new file mode 100644 index 000000000000..8b1a393741c9 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/relative/subfolder/node_modules/@babel/runtime/helpers/classCallCheck.js @@ -0,0 +1 @@ +// empty diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-proposals/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-proposals/output.js index 103801cebf2f..fe7fecd2caa6 100644 --- a/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-proposals/output.js +++ b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-proposals/output.js @@ -1,4 +1,4 @@ -var _regeneratorRuntime = require("/packages/babel-runtime-corejs3/regenerator"); +var _regeneratorRuntime = require("/packages/babel-runtime-corejs3/regenerator/index.js"); var _mapInstanceProperty = require("/packages/babel-runtime-corejs3/core-js/instance/map.js"); diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-stable/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-stable/output.js index f12caf00ff1d..7dc7f9eecffa 100644 --- a/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-stable/output.js +++ b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-corejs3-stable/output.js @@ -1,4 +1,4 @@ -var _regeneratorRuntime = require("/packages/babel-runtime-corejs3/regenerator"); +var _regeneratorRuntime = require("/packages/babel-runtime-corejs3/regenerator/index.js"); var _mapInstanceProperty = require("/packages/babel-runtime-corejs3/core-js-stable/instance/map.js"); diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-use-es-modules/input.js b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-use-es-modules/input.js new file mode 100644 index 000000000000..4e6a6de65314 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-use-es-modules/input.js @@ -0,0 +1 @@ +class Foo {} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-use-es-modules/options.json b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-use-es-modules/options.json new file mode 100644 index 000000000000..891cd526879d --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-use-es-modules/options.json @@ -0,0 +1,6 @@ +{ + "plugins": [ + "transform-classes", + ["transform-runtime", { "absoluteRuntime": true, "useESModules": true }] + ] +} diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-use-es-modules/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-use-es-modules/output.js new file mode 100644 index 000000000000..171f958ee914 --- /dev/null +++ b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true-use-es-modules/output.js @@ -0,0 +1,7 @@ +var _classCallCheck = require("/packages/babel-runtime/helpers/classCallCheck.js"); + +let Foo = function Foo() { + "use strict"; + + _classCallCheck(this, Foo); +}; 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 index e1b6927ae714..171f958ee914 100644 --- a/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true/output.js +++ b/packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/true/output.js @@ -1,4 +1,4 @@ -var _classCallCheck = require("/packages/babel-runtime/helpers/classCallCheck"); +var _classCallCheck = require("/packages/babel-runtime/helpers/classCallCheck.js"); let Foo = function Foo() { "use strict"; diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/windows/absoluteRuntime/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/windows/absoluteRuntime/output.js index dded9de0698a..b21448b570a6 100644 --- a/packages/babel-plugin-transform-runtime/test/fixtures/windows/absoluteRuntime/output.js +++ b/packages/babel-plugin-transform-runtime/test/fixtures/windows/absoluteRuntime/output.js @@ -1,4 +1,4 @@ -var _asyncToGenerator = require("/packages/babel-runtime/helpers/asyncToGenerator"); +var _asyncToGenerator = require("\\packages\\babel-runtime\\helpers\\asyncToGenerator.js"); function test() { return _test.apply(this, arguments); diff --git a/packages/babel-preset-env/package.json b/packages/babel-preset-env/package.json index f1ef9a8b3083..7f53b3701d01 100644 --- a/packages/babel-preset-env/package.json +++ b/packages/babel-preset-env/package.json @@ -85,9 +85,9 @@ "@babel/plugin-transform-unicode-regex": "workspace:^", "@babel/preset-modules": "^0.1.5", "@babel/types": "workspace:^", - "babel-plugin-polyfill-corejs2": "^0.2.3", - "babel-plugin-polyfill-corejs3": "^0.3.0", - "babel-plugin-polyfill-regenerator": "^0.2.3", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.4.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", "core-js-compat": "^3.19.1", "semver": "condition:BABEL_8_BREAKING ? ^7.3.4 : ^6.3.0" }, diff --git a/yarn.lock b/yarn.lock index b50078c0fc4d..c32638f918f4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -587,6 +587,24 @@ __metadata: languageName: node linkType: hard +"@babel/helper-define-polyfill-provider@npm:^0.3.0": + version: 0.3.0 + resolution: "@babel/helper-define-polyfill-provider@npm:0.3.0" + dependencies: + "@babel/helper-compilation-targets": ^7.13.0 + "@babel/helper-module-imports": ^7.12.13 + "@babel/helper-plugin-utils": ^7.13.0 + "@babel/traverse": ^7.13.0 + debug: ^4.1.1 + lodash.debounce: ^4.0.8 + resolve: ^1.14.2 + semver: ^6.1.2 + peerDependencies: + "@babel/core": ^7.4.0-0 + checksum: 372378ac4235c4fe135f1cd6d0f63697e7cb3ef63a884eb14f4b439984846bcaec0b7a32cf8df6756a21557ae3ebb3c2ee18d9a191260705a583333e5e60df7c + languageName: node + linkType: hard + "@babel/helper-explode-assignable-expression@npm:^7.14.5": version: 7.14.5 resolution: "@babel/helper-explode-assignable-expression@npm:7.14.5" @@ -1158,7 +1176,7 @@ __metadata: "@babel/helper-plugin-utils": "workspace:^" "@babel/helper-remap-async-to-generator": "workspace:^" "@babel/plugin-syntax-async-generators": ^7.8.4 - babel-plugin-polyfill-corejs3: ^0.3.0 + babel-plugin-polyfill-corejs3: ^0.4.0 core-js-pure: ^3.19.0 peerDependencies: "@babel/core": ^7.0.0-0 @@ -1226,7 +1244,7 @@ __metadata: "@babel/helper-plugin-test-runner": "workspace:^" "@babel/helper-plugin-utils": "workspace:^" "@babel/plugin-syntax-decorators": "workspace:^" - babel-plugin-polyfill-es-shims: ^0.5.0 + babel-plugin-polyfill-es-shims: ^0.6.0 object.getownpropertydescriptors: ^2.1.1 peerDependencies: "@babel/core": ^7.0.0-0 @@ -2920,9 +2938,9 @@ __metadata: "@babel/runtime-corejs3": "workspace:^" "@babel/template": "workspace:^" "@babel/types": "workspace:^" - babel-plugin-polyfill-corejs2: ^0.2.3 - babel-plugin-polyfill-corejs3: ^0.3.0 - babel-plugin-polyfill-regenerator: ^0.2.3 + babel-plugin-polyfill-corejs2: ^0.3.0 + babel-plugin-polyfill-corejs3: ^0.4.0 + babel-plugin-polyfill-regenerator: ^0.3.0 make-dir: "condition:BABEL_8_BREAKING ? : ^2.1.0" semver: "condition:BABEL_8_BREAKING ? ^7.3.4 : ^6.3.0" peerDependencies: @@ -3298,9 +3316,9 @@ __metadata: "@babel/plugin-transform-unicode-regex": "workspace:^" "@babel/preset-modules": ^0.1.5 "@babel/types": "workspace:^" - babel-plugin-polyfill-corejs2: ^0.2.3 - babel-plugin-polyfill-corejs3: ^0.3.0 - babel-plugin-polyfill-regenerator: ^0.2.3 + babel-plugin-polyfill-corejs2: ^0.3.0 + babel-plugin-polyfill-corejs3: ^0.4.0 + babel-plugin-polyfill-regenerator: ^0.3.0 core-js-compat: ^3.19.1 semver: "condition:BABEL_8_BREAKING ? ^7.3.4 : ^6.3.0" peerDependencies: @@ -5606,7 +5624,7 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs2@npm:^0.2.2, babel-plugin-polyfill-corejs2@npm:^0.2.3": +"babel-plugin-polyfill-corejs2@npm:^0.2.2": version: 0.2.3 resolution: "babel-plugin-polyfill-corejs2@npm:0.2.3" dependencies: @@ -5619,6 +5637,19 @@ __metadata: languageName: node linkType: hard +"babel-plugin-polyfill-corejs2@npm:^0.3.0": + version: 0.3.0 + resolution: "babel-plugin-polyfill-corejs2@npm:0.3.0" + dependencies: + "@babel/compat-data": ^7.13.11 + "@babel/helper-define-polyfill-provider": ^0.3.0 + semver: ^6.1.1 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ffede597982066221291fe7c48ec1f1dda2b4ed3ee3e715436320697f35368223e1275bf095769d0b0c1115b90031dc525dd81b8ee9f6c8972cf1d2e10ad2b7d + languageName: node + linkType: hard + "babel-plugin-polyfill-corejs3@npm:^0.2.2": version: 0.2.5 resolution: "babel-plugin-polyfill-corejs3@npm:0.2.5" @@ -5631,30 +5662,30 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs3@npm:^0.3.0": - version: 0.3.0 - resolution: "babel-plugin-polyfill-corejs3@npm:0.3.0" +"babel-plugin-polyfill-corejs3@npm:^0.4.0": + version: 0.4.0 + resolution: "babel-plugin-polyfill-corejs3@npm:0.4.0" dependencies: - "@babel/helper-define-polyfill-provider": ^0.2.4 + "@babel/helper-define-polyfill-provider": ^0.3.0 core-js-compat: ^3.18.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: bef217415448dea6af38ac4ce70e0fad897577fe764711a47030beee191848a47a9fdd9e1b222ef428c8fc0b792cdb8750aaddb3fa5624feccb64b6926ac57b4 + checksum: 18dce9a09a608b4844bce468a1d7b3abfc8a2a4c0df317ad6eb5951c0c95f3d1cc99699d8e67642cdd629f5074499d481481ae5e203ce85b8ed73e8295e25da8 languageName: node linkType: hard -"babel-plugin-polyfill-es-shims@npm:^0.5.0": - version: 0.5.0 - resolution: "babel-plugin-polyfill-es-shims@npm:0.5.0" +"babel-plugin-polyfill-es-shims@npm:^0.6.0": + version: 0.6.0 + resolution: "babel-plugin-polyfill-es-shims@npm:0.6.0" dependencies: - "@babel/helper-define-polyfill-provider": ^0.2.4 + "@babel/helper-define-polyfill-provider": ^0.3.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: ddfb94b4ec31d59c989b03db01e902ae97ef5a2f135e63f3c3395a42f52494fded6148744b2b0bba992f891de5de3602f251fac3c03c1437541eccda626893f5 + checksum: d29426ccc51cd46572c915346bd30019270e3ac6f20209aab7383b986d43516602c83ec36fb48a5c79f63ae7c21107ecb5d394b80fe88cf66a70b4bbb037f2c7 languageName: node linkType: hard -"babel-plugin-polyfill-regenerator@npm:^0.2.2, babel-plugin-polyfill-regenerator@npm:^0.2.3": +"babel-plugin-polyfill-regenerator@npm:^0.2.2": version: 0.2.3 resolution: "babel-plugin-polyfill-regenerator@npm:0.2.3" dependencies: @@ -5665,6 +5696,17 @@ __metadata: languageName: node linkType: hard +"babel-plugin-polyfill-regenerator@npm:^0.3.0": + version: 0.3.0 + resolution: "babel-plugin-polyfill-regenerator@npm:0.3.0" + dependencies: + "@babel/helper-define-polyfill-provider": ^0.3.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ecca4389fd557554efc6de834f84f7c85e83c348d5283de2032d35429bc7121ed6f336553d3d704021f9bef22fca339fbee560d3b0fb8bb1d4eca2fecaaeebcb + languageName: node + linkType: hard + "babel-plugin-transform-charcodes@npm:^0.2.0": version: 0.2.0 resolution: "babel-plugin-transform-charcodes@npm:0.2.0"