From 580e798e16346eb894eb899edac82d2efdf40adc Mon Sep 17 00:00:00 2001 From: Christian Cleberg Date: Sat, 18 Apr 2026 22:32:53 -0500 Subject: initial commit --- .../@babel/helper-module-transforms/LICENSE | 22 ++ .../@babel/helper-module-transforms/README.md | 19 + .../helper-module-transforms/lib/dynamic-import.js | 46 +++ .../lib/dynamic-import.js.map | 1 + .../lib/get-module-name.js | 46 +++ .../lib/get-module-name.js.map | 1 + .../@babel/helper-module-transforms/lib/index.js | 396 +++++++++++++++++++++ .../helper-module-transforms/lib/index.js.map | 1 + .../helper-module-transforms/lib/lazy-modules.js | 31 ++ .../lib/lazy-modules.js.map | 1 + .../lib/normalize-and-load-metadata.js | 362 +++++++++++++++++++ .../lib/normalize-and-load-metadata.js.map | 1 + .../lib/rewrite-live-references.js | 360 +++++++++++++++++++ .../lib/rewrite-live-references.js.map | 1 + .../helper-module-transforms/lib/rewrite-this.js | 22 ++ .../lib/rewrite-this.js.map | 1 + .../@babel/helper-module-transforms/package.json | 32 ++ 17 files changed, 1343 insertions(+) create mode 100644 node_modules/@babel/helper-module-transforms/LICENSE create mode 100644 node_modules/@babel/helper-module-transforms/README.md create mode 100644 node_modules/@babel/helper-module-transforms/lib/dynamic-import.js create mode 100644 node_modules/@babel/helper-module-transforms/lib/dynamic-import.js.map create mode 100644 node_modules/@babel/helper-module-transforms/lib/get-module-name.js create mode 100644 node_modules/@babel/helper-module-transforms/lib/get-module-name.js.map create mode 100644 node_modules/@babel/helper-module-transforms/lib/index.js create mode 100644 node_modules/@babel/helper-module-transforms/lib/index.js.map create mode 100644 node_modules/@babel/helper-module-transforms/lib/lazy-modules.js create mode 100644 node_modules/@babel/helper-module-transforms/lib/lazy-modules.js.map create mode 100644 node_modules/@babel/helper-module-transforms/lib/normalize-and-load-metadata.js create mode 100644 node_modules/@babel/helper-module-transforms/lib/normalize-and-load-metadata.js.map create mode 100644 node_modules/@babel/helper-module-transforms/lib/rewrite-live-references.js create mode 100644 node_modules/@babel/helper-module-transforms/lib/rewrite-live-references.js.map create mode 100644 node_modules/@babel/helper-module-transforms/lib/rewrite-this.js create mode 100644 node_modules/@babel/helper-module-transforms/lib/rewrite-this.js.map create mode 100644 node_modules/@babel/helper-module-transforms/package.json (limited to 'node_modules/@babel/helper-module-transforms') diff --git a/node_modules/@babel/helper-module-transforms/LICENSE b/node_modules/@babel/helper-module-transforms/LICENSE new file mode 100644 index 0000000..f31575e --- /dev/null +++ b/node_modules/@babel/helper-module-transforms/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2014-present Sebastian McKenzie and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/@babel/helper-module-transforms/README.md b/node_modules/@babel/helper-module-transforms/README.md new file mode 100644 index 0000000..d0f82fe --- /dev/null +++ b/node_modules/@babel/helper-module-transforms/README.md @@ -0,0 +1,19 @@ +# @babel/helper-module-transforms + +> Babel helper functions for implementing ES6 module transformations + +See our website [@babel/helper-module-transforms](https://babeljs.io/docs/babel-helper-module-transforms) for more information. + +## Install + +Using npm: + +```sh +npm install --save @babel/helper-module-transforms +``` + +or using yarn: + +```sh +yarn add @babel/helper-module-transforms +``` diff --git a/node_modules/@babel/helper-module-transforms/lib/dynamic-import.js b/node_modules/@babel/helper-module-transforms/lib/dynamic-import.js new file mode 100644 index 0000000..57bfe3c --- /dev/null +++ b/node_modules/@babel/helper-module-transforms/lib/dynamic-import.js @@ -0,0 +1,46 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.buildDynamicImport = buildDynamicImport; +var _core = require("@babel/core"); +exports.getDynamicImportSource = function getDynamicImportSource(node) { + const [source] = node.arguments; + return _core.types.isStringLiteral(source) || _core.types.isTemplateLiteral(source) ? source : _core.template.expression.ast`\`\${${source}}\``; +}; +function buildDynamicImport(node, deferToThen, wrapWithPromise, builder) { + const specifier = _core.types.isCallExpression(node) ? node.arguments[0] : node.source; + if (_core.types.isStringLiteral(specifier) || _core.types.isTemplateLiteral(specifier) && specifier.quasis.length === 0) { + if (deferToThen) { + return _core.template.expression.ast` + Promise.resolve().then(() => ${builder(specifier)}) + `; + } else return builder(specifier); + } + const specifierToString = _core.types.isTemplateLiteral(specifier) ? _core.types.identifier("specifier") : _core.types.templateLiteral([_core.types.templateElement({ + raw: "" + }), _core.types.templateElement({ + raw: "" + })], [_core.types.identifier("specifier")]); + if (deferToThen) { + return _core.template.expression.ast` + (specifier => + new Promise(r => r(${specifierToString})) + .then(s => ${builder(_core.types.identifier("s"))}) + )(${specifier}) + `; + } else if (wrapWithPromise) { + return _core.template.expression.ast` + (specifier => + new Promise(r => r(${builder(specifierToString)})) + )(${specifier}) + `; + } else { + return _core.template.expression.ast` + (specifier => ${builder(specifierToString)})(${specifier}) + `; + } +} + +//# sourceMappingURL=dynamic-import.js.map diff --git a/node_modules/@babel/helper-module-transforms/lib/dynamic-import.js.map b/node_modules/@babel/helper-module-transforms/lib/dynamic-import.js.map new file mode 100644 index 0000000..493cd54 --- /dev/null +++ b/node_modules/@babel/helper-module-transforms/lib/dynamic-import.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_core","require","exports","getDynamicImportSource","node","source","arguments","t","isStringLiteral","isTemplateLiteral","template","expression","ast","buildDynamicImport","deferToThen","wrapWithPromise","builder","specifier","isCallExpression","quasis","length","specifierToString","identifier","templateLiteral","templateElement","raw"],"sources":["../src/dynamic-import.ts"],"sourcesContent":["// Heavily inspired by\n// https://github.com/airbnb/babel-plugin-dynamic-import-node/blob/master/src/utils.js\n\nimport { types as t, template } from \"@babel/core\";\n\nif (!process.env.BABEL_8_BREAKING && !USE_ESM && !IS_STANDALONE) {\n // eslint-disable-next-line no-restricted-globals\n exports.getDynamicImportSource = function getDynamicImportSource(\n node: t.CallExpression,\n ): t.StringLiteral | t.TemplateLiteral {\n const [source] = node.arguments;\n\n return t.isStringLiteral(source) || t.isTemplateLiteral(source)\n ? source\n : (template.expression.ast`\\`\\${${source}}\\`` as t.TemplateLiteral);\n };\n}\n\nexport function buildDynamicImport(\n node: t.CallExpression | t.ImportExpression,\n deferToThen: boolean,\n wrapWithPromise: boolean,\n builder: (specifier: t.Expression) => t.Expression,\n): t.Expression {\n const specifier = t.isCallExpression(node) ? node.arguments[0] : node.source;\n\n if (\n t.isStringLiteral(specifier) ||\n (t.isTemplateLiteral(specifier) && specifier.quasis.length === 0)\n ) {\n if (deferToThen) {\n return template.expression.ast`\n Promise.resolve().then(() => ${builder(specifier)})\n `;\n } else return builder(specifier);\n }\n\n const specifierToString = t.isTemplateLiteral(specifier)\n ? t.identifier(\"specifier\")\n : t.templateLiteral(\n [t.templateElement({ raw: \"\" }), t.templateElement({ raw: \"\" })],\n [t.identifier(\"specifier\")],\n );\n\n if (deferToThen) {\n return template.expression.ast`\n (specifier =>\n new Promise(r => r(${specifierToString}))\n .then(s => ${builder(t.identifier(\"s\"))})\n )(${specifier})\n `;\n } else if (wrapWithPromise) {\n return template.expression.ast`\n (specifier =>\n new Promise(r => r(${builder(specifierToString)}))\n )(${specifier})\n `;\n } else {\n return template.expression.ast`\n (specifier => ${builder(specifierToString)})(${specifier})\n `;\n }\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AAIEC,OAAO,CAACC,sBAAsB,GAAG,SAASA,sBAAsBA,CAC9DC,IAAsB,EACe;EACrC,MAAM,CAACC,MAAM,CAAC,GAAGD,IAAI,CAACE,SAAS;EAE/B,OAAOC,WAAC,CAACC,eAAe,CAACH,MAAM,CAAC,IAAIE,WAAC,CAACE,iBAAiB,CAACJ,MAAM,CAAC,GAC3DA,MAAM,GACLK,cAAQ,CAACC,UAAU,CAACC,GAAG,QAAQP,MAAM,KAA2B;AACvE,CAAC;AAGI,SAASQ,kBAAkBA,CAChCT,IAA2C,EAC3CU,WAAoB,EACpBC,eAAwB,EACxBC,OAAkD,EACpC;EACd,MAAMC,SAAS,GAAGV,WAAC,CAACW,gBAAgB,CAACd,IAAI,CAAC,GAAGA,IAAI,CAACE,SAAS,CAAC,CAAC,CAAC,GAAGF,IAAI,CAACC,MAAM;EAE5E,IACEE,WAAC,CAACC,eAAe,CAACS,SAAS,CAAC,IAC3BV,WAAC,CAACE,iBAAiB,CAACQ,SAAS,CAAC,IAAIA,SAAS,CAACE,MAAM,CAACC,MAAM,KAAK,CAAE,EACjE;IACA,IAAIN,WAAW,EAAE;MACf,OAAOJ,cAAQ,CAACC,UAAU,CAACC,GAAG;AACpC,uCAAuCI,OAAO,CAACC,SAAS,CAAC;AACzD,OAAO;IACH,CAAC,MAAM,OAAOD,OAAO,CAACC,SAAS,CAAC;EAClC;EAEA,MAAMI,iBAAiB,GAAGd,WAAC,CAACE,iBAAiB,CAACQ,SAAS,CAAC,GACpDV,WAAC,CAACe,UAAU,CAAC,WAAW,CAAC,GACzBf,WAAC,CAACgB,eAAe,CACf,CAAChB,WAAC,CAACiB,eAAe,CAAC;IAAEC,GAAG,EAAE;EAAG,CAAC,CAAC,EAAElB,WAAC,CAACiB,eAAe,CAAC;IAAEC,GAAG,EAAE;EAAG,CAAC,CAAC,CAAC,EAChE,CAAClB,WAAC,CAACe,UAAU,CAAC,WAAW,CAAC,CAC5B,CAAC;EAEL,IAAIR,WAAW,EAAE;IACf,OAAOJ,cAAQ,CAACC,UAAU,CAACC,GAAG;AAClC;AACA,6BAA6BS,iBAAiB;AAC9C,uBAAuBL,OAAO,CAACT,WAAC,CAACe,UAAU,CAAC,GAAG,CAAC,CAAC;AACjD,UAAUL,SAAS;AACnB,KAAK;EACH,CAAC,MAAM,IAAIF,eAAe,EAAE;IAC1B,OAAOL,cAAQ,CAACC,UAAU,CAACC,GAAG;AAClC;AACA,6BAA6BI,OAAO,CAACK,iBAAiB,CAAC;AACvD,UAAUJ,SAAS;AACnB,KAAK;EACH,CAAC,MAAM;IACL,OAAOP,cAAQ,CAACC,UAAU,CAACC,GAAG;AAClC,sBAAsBI,OAAO,CAACK,iBAAiB,CAAC,KAAKJ,SAAS;AAC9D,KAAK;EACH;AACF","ignoreList":[]} \ No newline at end of file diff --git a/node_modules/@babel/helper-module-transforms/lib/get-module-name.js b/node_modules/@babel/helper-module-transforms/lib/get-module-name.js new file mode 100644 index 0000000..fe2bb20 --- /dev/null +++ b/node_modules/@babel/helper-module-transforms/lib/get-module-name.js @@ -0,0 +1,46 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = getModuleName; +const originalGetModuleName = getModuleName; +exports.default = getModuleName = function getModuleName(rootOpts, pluginOpts) { + var _pluginOpts$moduleId, _pluginOpts$moduleIds, _pluginOpts$getModule, _pluginOpts$moduleRoo; + return originalGetModuleName(rootOpts, { + moduleId: (_pluginOpts$moduleId = pluginOpts.moduleId) != null ? _pluginOpts$moduleId : rootOpts.moduleId, + moduleIds: (_pluginOpts$moduleIds = pluginOpts.moduleIds) != null ? _pluginOpts$moduleIds : rootOpts.moduleIds, + getModuleId: (_pluginOpts$getModule = pluginOpts.getModuleId) != null ? _pluginOpts$getModule : rootOpts.getModuleId, + moduleRoot: (_pluginOpts$moduleRoo = pluginOpts.moduleRoot) != null ? _pluginOpts$moduleRoo : rootOpts.moduleRoot + }); +}; +function getModuleName(rootOpts, pluginOpts) { + const { + filename, + filenameRelative = filename, + sourceRoot = pluginOpts.moduleRoot + } = rootOpts; + const { + moduleId, + moduleIds = !!moduleId, + getModuleId, + moduleRoot = sourceRoot + } = pluginOpts; + if (!moduleIds) return null; + if (moduleId != null && !getModuleId) { + return moduleId; + } + let moduleName = moduleRoot != null ? moduleRoot + "/" : ""; + if (filenameRelative) { + const sourceRootReplacer = sourceRoot != null ? new RegExp("^" + sourceRoot + "/?") : ""; + moduleName += filenameRelative.replace(sourceRootReplacer, "").replace(/\.\w*$/, ""); + } + moduleName = moduleName.replace(/\\/g, "/"); + if (getModuleId) { + return getModuleId(moduleName) || moduleName; + } else { + return moduleName; + } +} + +//# sourceMappingURL=get-module-name.js.map diff --git a/node_modules/@babel/helper-module-transforms/lib/get-module-name.js.map b/node_modules/@babel/helper-module-transforms/lib/get-module-name.js.map new file mode 100644 index 0000000..a9603cf --- /dev/null +++ b/node_modules/@babel/helper-module-transforms/lib/get-module-name.js.map @@ -0,0 +1 @@ +{"version":3,"names":["originalGetModuleName","getModuleName","exports","default","rootOpts","pluginOpts","_pluginOpts$moduleId","_pluginOpts$moduleIds","_pluginOpts$getModule","_pluginOpts$moduleRoo","moduleId","moduleIds","getModuleId","moduleRoot","filename","filenameRelative","sourceRoot","moduleName","sourceRootReplacer","RegExp","replace"],"sources":["../src/get-module-name.ts"],"sourcesContent":["type RootOptions = {\n filename?: string;\n filenameRelative?: string;\n sourceRoot?: string;\n};\n\nexport type PluginOptions = {\n moduleId?: string;\n moduleIds?: boolean;\n getModuleId?: (moduleName: string) => string | null | undefined;\n moduleRoot?: string;\n};\n\nif (!process.env.BABEL_8_BREAKING) {\n const originalGetModuleName = getModuleName;\n\n // @ts-expect-error TS doesn't like reassigning a function.\n getModuleName = function getModuleName(\n rootOpts: RootOptions & PluginOptions,\n pluginOpts: PluginOptions,\n ): string | null {\n return originalGetModuleName(rootOpts, {\n moduleId: pluginOpts.moduleId ?? rootOpts.moduleId,\n moduleIds: pluginOpts.moduleIds ?? rootOpts.moduleIds,\n getModuleId: pluginOpts.getModuleId ?? rootOpts.getModuleId,\n moduleRoot: pluginOpts.moduleRoot ?? rootOpts.moduleRoot,\n });\n };\n}\n\nexport default function getModuleName(\n rootOpts: RootOptions,\n pluginOpts: PluginOptions,\n): string | null {\n const {\n filename,\n filenameRelative = filename,\n sourceRoot = pluginOpts.moduleRoot,\n } = rootOpts;\n\n const {\n moduleId,\n moduleIds = !!moduleId,\n\n getModuleId,\n\n moduleRoot = sourceRoot,\n } = pluginOpts;\n\n if (!moduleIds) return null;\n\n // moduleId is n/a if a `getModuleId()` is provided\n if (moduleId != null && !getModuleId) {\n return moduleId;\n }\n\n let moduleName = moduleRoot != null ? moduleRoot + \"/\" : \"\";\n\n if (filenameRelative) {\n const sourceRootReplacer =\n sourceRoot != null ? new RegExp(\"^\" + sourceRoot + \"/?\") : \"\";\n\n moduleName += filenameRelative\n // remove sourceRoot from filename\n .replace(sourceRootReplacer, \"\")\n // remove extension\n .replace(/\\.\\w*$/, \"\");\n }\n\n // normalize path separators\n moduleName = moduleName.replace(/\\\\/g, \"/\");\n\n if (getModuleId) {\n // If return is falsy, assume they want us to use our generated default name\n return getModuleId(moduleName) || moduleName;\n } else {\n return moduleName;\n }\n}\n"],"mappings":";;;;;;AAcE,MAAMA,qBAAqB,GAAGC,aAAa;AAG3CC,OAAA,CAAAC,OAAA,GAAAF,aAAa,GAAG,SAASA,aAAaA,CACpCG,QAAqC,EACrCC,UAAyB,EACV;EAAA,IAAAC,oBAAA,EAAAC,qBAAA,EAAAC,qBAAA,EAAAC,qBAAA;EACf,OAAOT,qBAAqB,CAACI,QAAQ,EAAE;IACrCM,QAAQ,GAAAJ,oBAAA,GAAED,UAAU,CAACK,QAAQ,YAAAJ,oBAAA,GAAIF,QAAQ,CAACM,QAAQ;IAClDC,SAAS,GAAAJ,qBAAA,GAAEF,UAAU,CAACM,SAAS,YAAAJ,qBAAA,GAAIH,QAAQ,CAACO,SAAS;IACrDC,WAAW,GAAAJ,qBAAA,GAAEH,UAAU,CAACO,WAAW,YAAAJ,qBAAA,GAAIJ,QAAQ,CAACQ,WAAW;IAC3DC,UAAU,GAAAJ,qBAAA,GAAEJ,UAAU,CAACQ,UAAU,YAAAJ,qBAAA,GAAIL,QAAQ,CAACS;EAChD,CAAC,CAAC;AACJ,CAAC;AAGY,SAASZ,aAAaA,CACnCG,QAAqB,EACrBC,UAAyB,EACV;EACf,MAAM;IACJS,QAAQ;IACRC,gBAAgB,GAAGD,QAAQ;IAC3BE,UAAU,GAAGX,UAAU,CAACQ;EAC1B,CAAC,GAAGT,QAAQ;EAEZ,MAAM;IACJM,QAAQ;IACRC,SAAS,GAAG,CAAC,CAACD,QAAQ;IAEtBE,WAAW;IAEXC,UAAU,GAAGG;EACf,CAAC,GAAGX,UAAU;EAEd,IAAI,CAACM,SAAS,EAAE,OAAO,IAAI;EAG3B,IAAID,QAAQ,IAAI,IAAI,IAAI,CAACE,WAAW,EAAE;IACpC,OAAOF,QAAQ;EACjB;EAEA,IAAIO,UAAU,GAAGJ,UAAU,IAAI,IAAI,GAAGA,UAAU,GAAG,GAAG,GAAG,EAAE;EAE3D,IAAIE,gBAAgB,EAAE;IACpB,MAAMG,kBAAkB,GACtBF,UAAU,IAAI,IAAI,GAAG,IAAIG,MAAM,CAAC,GAAG,GAAGH,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE;IAE/DC,UAAU,IAAIF,gBAAgB,CAE3BK,OAAO,CAACF,kBAAkB,EAAE,EAAE,CAAC,CAE/BE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;EAC1B;EAGAH,UAAU,GAAGA,UAAU,CAACG,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;EAE3C,IAAIR,WAAW,EAAE;IAEf,OAAOA,WAAW,CAACK,UAAU,CAAC,IAAIA,UAAU;EAC9C,CAAC,MAAM;IACL,OAAOA,UAAU;EACnB;AACF","ignoreList":[]} \ No newline at end of file diff --git a/node_modules/@babel/helper-module-transforms/lib/index.js b/node_modules/@babel/helper-module-transforms/lib/index.js new file mode 100644 index 0000000..e2d8d4d --- /dev/null +++ b/node_modules/@babel/helper-module-transforms/lib/index.js @@ -0,0 +1,396 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "buildDynamicImport", { + enumerable: true, + get: function () { + return _dynamicImport.buildDynamicImport; + } +}); +exports.buildNamespaceInitStatements = buildNamespaceInitStatements; +exports.ensureStatementsHoisted = ensureStatementsHoisted; +Object.defineProperty(exports, "getModuleName", { + enumerable: true, + get: function () { + return _getModuleName.default; + } +}); +Object.defineProperty(exports, "hasExports", { + enumerable: true, + get: function () { + return _normalizeAndLoadMetadata.hasExports; + } +}); +Object.defineProperty(exports, "isModule", { + enumerable: true, + get: function () { + return _helperModuleImports.isModule; + } +}); +Object.defineProperty(exports, "isSideEffectImport", { + enumerable: true, + get: function () { + return _normalizeAndLoadMetadata.isSideEffectImport; + } +}); +exports.rewriteModuleStatementsAndPrepareHeader = rewriteModuleStatementsAndPrepareHeader; +Object.defineProperty(exports, "rewriteThis", { + enumerable: true, + get: function () { + return _rewriteThis.default; + } +}); +exports.wrapInterop = wrapInterop; +var _assert = require("assert"); +var _core = require("@babel/core"); +var _helperModuleImports = require("@babel/helper-module-imports"); +var _rewriteThis = require("./rewrite-this.js"); +var _rewriteLiveReferences = require("./rewrite-live-references.js"); +var _normalizeAndLoadMetadata = require("./normalize-and-load-metadata.js"); +var Lazy = require("./lazy-modules.js"); +var _dynamicImport = require("./dynamic-import.js"); +var _getModuleName = require("./get-module-name.js"); +exports.getDynamicImportSource = require("./dynamic-import").getDynamicImportSource; +function rewriteModuleStatementsAndPrepareHeader(path, { + exportName, + strict, + allowTopLevelThis, + strictMode, + noInterop, + importInterop = noInterop ? "none" : "babel", + lazy, + getWrapperPayload = Lazy.toGetWrapperPayload(lazy != null ? lazy : false), + wrapReference = Lazy.wrapReference, + esNamespaceOnly, + filename, + constantReexports = arguments[1].loose, + enumerableModuleMeta = arguments[1].loose, + noIncompleteNsImportDetection +}) { + (0, _normalizeAndLoadMetadata.validateImportInteropOption)(importInterop); + _assert((0, _helperModuleImports.isModule)(path), "Cannot process module statements in a script"); + path.node.sourceType = "script"; + const meta = (0, _normalizeAndLoadMetadata.default)(path, exportName, { + importInterop, + initializeReexports: constantReexports, + getWrapperPayload, + esNamespaceOnly, + filename + }); + if (!allowTopLevelThis) { + (0, _rewriteThis.default)(path); + } + (0, _rewriteLiveReferences.default)(path, meta, wrapReference); + if (strictMode !== false) { + const hasStrict = path.node.directives.some(directive => { + return directive.value.value === "use strict"; + }); + if (!hasStrict) { + path.unshiftContainer("directives", _core.types.directive(_core.types.directiveLiteral("use strict"))); + } + } + const headers = []; + if ((0, _normalizeAndLoadMetadata.hasExports)(meta) && !strict) { + headers.push(buildESModuleHeader(meta, enumerableModuleMeta)); + } + const nameList = buildExportNameListDeclaration(path, meta); + if (nameList) { + meta.exportNameListName = nameList.name; + headers.push(nameList.statement); + } + headers.push(...buildExportInitializationStatements(path, meta, wrapReference, constantReexports, noIncompleteNsImportDetection)); + return { + meta, + headers + }; +} +function ensureStatementsHoisted(statements) { + statements.forEach(header => { + header._blockHoist = 3; + }); +} +function wrapInterop(programPath, expr, type) { + if (type === "none") { + return null; + } + if (type === "node-namespace") { + return _core.types.callExpression(programPath.hub.addHelper("interopRequireWildcard"), [expr, _core.types.booleanLiteral(true)]); + } else if (type === "node-default") { + return null; + } + let helper; + if (type === "default") { + helper = "interopRequireDefault"; + } else if (type === "namespace") { + helper = "interopRequireWildcard"; + } else { + throw new Error(`Unknown interop: ${type}`); + } + return _core.types.callExpression(programPath.hub.addHelper(helper), [expr]); +} +function buildNamespaceInitStatements(metadata, sourceMetadata, constantReexports = false, wrapReference = Lazy.wrapReference) { + var _wrapReference; + const statements = []; + const srcNamespaceId = _core.types.identifier(sourceMetadata.name); + for (const localName of sourceMetadata.importsNamespace) { + if (localName === sourceMetadata.name) continue; + statements.push(_core.template.statement`var NAME = SOURCE;`({ + NAME: localName, + SOURCE: _core.types.cloneNode(srcNamespaceId) + })); + } + const srcNamespace = (_wrapReference = wrapReference(srcNamespaceId, sourceMetadata.wrap)) != null ? _wrapReference : srcNamespaceId; + if (constantReexports) { + statements.push(...buildReexportsFromMeta(metadata, sourceMetadata, true, wrapReference)); + } + for (const exportName of sourceMetadata.reexportNamespace) { + statements.push((!_core.types.isIdentifier(srcNamespace) ? _core.template.statement` + Object.defineProperty(EXPORTS, "NAME", { + enumerable: true, + get: function() { + return NAMESPACE; + } + }); + ` : _core.template.statement`EXPORTS.NAME = NAMESPACE;`)({ + EXPORTS: metadata.exportName, + NAME: exportName, + NAMESPACE: _core.types.cloneNode(srcNamespace) + })); + } + if (sourceMetadata.reexportAll) { + const statement = buildNamespaceReexport(metadata, _core.types.cloneNode(srcNamespace), constantReexports); + statement.loc = sourceMetadata.reexportAll.loc; + statements.push(statement); + } + return statements; +} +const ReexportTemplate = { + constant: ({ + exports, + exportName, + namespaceImport + }) => _core.template.statement.ast` + ${exports}.${exportName} = ${namespaceImport}; + `, + constantComputed: ({ + exports, + exportName, + namespaceImport + }) => _core.template.statement.ast` + ${exports}["${exportName}"] = ${namespaceImport}; + `, + spec: ({ + exports, + exportName, + namespaceImport + }) => _core.template.statement.ast` + Object.defineProperty(${exports}, "${exportName}", { + enumerable: true, + get: function() { + return ${namespaceImport}; + }, + }); + ` +}; +function buildReexportsFromMeta(meta, metadata, constantReexports, wrapReference) { + var _wrapReference2; + let namespace = _core.types.identifier(metadata.name); + namespace = (_wrapReference2 = wrapReference(namespace, metadata.wrap)) != null ? _wrapReference2 : namespace; + const { + stringSpecifiers + } = meta; + return Array.from(metadata.reexports, ([exportName, importName]) => { + let namespaceImport = _core.types.cloneNode(namespace); + if (importName === "default" && metadata.interop === "node-default") {} else if (stringSpecifiers.has(importName)) { + namespaceImport = _core.types.memberExpression(namespaceImport, _core.types.stringLiteral(importName), true); + } else { + namespaceImport = _core.types.memberExpression(namespaceImport, _core.types.identifier(importName)); + } + const astNodes = { + exports: meta.exportName, + exportName, + namespaceImport + }; + if (constantReexports || _core.types.isIdentifier(namespaceImport)) { + if (stringSpecifiers.has(exportName)) { + return ReexportTemplate.constantComputed(astNodes); + } else { + return ReexportTemplate.constant(astNodes); + } + } else { + return ReexportTemplate.spec(astNodes); + } + }); +} +function buildESModuleHeader(metadata, enumerableModuleMeta = false) { + return (enumerableModuleMeta ? _core.template.statement` + EXPORTS.__esModule = true; + ` : _core.template.statement` + Object.defineProperty(EXPORTS, "__esModule", { + value: true, + }); + `)({ + EXPORTS: metadata.exportName + }); +} +function buildNamespaceReexport(metadata, namespace, constantReexports) { + return (constantReexports ? _core.template.statement` + Object.keys(NAMESPACE).forEach(function(key) { + if (key === "default" || key === "__esModule") return; + VERIFY_NAME_LIST; + if (key in EXPORTS && EXPORTS[key] === NAMESPACE[key]) return; + + EXPORTS[key] = NAMESPACE[key]; + }); + ` : _core.template.statement` + Object.keys(NAMESPACE).forEach(function(key) { + if (key === "default" || key === "__esModule") return; + VERIFY_NAME_LIST; + if (key in EXPORTS && EXPORTS[key] === NAMESPACE[key]) return; + + Object.defineProperty(EXPORTS, key, { + enumerable: true, + get: function() { + return NAMESPACE[key]; + }, + }); + }); + `)({ + NAMESPACE: namespace, + EXPORTS: metadata.exportName, + VERIFY_NAME_LIST: metadata.exportNameListName ? (0, _core.template)` + if (Object.prototype.hasOwnProperty.call(EXPORTS_LIST, key)) return; + `({ + EXPORTS_LIST: metadata.exportNameListName + }) : null + }); +} +function buildExportNameListDeclaration(programPath, metadata) { + const exportedVars = Object.create(null); + for (const data of metadata.local.values()) { + for (const name of data.names) { + exportedVars[name] = true; + } + } + let hasReexport = false; + for (const data of metadata.source.values()) { + for (const exportName of data.reexports.keys()) { + exportedVars[exportName] = true; + } + for (const exportName of data.reexportNamespace) { + exportedVars[exportName] = true; + } + hasReexport = hasReexport || !!data.reexportAll; + } + if (!hasReexport || Object.keys(exportedVars).length === 0) return null; + const name = programPath.scope.generateUidIdentifier("exportNames"); + delete exportedVars.default; + return { + name: name.name, + statement: _core.types.variableDeclaration("var", [_core.types.variableDeclarator(name, _core.types.valueToNode(exportedVars))]) + }; +} +function buildExportInitializationStatements(programPath, metadata, wrapReference, constantReexports = false, noIncompleteNsImportDetection = false) { + const initStatements = []; + for (const [localName, data] of metadata.local) { + if (data.kind === "import") {} else if (data.kind === "hoisted") { + initStatements.push([data.names[0], buildInitStatement(metadata, data.names, _core.types.identifier(localName))]); + } else if (!noIncompleteNsImportDetection) { + for (const exportName of data.names) { + initStatements.push([exportName, null]); + } + } + } + for (const data of metadata.source.values()) { + if (!constantReexports) { + const reexportsStatements = buildReexportsFromMeta(metadata, data, false, wrapReference); + const reexports = [...data.reexports.keys()]; + for (let i = 0; i < reexportsStatements.length; i++) { + initStatements.push([reexports[i], reexportsStatements[i]]); + } + } + if (!noIncompleteNsImportDetection) { + for (const exportName of data.reexportNamespace) { + initStatements.push([exportName, null]); + } + } + } + initStatements.sort(([a], [b]) => { + if (a < b) return -1; + if (b < a) return 1; + return 0; + }); + const results = []; + if (noIncompleteNsImportDetection) { + for (const [, initStatement] of initStatements) { + results.push(initStatement); + } + } else { + const chunkSize = 100; + for (let i = 0; i < initStatements.length; i += chunkSize) { + let uninitializedExportNames = []; + for (let j = 0; j < chunkSize && i + j < initStatements.length; j++) { + const [exportName, initStatement] = initStatements[i + j]; + if (initStatement !== null) { + if (uninitializedExportNames.length > 0) { + results.push(buildInitStatement(metadata, uninitializedExportNames, programPath.scope.buildUndefinedNode())); + uninitializedExportNames = []; + } + results.push(initStatement); + } else { + uninitializedExportNames.push(exportName); + } + } + if (uninitializedExportNames.length > 0) { + results.push(buildInitStatement(metadata, uninitializedExportNames, programPath.scope.buildUndefinedNode())); + } + } + } + return results; +} +const InitTemplate = { + computed: ({ + exports, + name, + value + }) => _core.template.expression.ast`${exports}["${name}"] = ${value}`, + default: ({ + exports, + name, + value + }) => _core.template.expression.ast`${exports}.${name} = ${value}`, + define: ({ + exports, + name, + value + }) => _core.template.expression.ast` + Object.defineProperty(${exports}, "${name}", { + enumerable: true, + value: void 0, + writable: true + })["${name}"] = ${value}` +}; +function buildInitStatement(metadata, exportNames, initExpr) { + const { + stringSpecifiers, + exportName: exports + } = metadata; + return _core.types.expressionStatement(exportNames.reduce((value, name) => { + const params = { + exports, + name, + value + }; + if (name === "__proto__") { + return InitTemplate.define(params); + } + if (stringSpecifiers.has(name)) { + return InitTemplate.computed(params); + } + return InitTemplate.default(params); + }, initExpr)); +} + +//# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/helper-module-transforms/lib/index.js.map b/node_modules/@babel/helper-module-transforms/lib/index.js.map new file mode 100644 index 0000000..34dcbf6 --- /dev/null +++ b/node_modules/@babel/helper-module-transforms/lib/index.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_assert","require","_core","_helperModuleImports","_rewriteThis","_rewriteLiveReferences","_normalizeAndLoadMetadata","Lazy","_dynamicImport","_getModuleName","exports","getDynamicImportSource","rewriteModuleStatementsAndPrepareHeader","path","exportName","strict","allowTopLevelThis","strictMode","noInterop","importInterop","lazy","getWrapperPayload","toGetWrapperPayload","wrapReference","esNamespaceOnly","filename","constantReexports","arguments","loose","enumerableModuleMeta","noIncompleteNsImportDetection","validateImportInteropOption","assert","isModule","node","sourceType","meta","normalizeModuleAndLoadMetadata","initializeReexports","rewriteThis","rewriteLiveReferences","hasStrict","directives","some","directive","value","unshiftContainer","t","directiveLiteral","headers","hasExports","push","buildESModuleHeader","nameList","buildExportNameListDeclaration","exportNameListName","name","statement","buildExportInitializationStatements","ensureStatementsHoisted","statements","forEach","header","_blockHoist","wrapInterop","programPath","expr","type","callExpression","hub","addHelper","booleanLiteral","helper","Error","buildNamespaceInitStatements","metadata","sourceMetadata","_wrapReference","srcNamespaceId","identifier","localName","importsNamespace","template","NAME","SOURCE","cloneNode","srcNamespace","wrap","buildReexportsFromMeta","reexportNamespace","isIdentifier","EXPORTS","NAMESPACE","reexportAll","buildNamespaceReexport","loc","ReexportTemplate","constant","namespaceImport","ast","constantComputed","spec","_wrapReference2","namespace","stringSpecifiers","Array","from","reexports","importName","interop","has","memberExpression","stringLiteral","astNodes","VERIFY_NAME_LIST","EXPORTS_LIST","exportedVars","Object","create","data","local","values","names","hasReexport","source","keys","length","scope","generateUidIdentifier","default","variableDeclaration","variableDeclarator","valueToNode","initStatements","kind","buildInitStatement","reexportsStatements","i","sort","a","b","results","initStatement","chunkSize","uninitializedExportNames","j","buildUndefinedNode","InitTemplate","computed","expression","define","exportNames","initExpr","expressionStatement","reduce","params"],"sources":["../src/index.ts"],"sourcesContent":["import assert from \"node:assert\";\nimport { template, types as t } from \"@babel/core\";\n\nimport { isModule } from \"@babel/helper-module-imports\";\n\nimport rewriteThis from \"./rewrite-this.ts\";\nimport rewriteLiveReferences from \"./rewrite-live-references.ts\";\nimport normalizeModuleAndLoadMetadata, {\n hasExports,\n isSideEffectImport,\n validateImportInteropOption,\n} from \"./normalize-and-load-metadata.ts\";\nimport type {\n ImportInterop,\n InteropType,\n ModuleMetadata,\n SourceModuleMetadata,\n} from \"./normalize-and-load-metadata.ts\";\nimport * as Lazy from \"./lazy-modules.ts\";\nimport type { NodePath } from \"@babel/core\";\n\nexport { buildDynamicImport } from \"./dynamic-import.ts\";\n\nif (!process.env.BABEL_8_BREAKING && !USE_ESM && !IS_STANDALONE) {\n // eslint-disable-next-line no-restricted-globals\n exports.getDynamicImportSource =\n // eslint-disable-next-line no-restricted-globals, import/extensions\n require(\"./dynamic-import\").getDynamicImportSource;\n}\n\nexport { default as getModuleName } from \"./get-module-name.ts\";\nexport type { PluginOptions } from \"./get-module-name.ts\";\n\nexport { hasExports, isSideEffectImport, isModule, rewriteThis };\n\nexport interface RewriteModuleStatementsAndPrepareHeaderOptions {\n exportName?: string;\n strict: boolean;\n allowTopLevelThis?: boolean;\n strictMode: boolean;\n loose?: boolean;\n importInterop?: ImportInterop;\n noInterop?: boolean;\n lazy?: Lazy.Lazy;\n getWrapperPayload?: (\n source: string,\n metadata: SourceModuleMetadata,\n importNodes: t.Node[],\n ) => unknown;\n wrapReference?: (ref: t.Expression, payload: unknown) => t.Expression | null;\n esNamespaceOnly?: boolean;\n filename: string | undefined;\n constantReexports?: boolean | void;\n enumerableModuleMeta?: boolean | void;\n noIncompleteNsImportDetection?: boolean | void;\n}\n\n/**\n * Perform all of the generic ES6 module rewriting needed to handle initial\n * module processing. This function will rewrite the majority of the given\n * program to reference the modules described by the returned metadata,\n * and returns a list of statements for use when initializing the module.\n */\nexport function rewriteModuleStatementsAndPrepareHeader(\n path: NodePath,\n {\n exportName,\n strict,\n allowTopLevelThis,\n strictMode,\n noInterop,\n importInterop = noInterop ? \"none\" : \"babel\",\n // TODO(Babel 8): After that `lazy` implementation is moved to the CJS\n // transform, remove this parameter.\n lazy,\n getWrapperPayload = Lazy.toGetWrapperPayload(lazy ?? false),\n wrapReference = Lazy.wrapReference,\n esNamespaceOnly,\n filename,\n\n constantReexports = process.env.BABEL_8_BREAKING\n ? undefined\n : arguments[1].loose,\n enumerableModuleMeta = process.env.BABEL_8_BREAKING\n ? undefined\n : arguments[1].loose,\n noIncompleteNsImportDetection,\n }: RewriteModuleStatementsAndPrepareHeaderOptions,\n) {\n validateImportInteropOption(importInterop);\n assert(isModule(path), \"Cannot process module statements in a script\");\n path.node.sourceType = \"script\";\n\n const meta = normalizeModuleAndLoadMetadata(path, exportName, {\n importInterop,\n initializeReexports: constantReexports,\n getWrapperPayload,\n esNamespaceOnly,\n filename,\n });\n\n if (!allowTopLevelThis) {\n rewriteThis(path);\n }\n\n rewriteLiveReferences(path, meta, wrapReference);\n\n if (strictMode !== false) {\n const hasStrict = path.node.directives.some(directive => {\n return directive.value.value === \"use strict\";\n });\n if (!hasStrict) {\n path.unshiftContainer(\n \"directives\",\n t.directive(t.directiveLiteral(\"use strict\")),\n );\n }\n }\n\n const headers = [];\n if (hasExports(meta) && !strict) {\n headers.push(buildESModuleHeader(meta, enumerableModuleMeta));\n }\n\n const nameList = buildExportNameListDeclaration(path, meta);\n\n if (nameList) {\n meta.exportNameListName = nameList.name;\n headers.push(nameList.statement);\n }\n\n // Create all of the statically known named exports.\n headers.push(\n ...buildExportInitializationStatements(\n path,\n meta,\n wrapReference,\n constantReexports,\n noIncompleteNsImportDetection,\n ),\n );\n\n return { meta, headers };\n}\n\n/**\n * Flag a set of statements as hoisted above all else so that module init\n * statements all run before user code.\n */\nexport function ensureStatementsHoisted(statements: t.Statement[]) {\n // Force all of the header fields to be at the top of the file.\n statements.forEach(header => {\n // @ts-expect-error Fixme: handle _blockHoist property\n header._blockHoist = 3;\n });\n}\n\n/**\n * Given an expression for a standard import object, like \"require('foo')\",\n * wrap it in a call to the interop helpers based on the type.\n */\nexport function wrapInterop(\n programPath: NodePath,\n expr: t.Expression,\n type: InteropType,\n): t.CallExpression {\n if (type === \"none\") {\n return null;\n }\n\n if (type === \"node-namespace\") {\n return t.callExpression(\n programPath.hub.addHelper(\"interopRequireWildcard\"),\n [expr, t.booleanLiteral(true)],\n );\n } else if (type === \"node-default\") {\n return null;\n }\n\n let helper;\n if (type === \"default\") {\n helper = \"interopRequireDefault\";\n } else if (type === \"namespace\") {\n helper = \"interopRequireWildcard\";\n } else {\n throw new Error(`Unknown interop: ${type}`);\n }\n\n return t.callExpression(programPath.hub.addHelper(helper), [expr]);\n}\n\n/**\n * Create the runtime initialization statements for a given requested source.\n * These will initialize all of the runtime import/export logic that\n * can't be handled statically by the statements created by\n * buildExportInitializationStatements().\n */\nexport function buildNamespaceInitStatements(\n metadata: ModuleMetadata,\n sourceMetadata: SourceModuleMetadata,\n constantReexports: boolean | void = false,\n wrapReference: (\n ref: t.Identifier,\n payload: unknown,\n ) => t.Expression | null = Lazy.wrapReference,\n) {\n const statements = [];\n\n const srcNamespaceId = t.identifier(sourceMetadata.name);\n\n for (const localName of sourceMetadata.importsNamespace) {\n if (localName === sourceMetadata.name) continue;\n\n // Create and assign binding to namespace object\n statements.push(\n template.statement`var NAME = SOURCE;`({\n NAME: localName,\n SOURCE: t.cloneNode(srcNamespaceId),\n }),\n );\n }\n\n const srcNamespace =\n wrapReference(srcNamespaceId, sourceMetadata.wrap) ?? srcNamespaceId;\n\n if (constantReexports) {\n statements.push(\n ...buildReexportsFromMeta(metadata, sourceMetadata, true, wrapReference),\n );\n }\n for (const exportName of sourceMetadata.reexportNamespace) {\n // Assign export to namespace object.\n statements.push(\n (!t.isIdentifier(srcNamespace)\n ? template.statement`\n Object.defineProperty(EXPORTS, \"NAME\", {\n enumerable: true,\n get: function() {\n return NAMESPACE;\n }\n });\n `\n : template.statement`EXPORTS.NAME = NAMESPACE;`)({\n EXPORTS: metadata.exportName,\n NAME: exportName,\n NAMESPACE: t.cloneNode(srcNamespace),\n }),\n );\n }\n if (sourceMetadata.reexportAll) {\n const statement = buildNamespaceReexport(\n metadata,\n t.cloneNode(srcNamespace),\n constantReexports,\n );\n statement.loc = sourceMetadata.reexportAll.loc;\n\n // Iterate props creating getter for each prop.\n statements.push(statement);\n }\n return statements;\n}\n\ninterface ReexportParts {\n exports: string;\n exportName: string;\n namespaceImport: t.Expression;\n}\n\nconst ReexportTemplate = {\n constant: ({ exports, exportName, namespaceImport }: ReexportParts) =>\n template.statement.ast`\n ${exports}.${exportName} = ${namespaceImport};\n `,\n constantComputed: ({ exports, exportName, namespaceImport }: ReexportParts) =>\n template.statement.ast`\n ${exports}[\"${exportName}\"] = ${namespaceImport};\n `,\n spec: ({ exports, exportName, namespaceImport }: ReexportParts) =>\n template.statement.ast`\n Object.defineProperty(${exports}, \"${exportName}\", {\n enumerable: true,\n get: function() {\n return ${namespaceImport};\n },\n });\n `,\n};\n\nfunction buildReexportsFromMeta(\n meta: ModuleMetadata,\n metadata: SourceModuleMetadata,\n constantReexports: boolean,\n wrapReference: (ref: t.Expression, payload: unknown) => t.Expression | null,\n): t.Statement[] {\n let namespace: t.Expression = t.identifier(metadata.name);\n namespace = wrapReference(namespace, metadata.wrap) ?? namespace;\n\n const { stringSpecifiers } = meta;\n return Array.from(metadata.reexports, ([exportName, importName]) => {\n let namespaceImport: t.Expression = t.cloneNode(namespace);\n if (importName === \"default\" && metadata.interop === \"node-default\") {\n // Nothing, it's ok as-is\n } else if (stringSpecifiers.has(importName)) {\n namespaceImport = t.memberExpression(\n namespaceImport,\n t.stringLiteral(importName),\n true,\n );\n } else {\n namespaceImport = t.memberExpression(\n namespaceImport,\n t.identifier(importName),\n );\n }\n const astNodes: ReexportParts = {\n exports: meta.exportName,\n exportName,\n namespaceImport,\n };\n if (constantReexports || t.isIdentifier(namespaceImport)) {\n if (stringSpecifiers.has(exportName)) {\n return ReexportTemplate.constantComputed(astNodes);\n } else {\n return ReexportTemplate.constant(astNodes);\n }\n } else {\n return ReexportTemplate.spec(astNodes);\n }\n });\n}\n\n/**\n * Build an \"__esModule\" header statement setting the property on a given object.\n */\nfunction buildESModuleHeader(\n metadata: ModuleMetadata,\n enumerableModuleMeta: boolean | void = false,\n) {\n return (\n enumerableModuleMeta\n ? template.statement`\n EXPORTS.__esModule = true;\n `\n : template.statement`\n Object.defineProperty(EXPORTS, \"__esModule\", {\n value: true,\n });\n `\n )({ EXPORTS: metadata.exportName });\n}\n\n/**\n * Create a re-export initialization loop for a specific imported namespace.\n */\nfunction buildNamespaceReexport(\n metadata: ModuleMetadata,\n namespace: t.Expression,\n constantReexports: boolean | void,\n) {\n return (\n constantReexports\n ? template.statement`\n Object.keys(NAMESPACE).forEach(function(key) {\n if (key === \"default\" || key === \"__esModule\") return;\n VERIFY_NAME_LIST;\n if (key in EXPORTS && EXPORTS[key] === NAMESPACE[key]) return;\n\n EXPORTS[key] = NAMESPACE[key];\n });\n `\n : // Also skip already assigned bindings if they are strictly equal\n // to be somewhat more spec-compliant when a file has multiple\n // namespace re-exports that would cause a binding to be exported\n // multiple times. However, multiple bindings of the same name that\n // export the same primitive value are silently skipped\n // (the spec requires an \"ambiguous bindings\" early error here).\n template.statement`\n Object.keys(NAMESPACE).forEach(function(key) {\n if (key === \"default\" || key === \"__esModule\") return;\n VERIFY_NAME_LIST;\n if (key in EXPORTS && EXPORTS[key] === NAMESPACE[key]) return;\n\n Object.defineProperty(EXPORTS, key, {\n enumerable: true,\n get: function() {\n return NAMESPACE[key];\n },\n });\n });\n `\n )({\n NAMESPACE: namespace,\n EXPORTS: metadata.exportName,\n VERIFY_NAME_LIST: metadata.exportNameListName\n ? template`\n if (Object.prototype.hasOwnProperty.call(EXPORTS_LIST, key)) return;\n `({ EXPORTS_LIST: metadata.exportNameListName })\n : null,\n });\n}\n\n/**\n * Build a statement declaring a variable that contains all of the exported\n * variable names in an object so they can easily be referenced from an\n * export * from statement to check for conflicts.\n */\nfunction buildExportNameListDeclaration(\n programPath: NodePath,\n metadata: ModuleMetadata,\n) {\n const exportedVars = Object.create(null);\n for (const data of metadata.local.values()) {\n for (const name of data.names) {\n exportedVars[name] = true;\n }\n }\n\n let hasReexport = false;\n for (const data of metadata.source.values()) {\n for (const exportName of data.reexports.keys()) {\n exportedVars[exportName] = true;\n }\n for (const exportName of data.reexportNamespace) {\n exportedVars[exportName] = true;\n }\n\n hasReexport = hasReexport || !!data.reexportAll;\n }\n\n if (!hasReexport || Object.keys(exportedVars).length === 0) return null;\n\n const name = programPath.scope.generateUidIdentifier(\"exportNames\");\n\n delete exportedVars.default;\n\n return {\n name: name.name,\n statement: t.variableDeclaration(\"var\", [\n t.variableDeclarator(name, t.valueToNode(exportedVars)),\n ]),\n };\n}\n\n/**\n * Create a set of statements that will initialize all of the statically-known\n * export names with their expected values.\n */\nfunction buildExportInitializationStatements(\n programPath: NodePath,\n metadata: ModuleMetadata,\n wrapReference: (ref: t.Expression, payload: unknown) => t.Expression | null,\n constantReexports: boolean | void = false,\n noIncompleteNsImportDetection: boolean | void = false,\n) {\n const initStatements: [string, t.Statement | null][] = [];\n\n for (const [localName, data] of metadata.local) {\n if (data.kind === \"import\") {\n // No-open since these are explicitly set with the \"reexports\" block.\n } else if (data.kind === \"hoisted\") {\n initStatements.push([\n // data.names is always of length 1 because a hoisted export\n // name must be id of a function declaration\n data.names[0],\n buildInitStatement(metadata, data.names, t.identifier(localName)),\n ]);\n } else if (!noIncompleteNsImportDetection) {\n for (const exportName of data.names) {\n initStatements.push([exportName, null]);\n }\n }\n }\n\n for (const data of metadata.source.values()) {\n if (!constantReexports) {\n const reexportsStatements = buildReexportsFromMeta(\n metadata,\n data,\n false,\n wrapReference,\n );\n const reexports = [...data.reexports.keys()];\n for (let i = 0; i < reexportsStatements.length; i++) {\n initStatements.push([reexports[i], reexportsStatements[i]]);\n }\n }\n if (!noIncompleteNsImportDetection) {\n for (const exportName of data.reexportNamespace) {\n initStatements.push([exportName, null]);\n }\n }\n }\n\n // https://tc39.es/ecma262/#sec-module-namespace-exotic-objects\n // The [Exports] list is ordered as if an Array of those String values\n // had been sorted using %Array.prototype.sort% using undefined as comparefn\n initStatements.sort(([a], [b]) => {\n if (a < b) return -1;\n if (b < a) return 1;\n return 0;\n });\n\n const results = [];\n if (noIncompleteNsImportDetection) {\n for (const [, initStatement] of initStatements) {\n results.push(initStatement);\n }\n } else {\n // We generate init statements (`exports.a = exports.b = ... = void 0`)\n // for every 100 exported names to avoid deeply-nested AST structures.\n const chunkSize = 100;\n for (let i = 0; i < initStatements.length; i += chunkSize) {\n let uninitializedExportNames = [];\n for (let j = 0; j < chunkSize && i + j < initStatements.length; j++) {\n const [exportName, initStatement] = initStatements[i + j];\n if (initStatement !== null) {\n if (uninitializedExportNames.length > 0) {\n results.push(\n buildInitStatement(\n metadata,\n uninitializedExportNames,\n programPath.scope.buildUndefinedNode(),\n ),\n );\n // reset after uninitializedExportNames has been transformed\n // to init statements\n uninitializedExportNames = [];\n }\n results.push(initStatement);\n } else {\n uninitializedExportNames.push(exportName);\n }\n }\n if (uninitializedExportNames.length > 0) {\n results.push(\n buildInitStatement(\n metadata,\n uninitializedExportNames,\n programPath.scope.buildUndefinedNode(),\n ),\n );\n }\n }\n }\n\n return results;\n}\n\ninterface InitParts {\n exports: string;\n name: string;\n value: t.Expression;\n}\n\n/**\n * Given a set of export names, create a set of nested assignments to\n * initialize them all to a given expression.\n */\nconst InitTemplate = {\n computed: ({ exports, name, value }: InitParts) =>\n template.expression.ast`${exports}[\"${name}\"] = ${value}`,\n default: ({ exports, name, value }: InitParts) =>\n template.expression.ast`${exports}.${name} = ${value}`,\n define: ({ exports, name, value }: InitParts) =>\n template.expression.ast`\n Object.defineProperty(${exports}, \"${name}\", {\n enumerable: true,\n value: void 0,\n writable: true\n })[\"${name}\"] = ${value}`,\n};\n\nfunction buildInitStatement(\n metadata: ModuleMetadata,\n exportNames: string[],\n initExpr: t.Expression,\n) {\n const { stringSpecifiers, exportName: exports } = metadata;\n return t.expressionStatement(\n exportNames.reduce((value, name) => {\n const params = {\n exports,\n name,\n value,\n };\n\n if (name === \"__proto__\") {\n return InitTemplate.define(params);\n }\n\n if (stringSpecifiers.has(name)) {\n return InitTemplate.computed(params);\n }\n\n return InitTemplate.default(params);\n }, initExpr),\n );\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/node_modules/@babel/helper-module-transforms/lib/lazy-modules.js b/node_modules/@babel/helper-module-transforms/lib/lazy-modules.js new file mode 100644 index 0000000..acc89ff --- /dev/null +++ b/node_modules/@babel/helper-module-transforms/lib/lazy-modules.js @@ -0,0 +1,31 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.toGetWrapperPayload = toGetWrapperPayload; +exports.wrapReference = wrapReference; +var _core = require("@babel/core"); +var _normalizeAndLoadMetadata = require("./normalize-and-load-metadata.js"); +function toGetWrapperPayload(lazy) { + return (source, metadata) => { + if (lazy === false) return null; + if ((0, _normalizeAndLoadMetadata.isSideEffectImport)(metadata) || metadata.reexportAll) return null; + if (lazy === true) { + return source.includes(".") ? null : "lazy"; + } + if (Array.isArray(lazy)) { + return !lazy.includes(source) ? null : "lazy"; + } + if (typeof lazy === "function") { + return lazy(source) ? "lazy" : null; + } + throw new Error(`.lazy must be a boolean, string array, or function`); + }; +} +function wrapReference(ref, payload) { + if (payload === "lazy") return _core.types.callExpression(ref, []); + return null; +} + +//# sourceMappingURL=lazy-modules.js.map diff --git a/node_modules/@babel/helper-module-transforms/lib/lazy-modules.js.map b/node_modules/@babel/helper-module-transforms/lib/lazy-modules.js.map new file mode 100644 index 0000000..890839b --- /dev/null +++ b/node_modules/@babel/helper-module-transforms/lib/lazy-modules.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_core","require","_normalizeAndLoadMetadata","toGetWrapperPayload","lazy","source","metadata","isSideEffectImport","reexportAll","includes","Array","isArray","Error","wrapReference","ref","payload","t","callExpression"],"sources":["../src/lazy-modules.ts"],"sourcesContent":["// TODO: Move `lazy` implementation logic into the CommonJS plugin, since other\n// modules systems do not support `lazy`.\n\nimport { types as t } from \"@babel/core\";\nimport {\n type SourceModuleMetadata,\n isSideEffectImport,\n} from \"./normalize-and-load-metadata.ts\";\n\nexport type Lazy = boolean | string[] | ((source: string) => boolean);\n\nexport function toGetWrapperPayload(lazy: Lazy) {\n return (source: string, metadata: SourceModuleMetadata): null | \"lazy\" => {\n if (lazy === false) return null;\n if (isSideEffectImport(metadata) || metadata.reexportAll) return null;\n if (lazy === true) {\n // 'true' means that local relative files are eagerly loaded and\n // dependency modules are loaded lazily.\n return source.includes(\".\") ? null : \"lazy\";\n }\n if (Array.isArray(lazy)) {\n return !lazy.includes(source) ? null : \"lazy\";\n }\n if (typeof lazy === \"function\") {\n return lazy(source) ? \"lazy\" : null;\n }\n throw new Error(`.lazy must be a boolean, string array, or function`);\n };\n}\n\nexport function wrapReference(\n ref: t.Identifier,\n payload: unknown,\n): t.Expression | null {\n if (payload === \"lazy\") return t.callExpression(ref, []);\n return null;\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,yBAAA,GAAAD,OAAA;AAOO,SAASE,mBAAmBA,CAACC,IAAU,EAAE;EAC9C,OAAO,CAACC,MAAc,EAAEC,QAA8B,KAAoB;IACxE,IAAIF,IAAI,KAAK,KAAK,EAAE,OAAO,IAAI;IAC/B,IAAI,IAAAG,4CAAkB,EAACD,QAAQ,CAAC,IAAIA,QAAQ,CAACE,WAAW,EAAE,OAAO,IAAI;IACrE,IAAIJ,IAAI,KAAK,IAAI,EAAE;MAGjB,OAAOC,MAAM,CAACI,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,MAAM;IAC7C;IACA,IAAIC,KAAK,CAACC,OAAO,CAACP,IAAI,CAAC,EAAE;MACvB,OAAO,CAACA,IAAI,CAACK,QAAQ,CAACJ,MAAM,CAAC,GAAG,IAAI,GAAG,MAAM;IAC/C;IACA,IAAI,OAAOD,IAAI,KAAK,UAAU,EAAE;MAC9B,OAAOA,IAAI,CAACC,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI;IACrC;IACA,MAAM,IAAIO,KAAK,CAAC,oDAAoD,CAAC;EACvE,CAAC;AACH;AAEO,SAASC,aAAaA,CAC3BC,GAAiB,EACjBC,OAAgB,EACK;EACrB,IAAIA,OAAO,KAAK,MAAM,EAAE,OAAOC,WAAC,CAACC,cAAc,CAACH,GAAG,EAAE,EAAE,CAAC;EACxD,OAAO,IAAI;AACb","ignoreList":[]} \ No newline at end of file diff --git a/node_modules/@babel/helper-module-transforms/lib/normalize-and-load-metadata.js b/node_modules/@babel/helper-module-transforms/lib/normalize-and-load-metadata.js new file mode 100644 index 0000000..6110d85 --- /dev/null +++ b/node_modules/@babel/helper-module-transforms/lib/normalize-and-load-metadata.js @@ -0,0 +1,362 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = normalizeModuleAndLoadMetadata; +exports.hasExports = hasExports; +exports.isSideEffectImport = isSideEffectImport; +exports.validateImportInteropOption = validateImportInteropOption; +var _path = require("path"); +var _helperValidatorIdentifier = require("@babel/helper-validator-identifier"); +function hasExports(metadata) { + return metadata.hasExports; +} +function isSideEffectImport(source) { + return source.imports.size === 0 && source.importsNamespace.size === 0 && source.reexports.size === 0 && source.reexportNamespace.size === 0 && !source.reexportAll; +} +function validateImportInteropOption(importInterop) { + if (typeof importInterop !== "function" && importInterop !== "none" && importInterop !== "babel" && importInterop !== "node") { + throw new Error(`.importInterop must be one of "none", "babel", "node", or a function returning one of those values (received ${importInterop}).`); + } + return importInterop; +} +function resolveImportInterop(importInterop, source, filename) { + if (typeof importInterop === "function") { + return validateImportInteropOption(importInterop(source, filename)); + } + return importInterop; +} +function normalizeModuleAndLoadMetadata(programPath, exportName, { + importInterop, + initializeReexports = false, + getWrapperPayload, + esNamespaceOnly = false, + filename +}) { + if (!exportName) { + exportName = programPath.scope.generateUidIdentifier("exports").name; + } + const stringSpecifiers = new Set(); + nameAnonymousExports(programPath); + const { + local, + sources, + hasExports + } = getModuleMetadata(programPath, { + initializeReexports, + getWrapperPayload + }, stringSpecifiers); + removeImportExportDeclarations(programPath); + for (const [source, metadata] of sources) { + const { + importsNamespace, + imports + } = metadata; + if (importsNamespace.size > 0 && imports.size === 0) { + const [nameOfnamespace] = importsNamespace; + metadata.name = nameOfnamespace; + } + const resolvedInterop = resolveImportInterop(importInterop, source, filename); + if (resolvedInterop === "none") { + metadata.interop = "none"; + } else if (resolvedInterop === "node" && metadata.interop === "namespace") { + metadata.interop = "node-namespace"; + } else if (resolvedInterop === "node" && metadata.interop === "default") { + metadata.interop = "node-default"; + } else if (esNamespaceOnly && metadata.interop === "namespace") { + metadata.interop = "default"; + } + } + return { + exportName, + exportNameListName: null, + hasExports, + local, + source: sources, + stringSpecifiers + }; +} +function getExportSpecifierName(path, stringSpecifiers) { + if (path.isIdentifier()) { + return path.node.name; + } else if (path.isStringLiteral()) { + const stringValue = path.node.value; + if (!(0, _helperValidatorIdentifier.isIdentifierName)(stringValue)) { + stringSpecifiers.add(stringValue); + } + return stringValue; + } else { + throw new Error(`Expected export specifier to be either Identifier or StringLiteral, got ${path.node.type}`); + } +} +function assertExportSpecifier(path) { + if (path.isExportSpecifier()) { + return; + } else if (path.isExportNamespaceSpecifier()) { + throw path.buildCodeFrameError("Export namespace should be first transformed by `@babel/plugin-transform-export-namespace-from`."); + } else { + throw path.buildCodeFrameError("Unexpected export specifier type"); + } +} +function getModuleMetadata(programPath, { + getWrapperPayload, + initializeReexports +}, stringSpecifiers) { + const localData = getLocalExportMetadata(programPath, initializeReexports, stringSpecifiers); + const importNodes = new Map(); + const sourceData = new Map(); + const getData = (sourceNode, node) => { + const source = sourceNode.value; + let data = sourceData.get(source); + if (!data) { + data = { + name: programPath.scope.generateUidIdentifier((0, _path.basename)(source, (0, _path.extname)(source))).name, + interop: "none", + loc: null, + imports: new Map(), + importsNamespace: new Set(), + reexports: new Map(), + reexportNamespace: new Set(), + reexportAll: null, + wrap: null, + get lazy() { + return this.wrap === "lazy"; + }, + referenced: false + }; + sourceData.set(source, data); + importNodes.set(source, [node]); + } else { + importNodes.get(source).push(node); + } + return data; + }; + let hasExports = false; + programPath.get("body").forEach(child => { + if (child.isImportDeclaration()) { + const data = getData(child.node.source, child.node); + if (!data.loc) data.loc = child.node.loc; + child.get("specifiers").forEach(spec => { + if (spec.isImportDefaultSpecifier()) { + const localName = spec.get("local").node.name; + data.imports.set(localName, "default"); + const reexport = localData.get(localName); + if (reexport) { + localData.delete(localName); + reexport.names.forEach(name => { + data.reexports.set(name, "default"); + }); + data.referenced = true; + } + } else if (spec.isImportNamespaceSpecifier()) { + const localName = spec.get("local").node.name; + data.importsNamespace.add(localName); + const reexport = localData.get(localName); + if (reexport) { + localData.delete(localName); + reexport.names.forEach(name => { + data.reexportNamespace.add(name); + }); + data.referenced = true; + } + } else if (spec.isImportSpecifier()) { + const importName = getExportSpecifierName(spec.get("imported"), stringSpecifiers); + const localName = spec.get("local").node.name; + data.imports.set(localName, importName); + const reexport = localData.get(localName); + if (reexport) { + localData.delete(localName); + reexport.names.forEach(name => { + data.reexports.set(name, importName); + }); + data.referenced = true; + } + } + }); + } else if (child.isExportAllDeclaration()) { + hasExports = true; + const data = getData(child.node.source, child.node); + if (!data.loc) data.loc = child.node.loc; + data.reexportAll = { + loc: child.node.loc + }; + data.referenced = true; + } else if (child.isExportNamedDeclaration() && child.node.source) { + hasExports = true; + const data = getData(child.node.source, child.node); + if (!data.loc) data.loc = child.node.loc; + child.get("specifiers").forEach(spec => { + assertExportSpecifier(spec); + const importName = getExportSpecifierName(spec.get("local"), stringSpecifiers); + const exportName = getExportSpecifierName(spec.get("exported"), stringSpecifiers); + data.reexports.set(exportName, importName); + data.referenced = true; + if (exportName === "__esModule") { + throw spec.get("exported").buildCodeFrameError('Illegal export "__esModule".'); + } + }); + } else if (child.isExportNamedDeclaration() || child.isExportDefaultDeclaration()) { + hasExports = true; + } + }); + for (const metadata of sourceData.values()) { + 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; + } + for (const importName of metadata.reexports.values()) { + if (importName === "default") needsDefault = true;else needsNamed = true; + } + if (needsDefault && needsNamed) { + metadata.interop = "namespace"; + } else if (needsDefault) { + metadata.interop = "default"; + } + } + if (getWrapperPayload) { + for (const [source, metadata] of sourceData) { + metadata.wrap = getWrapperPayload(source, metadata, importNodes.get(source)); + } + } + return { + hasExports, + local: localData, + sources: sourceData + }; +} +function getLocalExportMetadata(programPath, initializeReexports, stringSpecifiers) { + const bindingKindLookup = new Map(); + const programScope = programPath.scope; + const programChildren = programPath.get("body"); + programChildren.forEach(child => { + let kind; + if (child.isImportDeclaration()) { + kind = "import"; + } else { + if (child.isExportDefaultDeclaration()) { + child = child.get("declaration"); + } + if (child.isExportNamedDeclaration()) { + if (child.node.declaration) { + child = child.get("declaration"); + } else if (initializeReexports && child.node.source && child.get("source").isStringLiteral()) { + child.get("specifiers").forEach(spec => { + assertExportSpecifier(spec); + bindingKindLookup.set(spec.get("local").node.name, "block"); + }); + return; + } + } + if (child.isFunctionDeclaration()) { + kind = "hoisted"; + } else if (child.isClassDeclaration()) { + kind = "block"; + } else if (child.isVariableDeclaration({ + kind: "var" + })) { + kind = "var"; + } else if (child.isVariableDeclaration()) { + kind = "block"; + } else { + return; + } + } + Object.keys(child.getOuterBindingIdentifiers()).forEach(name => { + bindingKindLookup.set(name, kind); + }); + }); + const localMetadata = new Map(); + const getLocalMetadata = idPath => { + const localName = idPath.node.name; + let metadata = localMetadata.get(localName); + if (!metadata) { + var _bindingKindLookup$ge, _programScope$getBind; + const kind = (_bindingKindLookup$ge = bindingKindLookup.get(localName)) != null ? _bindingKindLookup$ge : (_programScope$getBind = programScope.getBinding(localName)) == null ? void 0 : _programScope$getBind.kind; + if (kind === undefined) { + throw idPath.buildCodeFrameError(`Exporting local "${localName}", which is not declared.`); + } + metadata = { + names: [], + kind + }; + localMetadata.set(localName, metadata); + } + return metadata; + }; + programChildren.forEach(child => { + if (child.isExportNamedDeclaration() && (initializeReexports || !child.node.source)) { + if (child.node.declaration) { + const declaration = child.get("declaration"); + const ids = declaration.getOuterBindingIdentifierPaths(); + Object.keys(ids).forEach(name => { + if (name === "__esModule") { + throw declaration.buildCodeFrameError('Illegal export "__esModule".'); + } + getLocalMetadata(ids[name]).names.push(name); + }); + } else { + child.get("specifiers").forEach(spec => { + const local = spec.get("local"); + const exported = spec.get("exported"); + const localMetadata = getLocalMetadata(local); + const exportName = getExportSpecifierName(exported, stringSpecifiers); + if (exportName === "__esModule") { + throw exported.buildCodeFrameError('Illegal export "__esModule".'); + } + localMetadata.names.push(exportName); + }); + } + } else if (child.isExportDefaultDeclaration()) { + const declaration = child.get("declaration"); + if (declaration.isFunctionDeclaration() || declaration.isClassDeclaration()) { + getLocalMetadata(declaration.get("id")).names.push("default"); + } else { + throw declaration.buildCodeFrameError("Unexpected default expression export."); + } + } + }); + return localMetadata; +} +function nameAnonymousExports(programPath) { + programPath.get("body").forEach(child => { + var _child$splitExportDec; + if (!child.isExportDefaultDeclaration()) return; + (_child$splitExportDec = child.splitExportDeclaration) != null ? _child$splitExportDec : child.splitExportDeclaration = require("@babel/traverse").NodePath.prototype.splitExportDeclaration; + child.splitExportDeclaration(); + }); +} +function removeImportExportDeclarations(programPath) { + programPath.get("body").forEach(child => { + if (child.isImportDeclaration()) { + child.remove(); + } else if (child.isExportNamedDeclaration()) { + if (child.node.declaration) { + child.node.declaration._blockHoist = child.node._blockHoist; + child.replaceWith(child.node.declaration); + } else { + child.remove(); + } + } else if (child.isExportDefaultDeclaration()) { + const declaration = child.get("declaration"); + if (declaration.isFunctionDeclaration() || declaration.isClassDeclaration()) { + declaration._blockHoist = child.node._blockHoist; + child.replaceWith(declaration); + } else { + throw declaration.buildCodeFrameError("Unexpected default expression export."); + } + } else if (child.isExportAllDeclaration()) { + child.remove(); + } + }); +} + +//# sourceMappingURL=normalize-and-load-metadata.js.map diff --git a/node_modules/@babel/helper-module-transforms/lib/normalize-and-load-metadata.js.map b/node_modules/@babel/helper-module-transforms/lib/normalize-and-load-metadata.js.map new file mode 100644 index 0000000..d48777a --- /dev/null +++ b/node_modules/@babel/helper-module-transforms/lib/normalize-and-load-metadata.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_path","require","_helperValidatorIdentifier","hasExports","metadata","isSideEffectImport","source","imports","size","importsNamespace","reexports","reexportNamespace","reexportAll","validateImportInteropOption","importInterop","Error","resolveImportInterop","filename","normalizeModuleAndLoadMetadata","programPath","exportName","initializeReexports","getWrapperPayload","esNamespaceOnly","scope","generateUidIdentifier","name","stringSpecifiers","Set","nameAnonymousExports","local","sources","getModuleMetadata","removeImportExportDeclarations","nameOfnamespace","resolvedInterop","interop","exportNameListName","getExportSpecifierName","path","isIdentifier","node","isStringLiteral","stringValue","value","isIdentifierName","add","type","assertExportSpecifier","isExportSpecifier","isExportNamespaceSpecifier","buildCodeFrameError","localData","getLocalExportMetadata","importNodes","Map","sourceData","getData","sourceNode","data","get","basename","extname","loc","wrap","lazy","referenced","set","push","forEach","child","isImportDeclaration","spec","isImportDefaultSpecifier","localName","reexport","delete","names","isImportNamespaceSpecifier","isImportSpecifier","importName","isExportAllDeclaration","isExportNamedDeclaration","isExportDefaultDeclaration","values","needsDefault","needsNamed","bindingKindLookup","programScope","programChildren","kind","declaration","isFunctionDeclaration","isClassDeclaration","isVariableDeclaration","Object","keys","getOuterBindingIdentifiers","localMetadata","getLocalMetadata","idPath","_bindingKindLookup$ge","_programScope$getBind","getBinding","undefined","ids","getOuterBindingIdentifierPaths","exported","_child$splitExportDec","splitExportDeclaration","NodePath","prototype","remove","_blockHoist","replaceWith"],"sources":["../src/normalize-and-load-metadata.ts"],"sourcesContent":["import { basename, extname } from \"node:path\";\nimport type { types as t, NodePath } from \"@babel/core\";\n\nimport { isIdentifierName } from \"@babel/helper-validator-identifier\";\n\nexport interface ModuleMetadata {\n exportName: string;\n // The name of the variable that will reference an object containing export names.\n exportNameListName: null | string;\n hasExports: boolean;\n // Lookup from local binding to export information.\n local: Map;\n // Lookup of source file to source file metadata.\n source: Map;\n // List of names that should only be printed as string literals.\n // i.e. `import { \"any unicode\" as foo } from \"some-module\"`\n // `stringSpecifiers` is Set(1) [\"any unicode\"]\n // In most cases `stringSpecifiers` is an empty Set\n stringSpecifiers: Set;\n}\n\nexport type InteropType =\n | \"default\" // Babel interop for default-only imports\n | \"namespace\" // Babel interop for namespace or default+named imports\n | \"node-default\" // Node.js interop for default-only imports\n | \"node-namespace\" // Node.js interop for namespace or default+named imports\n | \"none\"; // No interop, or named-only imports\n\nexport type ImportInterop =\n | \"none\"\n | \"babel\"\n | \"node\"\n | ((source: string, filename?: string) => \"none\" | \"babel\" | \"node\");\n\nexport interface SourceModuleMetadata {\n // A unique variable name to use for this namespace object. Centralized for simplicity.\n name: string;\n loc: t.SourceLocation | undefined | null;\n interop: InteropType;\n // Local binding to reference from this source namespace. Key: Local name, value: Import name\n imports: Map;\n // Local names that reference namespace object.\n importsNamespace: Set;\n // Reexports to create for namespace. Key: Export name, value: Import name\n reexports: Map;\n // List of names to re-export namespace as.\n reexportNamespace: Set;\n // Tracks if the source should be re-exported.\n reexportAll: null | {\n loc: t.SourceLocation | undefined | null;\n };\n wrap?: unknown;\n referenced: boolean;\n}\n\nexport interface LocalExportMetadata {\n names: string[]; // names of exports,\n kind: \"import\" | \"hoisted\" | \"block\" | \"var\";\n}\n\n/**\n * Check if the module has any exports that need handling.\n */\nexport function hasExports(metadata: ModuleMetadata) {\n return metadata.hasExports;\n}\n\n/**\n * Check if a given source is an anonymous import, e.g. \"import 'foo';\"\n */\nexport function isSideEffectImport(source: SourceModuleMetadata) {\n return (\n source.imports.size === 0 &&\n source.importsNamespace.size === 0 &&\n source.reexports.size === 0 &&\n source.reexportNamespace.size === 0 &&\n !source.reexportAll\n );\n}\n\nexport function validateImportInteropOption(\n importInterop: any,\n): importInterop is ImportInterop {\n if (\n typeof importInterop !== \"function\" &&\n importInterop !== \"none\" &&\n importInterop !== \"babel\" &&\n importInterop !== \"node\"\n ) {\n throw new Error(\n `.importInterop must be one of \"none\", \"babel\", \"node\", or a function returning one of those values (received ${importInterop}).`,\n );\n }\n return importInterop;\n}\n\nfunction resolveImportInterop(\n importInterop: ImportInterop,\n source: string,\n filename: string | undefined,\n) {\n if (typeof importInterop === \"function\") {\n return validateImportInteropOption(importInterop(source, filename));\n }\n return importInterop;\n}\n\n/**\n * Remove all imports and exports from the file, and return all metadata\n * needed to reconstruct the module's behavior.\n */\nexport default function normalizeModuleAndLoadMetadata(\n programPath: NodePath,\n exportName: string,\n {\n importInterop,\n initializeReexports = false,\n getWrapperPayload,\n esNamespaceOnly = false,\n filename,\n }: {\n importInterop: ImportInterop;\n initializeReexports: boolean | void;\n getWrapperPayload?: (\n source: string,\n metadata: SourceModuleMetadata,\n importNodes: t.Node[],\n ) => unknown;\n esNamespaceOnly: boolean;\n filename: string;\n },\n): ModuleMetadata {\n if (!exportName) {\n exportName = programPath.scope.generateUidIdentifier(\"exports\").name;\n }\n const stringSpecifiers = new Set();\n\n nameAnonymousExports(programPath);\n\n const { local, sources, hasExports } = getModuleMetadata(\n programPath,\n { initializeReexports, getWrapperPayload },\n stringSpecifiers,\n );\n\n removeImportExportDeclarations(programPath);\n\n // Reuse the imported namespace name if there is one.\n for (const [source, metadata] of sources) {\n const { importsNamespace, imports } = metadata;\n // If there is at least one namespace import and other imports, it may collipse with local ident, can be seen in issue 15879.\n if (importsNamespace.size > 0 && imports.size === 0) {\n const [nameOfnamespace] = importsNamespace;\n metadata.name = nameOfnamespace;\n }\n\n const resolvedInterop = resolveImportInterop(\n importInterop,\n source,\n filename,\n );\n\n if (resolvedInterop === \"none\") {\n metadata.interop = \"none\";\n } else if (resolvedInterop === \"node\" && metadata.interop === \"namespace\") {\n metadata.interop = \"node-namespace\";\n } else if (resolvedInterop === \"node\" && metadata.interop === \"default\") {\n metadata.interop = \"node-default\";\n } else if (esNamespaceOnly && metadata.interop === \"namespace\") {\n // Both the default and namespace interops pass through __esModule\n // objects, but the namespace interop is used to enable Babel's\n // destructuring-like interop behavior for normal CommonJS.\n // Since some tooling has started to remove that behavior, we expose\n // it as the `esNamespace` option.\n metadata.interop = \"default\";\n }\n }\n\n return {\n exportName,\n exportNameListName: null,\n hasExports,\n local,\n source: sources,\n stringSpecifiers,\n };\n}\n\nfunction getExportSpecifierName(\n path: NodePath,\n stringSpecifiers: Set,\n): string {\n if (path.isIdentifier()) {\n return path.node.name;\n } else if (path.isStringLiteral()) {\n const stringValue = path.node.value;\n // add specifier value to `stringSpecifiers` only when it can not be converted to an identifier name\n // i.e In `import { \"foo\" as bar }`\n // we do not consider `\"foo\"` to be a `stringSpecifier` because we can treat it as\n // `import { foo as bar }`\n // This helps minimize the size of `stringSpecifiers` and reduce overhead of checking valid identifier names\n // when building transpiled code from metadata\n if (!isIdentifierName(stringValue)) {\n stringSpecifiers.add(stringValue);\n }\n return stringValue;\n } else {\n throw new Error(\n `Expected export specifier to be either Identifier or StringLiteral, got ${path.node.type}`,\n );\n }\n}\n\nfunction assertExportSpecifier(\n path: NodePath,\n): asserts path is NodePath {\n if (path.isExportSpecifier()) {\n return;\n } else if (path.isExportNamespaceSpecifier()) {\n throw path.buildCodeFrameError(\n \"Export namespace should be first transformed by `@babel/plugin-transform-export-namespace-from`.\",\n );\n } else {\n throw path.buildCodeFrameError(\"Unexpected export specifier type\");\n }\n}\n\n/**\n * Get metadata about the imports and exports present in this module.\n */\nfunction getModuleMetadata(\n programPath: NodePath,\n {\n getWrapperPayload,\n initializeReexports,\n }: {\n getWrapperPayload?: (\n source: string,\n metadata: SourceModuleMetadata,\n importNodes: t.Node[],\n ) => unknown;\n initializeReexports: boolean | void;\n },\n stringSpecifiers: Set,\n) {\n const localData = getLocalExportMetadata(\n programPath,\n initializeReexports,\n stringSpecifiers,\n );\n\n const importNodes = new Map();\n const sourceData = new Map();\n const getData = (sourceNode: t.StringLiteral, node: t.Node) => {\n const source = sourceNode.value;\n\n let data = sourceData.get(source);\n if (!data) {\n data = {\n name: programPath.scope.generateUidIdentifier(\n basename(source, extname(source)),\n ).name,\n\n interop: \"none\",\n\n loc: null,\n\n // Data about the requested sources and names.\n imports: new Map(),\n importsNamespace: new Set(),\n\n // Metadata about data that is passed directly from source to export.\n reexports: new Map(),\n reexportNamespace: new Set(),\n reexportAll: null,\n\n wrap: null,\n\n // @ts-expect-error lazy is not listed in the type.\n // This is needed for compatibility with older version of the commonjs\n // plugins.\n // TODO(Babel 8): Remove this\n get lazy() {\n return this.wrap === \"lazy\";\n },\n\n referenced: false,\n };\n sourceData.set(source, data);\n importNodes.set(source, [node]);\n } else {\n importNodes.get(source).push(node);\n }\n return data;\n };\n let hasExports = false;\n programPath.get(\"body\").forEach(child => {\n if (child.isImportDeclaration()) {\n const data = getData(child.node.source, child.node);\n if (!data.loc) data.loc = child.node.loc;\n\n child.get(\"specifiers\").forEach(spec => {\n if (spec.isImportDefaultSpecifier()) {\n const localName = spec.get(\"local\").node.name;\n\n data.imports.set(localName, \"default\");\n\n const reexport = localData.get(localName);\n if (reexport) {\n localData.delete(localName);\n\n reexport.names.forEach(name => {\n data.reexports.set(name, \"default\");\n });\n data.referenced = true;\n }\n } else if (spec.isImportNamespaceSpecifier()) {\n const localName = spec.get(\"local\").node.name;\n\n data.importsNamespace.add(localName);\n const reexport = localData.get(localName);\n if (reexport) {\n localData.delete(localName);\n\n reexport.names.forEach(name => {\n data.reexportNamespace.add(name);\n });\n data.referenced = true;\n }\n } else if (spec.isImportSpecifier()) {\n const importName = getExportSpecifierName(\n spec.get(\"imported\"),\n stringSpecifiers,\n );\n const localName = spec.get(\"local\").node.name;\n\n data.imports.set(localName, importName);\n\n const reexport = localData.get(localName);\n if (reexport) {\n localData.delete(localName);\n\n reexport.names.forEach(name => {\n data.reexports.set(name, importName);\n });\n data.referenced = true;\n }\n }\n });\n } else if (child.isExportAllDeclaration()) {\n hasExports = true;\n const data = getData(child.node.source, child.node);\n if (!data.loc) data.loc = child.node.loc;\n\n data.reexportAll = {\n loc: child.node.loc,\n };\n data.referenced = true;\n } else if (child.isExportNamedDeclaration() && child.node.source) {\n hasExports = true;\n const data = getData(child.node.source, child.node);\n if (!data.loc) data.loc = child.node.loc;\n\n child.get(\"specifiers\").forEach(spec => {\n assertExportSpecifier(spec);\n const importName = getExportSpecifierName(\n spec.get(\"local\"),\n stringSpecifiers,\n );\n const exportName = getExportSpecifierName(\n spec.get(\"exported\"),\n stringSpecifiers,\n );\n\n data.reexports.set(exportName, importName);\n data.referenced = true;\n\n if (exportName === \"__esModule\") {\n throw spec\n .get(\"exported\")\n .buildCodeFrameError('Illegal export \"__esModule\".');\n }\n });\n } else if (\n child.isExportNamedDeclaration() ||\n child.isExportDefaultDeclaration()\n ) {\n hasExports = true;\n }\n });\n\n for (const metadata of sourceData.values()) {\n let needsDefault = false;\n let needsNamed = false;\n\n if (metadata.importsNamespace.size > 0) {\n needsDefault = true;\n needsNamed = true;\n }\n\n if (metadata.reexportAll) {\n needsNamed = true;\n }\n\n for (const importName of metadata.imports.values()) {\n if (importName === \"default\") needsDefault = true;\n else needsNamed = true;\n }\n for (const importName of metadata.reexports.values()) {\n if (importName === \"default\") needsDefault = true;\n else needsNamed = true;\n }\n\n if (needsDefault && needsNamed) {\n // TODO(logan): Using the namespace interop here is unfortunate. Revisit.\n metadata.interop = \"namespace\";\n } else if (needsDefault) {\n metadata.interop = \"default\";\n }\n }\n\n if (getWrapperPayload) {\n for (const [source, metadata] of sourceData) {\n metadata.wrap = getWrapperPayload(\n source,\n metadata,\n importNodes.get(source),\n );\n }\n }\n\n return {\n hasExports,\n local: localData,\n sources: sourceData,\n };\n}\n\ntype ModuleBindingKind = \"import\" | \"hoisted\" | \"block\" | \"var\";\n/**\n * Get metadata about local variables that are exported.\n */\nfunction getLocalExportMetadata(\n programPath: NodePath,\n initializeReexports: boolean | void,\n stringSpecifiers: Set,\n): Map {\n const bindingKindLookup = new Map();\n\n const programScope = programPath.scope;\n const programChildren = programPath.get(\"body\");\n\n programChildren.forEach((child: NodePath) => {\n let kind: ModuleBindingKind;\n if (child.isImportDeclaration()) {\n kind = \"import\";\n } else {\n if (child.isExportDefaultDeclaration()) {\n child = child.get(\"declaration\");\n }\n if (child.isExportNamedDeclaration()) {\n if (child.node.declaration) {\n child = child.get(\"declaration\");\n } else if (\n initializeReexports &&\n child.node.source &&\n child.get(\"source\").isStringLiteral()\n ) {\n child.get(\"specifiers\").forEach(spec => {\n assertExportSpecifier(spec);\n bindingKindLookup.set(spec.get(\"local\").node.name, \"block\");\n });\n return;\n }\n }\n\n if (child.isFunctionDeclaration()) {\n kind = \"hoisted\";\n } else if (child.isClassDeclaration()) {\n kind = \"block\";\n } else if (child.isVariableDeclaration({ kind: \"var\" })) {\n kind = \"var\";\n } else if (child.isVariableDeclaration()) {\n kind = \"block\";\n } else {\n return;\n }\n }\n\n Object.keys(child.getOuterBindingIdentifiers()).forEach(name => {\n bindingKindLookup.set(name, kind);\n });\n });\n\n const localMetadata = new Map();\n const getLocalMetadata = (idPath: NodePath) => {\n const localName = idPath.node.name;\n let metadata = localMetadata.get(localName);\n\n if (!metadata) {\n // If localName is not found in the bindingKindLookup generated\n // from top level declarations, it could be a reference to a var\n // declaration defined within block statement or switch case\n const kind: ModuleBindingKind =\n bindingKindLookup.get(localName) ??\n (programScope.getBinding(localName)?.kind as \"var\" | undefined);\n\n if (kind === undefined) {\n throw idPath.buildCodeFrameError(\n `Exporting local \"${localName}\", which is not declared.`,\n );\n }\n\n metadata = {\n names: [],\n kind,\n };\n localMetadata.set(localName, metadata);\n }\n return metadata;\n };\n\n programChildren.forEach(child => {\n if (\n child.isExportNamedDeclaration() &&\n (initializeReexports || !child.node.source)\n ) {\n if (child.node.declaration) {\n const declaration = child.get(\"declaration\");\n const ids = declaration.getOuterBindingIdentifierPaths();\n Object.keys(ids).forEach(name => {\n if (name === \"__esModule\") {\n throw declaration.buildCodeFrameError(\n 'Illegal export \"__esModule\".',\n );\n }\n getLocalMetadata(ids[name]).names.push(name);\n });\n } else {\n child.get(\"specifiers\").forEach(spec => {\n const local = spec.get(\"local\");\n const exported = spec.get(\"exported\");\n const localMetadata = getLocalMetadata(local);\n const exportName = getExportSpecifierName(exported, stringSpecifiers);\n\n if (exportName === \"__esModule\") {\n throw exported.buildCodeFrameError('Illegal export \"__esModule\".');\n }\n localMetadata.names.push(exportName);\n });\n }\n } else if (child.isExportDefaultDeclaration()) {\n const declaration = child.get(\"declaration\");\n if (\n declaration.isFunctionDeclaration() ||\n declaration.isClassDeclaration()\n ) {\n getLocalMetadata(declaration.get(\"id\")).names.push(\"default\");\n } else {\n // These should have been removed by the nameAnonymousExports() call.\n throw declaration.buildCodeFrameError(\n \"Unexpected default expression export.\",\n );\n }\n }\n });\n return localMetadata;\n}\n\n/**\n * Ensure that all exported values have local binding names.\n */\nfunction nameAnonymousExports(programPath: NodePath) {\n // Name anonymous exported locals.\n programPath.get(\"body\").forEach(child => {\n if (!child.isExportDefaultDeclaration()) return;\n if (!process.env.BABEL_8_BREAKING && !USE_ESM && !IS_STANDALONE) {\n // polyfill when being run by an older Babel version\n child.splitExportDeclaration ??=\n // eslint-disable-next-line no-restricted-globals\n require(\"@babel/traverse\").NodePath.prototype.splitExportDeclaration;\n }\n child.splitExportDeclaration();\n });\n}\n\nfunction removeImportExportDeclarations(programPath: NodePath) {\n programPath.get(\"body\").forEach(child => {\n if (child.isImportDeclaration()) {\n child.remove();\n } else if (child.isExportNamedDeclaration()) {\n if (child.node.declaration) {\n // @ts-expect-error todo(flow->ts): avoid mutations\n child.node.declaration._blockHoist = child.node._blockHoist;\n child.replaceWith(child.node.declaration);\n } else {\n child.remove();\n }\n } else if (child.isExportDefaultDeclaration()) {\n // export default foo;\n const declaration = child.get(\"declaration\");\n if (\n declaration.isFunctionDeclaration() ||\n declaration.isClassDeclaration()\n ) {\n // @ts-expect-error todo(flow->ts): avoid mutations\n declaration._blockHoist = child.node._blockHoist;\n child.replaceWith(declaration);\n } else {\n // These should have been removed by the nameAnonymousExports() call.\n throw declaration.buildCodeFrameError(\n \"Unexpected default expression export.\",\n );\n }\n } else if (child.isExportAllDeclaration()) {\n child.remove();\n }\n });\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/node_modules/@babel/helper-module-transforms/lib/rewrite-live-references.js b/node_modules/@babel/helper-module-transforms/lib/rewrite-live-references.js new file mode 100644 index 0000000..f19f0f0 --- /dev/null +++ b/node_modules/@babel/helper-module-transforms/lib/rewrite-live-references.js @@ -0,0 +1,360 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = rewriteLiveReferences; +var _core = require("@babel/core"); +function isInType(path) { + do { + switch (path.parent.type) { + case "TSTypeAnnotation": + case "TSTypeAliasDeclaration": + case "TSTypeReference": + case "TypeAnnotation": + case "TypeAlias": + return true; + case "ExportSpecifier": + return path.parentPath.parent.exportKind === "type"; + default: + if (path.parentPath.isStatement() || path.parentPath.isExpression()) { + return false; + } + } + } while (path = path.parentPath); +} +function rewriteLiveReferences(programPath, metadata, wrapReference) { + const imported = new Map(); + const exported = new Map(); + const requeueInParent = path => { + programPath.requeue(path); + }; + for (const [source, data] of metadata.source) { + for (const [localName, importName] of data.imports) { + imported.set(localName, [source, importName, null]); + } + for (const localName of data.importsNamespace) { + imported.set(localName, [source, null, localName]); + } + } + for (const [local, data] of metadata.local) { + let exportMeta = exported.get(local); + if (!exportMeta) { + exportMeta = []; + exported.set(local, exportMeta); + } + exportMeta.push(...data.names); + } + const rewriteBindingInitVisitorState = { + metadata, + requeueInParent, + scope: programPath.scope, + exported + }; + programPath.traverse(rewriteBindingInitVisitor, rewriteBindingInitVisitorState); + const rewriteReferencesVisitorState = { + seen: new WeakSet(), + metadata, + requeueInParent, + scope: programPath.scope, + imported, + exported, + buildImportReference([source, importName, localName], identNode) { + const meta = metadata.source.get(source); + meta.referenced = true; + if (localName) { + if (meta.wrap) { + var _wrapReference; + identNode = (_wrapReference = wrapReference(identNode, meta.wrap)) != null ? _wrapReference : identNode; + } + return identNode; + } + let namespace = _core.types.identifier(meta.name); + if (meta.wrap) { + var _wrapReference2; + namespace = (_wrapReference2 = wrapReference(namespace, meta.wrap)) != null ? _wrapReference2 : namespace; + } + if (importName === "default" && meta.interop === "node-default") { + return namespace; + } + const computed = metadata.stringSpecifiers.has(importName); + return _core.types.memberExpression(namespace, computed ? _core.types.stringLiteral(importName) : _core.types.identifier(importName), computed); + } + }; + programPath.traverse(rewriteReferencesVisitor, rewriteReferencesVisitorState); +} +const rewriteBindingInitVisitor = { + Scope(path) { + path.skip(); + }, + ClassDeclaration(path) { + const { + requeueInParent, + exported, + metadata + } = this; + const { + id + } = path.node; + if (!id) throw new Error("Expected class to have a name"); + const localName = id.name; + const exportNames = exported.get(localName) || []; + if (exportNames.length > 0) { + const statement = _core.types.expressionStatement(buildBindingExportAssignmentExpression(metadata, exportNames, _core.types.identifier(localName), path.scope)); + statement._blockHoist = path.node._blockHoist; + requeueInParent(path.insertAfter(statement)[0]); + } + }, + VariableDeclaration(path) { + const { + requeueInParent, + exported, + metadata + } = this; + const isVar = path.node.kind === "var"; + for (const decl of path.get("declarations")) { + const { + id + } = decl.node; + let { + init + } = decl.node; + if (_core.types.isIdentifier(id) && exported.has(id.name) && !_core.types.isArrowFunctionExpression(init) && (!_core.types.isFunctionExpression(init) || init.id) && (!_core.types.isClassExpression(init) || init.id)) { + if (!init) { + if (isVar) { + continue; + } else { + init = path.scope.buildUndefinedNode(); + } + } + decl.node.init = buildBindingExportAssignmentExpression(metadata, exported.get(id.name), init, path.scope); + requeueInParent(decl.get("init")); + } else { + for (const localName of Object.keys(decl.getOuterBindingIdentifiers())) { + if (exported.has(localName)) { + const statement = _core.types.expressionStatement(buildBindingExportAssignmentExpression(metadata, exported.get(localName), _core.types.identifier(localName), path.scope)); + statement._blockHoist = path.node._blockHoist; + requeueInParent(path.insertAfter(statement)[0]); + } + } + } + } + } +}; +const buildBindingExportAssignmentExpression = (metadata, exportNames, localExpr, scope) => { + const exportsObjectName = metadata.exportName; + for (let currentScope = scope; currentScope != null; currentScope = currentScope.parent) { + if (currentScope.hasOwnBinding(exportsObjectName)) { + currentScope.rename(exportsObjectName); + } + } + return (exportNames || []).reduce((expr, exportName) => { + const { + stringSpecifiers + } = metadata; + const computed = stringSpecifiers.has(exportName); + return _core.types.assignmentExpression("=", _core.types.memberExpression(_core.types.identifier(exportsObjectName), computed ? _core.types.stringLiteral(exportName) : _core.types.identifier(exportName), computed), expr); + }, localExpr); +}; +const buildImportThrow = localName => { + return _core.template.expression.ast` + (function() { + throw new Error('"' + '${localName}' + '" is read-only.'); + })() + `; +}; +const rewriteReferencesVisitor = { + ReferencedIdentifier(path) { + const { + seen, + buildImportReference, + scope, + imported, + requeueInParent + } = this; + if (seen.has(path.node)) return; + seen.add(path.node); + const localName = path.node.name; + const importData = imported.get(localName); + if (importData) { + if (isInType(path)) { + throw path.buildCodeFrameError(`Cannot transform the imported binding "${localName}" since it's also used in a type annotation. ` + `Please strip type annotations using @babel/preset-typescript or @babel/preset-flow.`); + } + const localBinding = path.scope.getBinding(localName); + const rootBinding = scope.getBinding(localName); + if (rootBinding !== localBinding) return; + const ref = buildImportReference(importData, path.node); + ref.loc = path.node.loc; + if ((path.parentPath.isCallExpression({ + callee: path.node + }) || path.parentPath.isOptionalCallExpression({ + callee: path.node + }) || path.parentPath.isTaggedTemplateExpression({ + tag: path.node + })) && _core.types.isMemberExpression(ref)) { + path.replaceWith(_core.types.sequenceExpression([_core.types.numericLiteral(0), ref])); + } else if (path.isJSXIdentifier() && _core.types.isMemberExpression(ref)) { + const { + object, + property + } = ref; + path.replaceWith(_core.types.jsxMemberExpression(_core.types.jsxIdentifier(object.name), _core.types.jsxIdentifier(property.name))); + } else { + path.replaceWith(ref); + } + requeueInParent(path); + path.skip(); + } + }, + UpdateExpression(path) { + const { + scope, + seen, + imported, + exported, + requeueInParent, + buildImportReference + } = this; + if (seen.has(path.node)) return; + seen.add(path.node); + const arg = path.get("argument"); + if (arg.isMemberExpression()) return; + const update = path.node; + if (arg.isIdentifier()) { + const localName = arg.node.name; + if (scope.getBinding(localName) !== path.scope.getBinding(localName)) { + return; + } + const exportedNames = exported.get(localName); + const importData = imported.get(localName); + if ((exportedNames == null ? void 0 : exportedNames.length) > 0 || importData) { + if (importData) { + path.replaceWith(_core.types.assignmentExpression(update.operator[0] + "=", buildImportReference(importData, arg.node), buildImportThrow(localName))); + } else if (update.prefix) { + path.replaceWith(buildBindingExportAssignmentExpression(this.metadata, exportedNames, _core.types.cloneNode(update), path.scope)); + } else { + const ref = scope.generateDeclaredUidIdentifier(localName); + path.replaceWith(_core.types.sequenceExpression([_core.types.assignmentExpression("=", _core.types.cloneNode(ref), _core.types.cloneNode(update)), buildBindingExportAssignmentExpression(this.metadata, exportedNames, _core.types.identifier(localName), path.scope), _core.types.cloneNode(ref)])); + } + } + } + requeueInParent(path); + path.skip(); + }, + AssignmentExpression: { + exit(path) { + const { + scope, + seen, + imported, + exported, + requeueInParent, + buildImportReference + } = this; + if (seen.has(path.node)) return; + seen.add(path.node); + const left = path.get("left"); + if (left.isMemberExpression()) return; + if (left.isIdentifier()) { + const localName = left.node.name; + if (scope.getBinding(localName) !== path.scope.getBinding(localName)) { + return; + } + const exportedNames = exported.get(localName); + const importData = imported.get(localName); + if ((exportedNames == null ? void 0 : exportedNames.length) > 0 || importData) { + const assignment = path.node; + if (importData) { + assignment.left = buildImportReference(importData, left.node); + assignment.right = _core.types.sequenceExpression([assignment.right, buildImportThrow(localName)]); + } + const { + operator + } = assignment; + let newExpr; + if (operator === "=") { + newExpr = assignment; + } else if (operator === "&&=" || operator === "||=" || operator === "??=") { + newExpr = _core.types.assignmentExpression("=", assignment.left, _core.types.logicalExpression(operator.slice(0, -1), _core.types.cloneNode(assignment.left), assignment.right)); + } else { + newExpr = _core.types.assignmentExpression("=", assignment.left, _core.types.binaryExpression(operator.slice(0, -1), _core.types.cloneNode(assignment.left), assignment.right)); + } + path.replaceWith(buildBindingExportAssignmentExpression(this.metadata, exportedNames, newExpr, path.scope)); + requeueInParent(path); + path.skip(); + } + } else { + const ids = left.getOuterBindingIdentifiers(); + const programScopeIds = Object.keys(ids).filter(localName => scope.getBinding(localName) === path.scope.getBinding(localName)); + const id = programScopeIds.find(localName => imported.has(localName)); + if (id) { + path.node.right = _core.types.sequenceExpression([path.node.right, buildImportThrow(id)]); + } + const items = []; + programScopeIds.forEach(localName => { + const exportedNames = exported.get(localName) || []; + if (exportedNames.length > 0) { + items.push(buildBindingExportAssignmentExpression(this.metadata, exportedNames, _core.types.identifier(localName), path.scope)); + } + }); + if (items.length > 0) { + let node = _core.types.sequenceExpression(items); + if (path.parentPath.isExpressionStatement()) { + node = _core.types.expressionStatement(node); + node._blockHoist = path.parentPath.node._blockHoist; + } + const statement = path.insertAfter(node)[0]; + requeueInParent(statement); + } + } + } + }, + ForXStatement(path) { + const { + scope, + node + } = path; + const { + left + } = node; + const { + exported, + imported, + scope: programScope + } = this; + if (!_core.types.isVariableDeclaration(left)) { + let didTransformExport = false, + importConstViolationName; + const loopBodyScope = path.get("body").scope; + for (const name of Object.keys(_core.types.getOuterBindingIdentifiers(left))) { + if (programScope.getBinding(name) === scope.getBinding(name)) { + if (exported.has(name)) { + didTransformExport = true; + if (loopBodyScope.hasOwnBinding(name)) { + loopBodyScope.rename(name); + } + } + if (imported.has(name) && !importConstViolationName) { + importConstViolationName = name; + } + } + } + if (!didTransformExport && !importConstViolationName) { + return; + } + path.ensureBlock(); + const bodyPath = path.get("body"); + const newLoopId = scope.generateUidIdentifierBasedOnNode(left); + path.get("left").replaceWith(_core.types.variableDeclaration("let", [_core.types.variableDeclarator(_core.types.cloneNode(newLoopId))])); + scope.registerDeclaration(path.get("left")); + if (didTransformExport) { + bodyPath.unshiftContainer("body", _core.types.expressionStatement(_core.types.assignmentExpression("=", left, newLoopId))); + } + if (importConstViolationName) { + bodyPath.unshiftContainer("body", _core.types.expressionStatement(buildImportThrow(importConstViolationName))); + } + } + } +}; + +//# sourceMappingURL=rewrite-live-references.js.map diff --git a/node_modules/@babel/helper-module-transforms/lib/rewrite-live-references.js.map b/node_modules/@babel/helper-module-transforms/lib/rewrite-live-references.js.map new file mode 100644 index 0000000..f24c2cd --- /dev/null +++ b/node_modules/@babel/helper-module-transforms/lib/rewrite-live-references.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_core","require","isInType","path","parent","type","parentPath","exportKind","isStatement","isExpression","rewriteLiveReferences","programPath","metadata","wrapReference","imported","Map","exported","requeueInParent","requeue","source","data","localName","importName","imports","set","importsNamespace","local","exportMeta","get","push","names","rewriteBindingInitVisitorState","scope","traverse","rewriteBindingInitVisitor","rewriteReferencesVisitorState","seen","WeakSet","buildImportReference","identNode","meta","referenced","wrap","_wrapReference","namespace","t","identifier","name","_wrapReference2","interop","computed","stringSpecifiers","has","memberExpression","stringLiteral","rewriteReferencesVisitor","Scope","skip","ClassDeclaration","id","node","Error","exportNames","length","statement","expressionStatement","buildBindingExportAssignmentExpression","_blockHoist","insertAfter","VariableDeclaration","isVar","kind","decl","init","isIdentifier","isArrowFunctionExpression","isFunctionExpression","isClassExpression","buildUndefinedNode","Object","keys","getOuterBindingIdentifiers","localExpr","exportsObjectName","exportName","currentScope","hasOwnBinding","rename","reduce","expr","assignmentExpression","buildImportThrow","template","expression","ast","ReferencedIdentifier","add","importData","buildCodeFrameError","localBinding","getBinding","rootBinding","ref","loc","isCallExpression","callee","isOptionalCallExpression","isTaggedTemplateExpression","tag","isMemberExpression","replaceWith","sequenceExpression","numericLiteral","isJSXIdentifier","object","property","jsxMemberExpression","jsxIdentifier","UpdateExpression","arg","update","exportedNames","operator","prefix","cloneNode","generateDeclaredUidIdentifier","AssignmentExpression","exit","left","assignment","right","newExpr","logicalExpression","slice","binaryExpression","ids","programScopeIds","filter","find","items","forEach","isExpressionStatement","ForXStatement","programScope","isVariableDeclaration","didTransformExport","importConstViolationName","loopBodyScope","ensureBlock","bodyPath","newLoopId","generateUidIdentifierBasedOnNode","variableDeclaration","variableDeclarator","registerDeclaration","unshiftContainer"],"sources":["../src/rewrite-live-references.ts"],"sourcesContent":["import { template, types as t } from \"@babel/core\";\nimport type { NodePath, Visitor, Scope } from \"@babel/core\";\n\nimport type { ModuleMetadata } from \"./normalize-and-load-metadata.ts\";\n\ninterface RewriteReferencesVisitorState {\n exported: Map;\n metadata: ModuleMetadata;\n requeueInParent: (path: NodePath) => void;\n scope: Scope;\n imported: Map;\n buildImportReference: (\n [source, importName, localName]: readonly [string, string, string],\n identNode: t.Identifier | t.CallExpression | t.JSXIdentifier,\n ) => any;\n seen: WeakSet;\n}\n\ninterface RewriteBindingInitVisitorState {\n exported: Map;\n metadata: ModuleMetadata;\n requeueInParent: (path: NodePath) => void;\n scope: Scope;\n}\n\nfunction isInType(path: NodePath) {\n do {\n switch (path.parent.type) {\n case \"TSTypeAnnotation\":\n case \"TSTypeAliasDeclaration\":\n case \"TSTypeReference\":\n case \"TypeAnnotation\":\n case \"TypeAlias\":\n return true;\n case \"ExportSpecifier\":\n return (\n (\n path.parentPath.parent as\n | t.ExportDefaultDeclaration\n | t.ExportNamedDeclaration\n ).exportKind === \"type\"\n );\n default:\n if (path.parentPath.isStatement() || path.parentPath.isExpression()) {\n return false;\n }\n }\n } while ((path = path.parentPath));\n}\n\nexport default function rewriteLiveReferences(\n programPath: NodePath,\n metadata: ModuleMetadata,\n wrapReference: (ref: t.Expression, payload: unknown) => null | t.Expression,\n) {\n const imported = new Map();\n const exported = new Map();\n const requeueInParent = (path: NodePath) => {\n // Manually re-queue `exports.default =` expressions so that the ES3\n // transform has an opportunity to convert them. Ideally this would\n // happen automatically from the replaceWith above. See #4140 for\n // more info.\n programPath.requeue(path);\n };\n\n for (const [source, data] of metadata.source) {\n for (const [localName, importName] of data.imports) {\n imported.set(localName, [source, importName, null]);\n }\n for (const localName of data.importsNamespace) {\n imported.set(localName, [source, null, localName]);\n }\n }\n\n for (const [local, data] of metadata.local) {\n let exportMeta = exported.get(local);\n if (!exportMeta) {\n exportMeta = [];\n exported.set(local, exportMeta);\n }\n\n exportMeta.push(...data.names);\n }\n\n // Rewrite initialization of bindings to update exports.\n const rewriteBindingInitVisitorState: RewriteBindingInitVisitorState = {\n metadata,\n requeueInParent,\n scope: programPath.scope,\n exported, // local name => exported name list\n };\n programPath.traverse(\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n rewriteBindingInitVisitor,\n rewriteBindingInitVisitorState,\n );\n\n // Rewrite reads/writes from imports and exports to have the correct behavior.\n const rewriteReferencesVisitorState: RewriteReferencesVisitorState = {\n seen: new WeakSet(),\n metadata,\n requeueInParent,\n scope: programPath.scope,\n imported, // local / import\n exported, // local name => exported name list\n buildImportReference([source, importName, localName], identNode) {\n const meta = metadata.source.get(source);\n meta.referenced = true;\n\n if (localName) {\n if (meta.wrap) {\n // @ts-expect-error Fixme: we should handle the case when identNode is a JSXIdentifier\n identNode = wrapReference(identNode, meta.wrap) ?? identNode;\n }\n return identNode;\n }\n\n let namespace: t.Expression = t.identifier(meta.name);\n if (meta.wrap) {\n namespace = wrapReference(namespace, meta.wrap) ?? namespace;\n }\n\n if (importName === \"default\" && meta.interop === \"node-default\") {\n return namespace;\n }\n\n const computed = metadata.stringSpecifiers.has(importName);\n\n return t.memberExpression(\n namespace,\n computed ? t.stringLiteral(importName) : t.identifier(importName),\n computed,\n );\n },\n };\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n programPath.traverse(rewriteReferencesVisitor, rewriteReferencesVisitorState);\n}\n\n/**\n * A visitor to inject export update statements during binding initialization.\n */\nconst rewriteBindingInitVisitor: Visitor = {\n Scope(path) {\n path.skip();\n },\n ClassDeclaration(path) {\n const { requeueInParent, exported, metadata } = this;\n\n const { id } = path.node;\n if (!id) throw new Error(\"Expected class to have a name\");\n const localName = id.name;\n\n const exportNames = exported.get(localName) || [];\n if (exportNames.length > 0) {\n const statement = t.expressionStatement(\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n buildBindingExportAssignmentExpression(\n metadata,\n exportNames,\n t.identifier(localName),\n path.scope,\n ),\n );\n // @ts-expect-error todo(flow->ts): avoid mutations\n statement._blockHoist = path.node._blockHoist;\n\n requeueInParent(path.insertAfter(statement)[0]);\n }\n },\n VariableDeclaration(path) {\n const { requeueInParent, exported, metadata } = this;\n\n const isVar = path.node.kind === \"var\";\n\n for (const decl of path.get(\"declarations\")) {\n const { id } = decl.node;\n let { init } = decl.node;\n if (\n t.isIdentifier(id) &&\n exported.has(id.name) &&\n !t.isArrowFunctionExpression(init) &&\n (!t.isFunctionExpression(init) || init.id) &&\n (!t.isClassExpression(init) || init.id)\n ) {\n if (!init) {\n if (isVar) {\n // This variable might have already been assigned to, and the\n // uninitalized declaration doesn't set it to `undefined` and does\n // not updated the exported value.\n continue;\n } else {\n init = path.scope.buildUndefinedNode();\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n decl.node.init = buildBindingExportAssignmentExpression(\n metadata,\n exported.get(id.name),\n init,\n path.scope,\n );\n requeueInParent(decl.get(\"init\"));\n } else {\n for (const localName of Object.keys(\n decl.getOuterBindingIdentifiers(),\n )) {\n if (exported.has(localName)) {\n const statement = t.expressionStatement(\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n buildBindingExportAssignmentExpression(\n metadata,\n exported.get(localName),\n t.identifier(localName),\n path.scope,\n ),\n );\n // @ts-expect-error todo(flow->ts): avoid mutations\n statement._blockHoist = path.node._blockHoist;\n\n requeueInParent(path.insertAfter(statement)[0]);\n }\n }\n }\n }\n },\n};\n\nconst buildBindingExportAssignmentExpression = (\n metadata: ModuleMetadata,\n exportNames: string[],\n localExpr: t.Expression,\n scope: Scope,\n) => {\n const exportsObjectName = metadata.exportName;\n for (\n let currentScope = scope;\n currentScope != null;\n currentScope = currentScope.parent\n ) {\n if (currentScope.hasOwnBinding(exportsObjectName)) {\n currentScope.rename(exportsObjectName);\n }\n }\n return (exportNames || []).reduce((expr, exportName) => {\n // class Foo {} export { Foo, Foo as Bar };\n // as\n // class Foo {} exports.Foo = exports.Bar = Foo;\n const { stringSpecifiers } = metadata;\n const computed = stringSpecifiers.has(exportName);\n return t.assignmentExpression(\n \"=\",\n t.memberExpression(\n t.identifier(exportsObjectName),\n computed ? t.stringLiteral(exportName) : t.identifier(exportName),\n /* computed */ computed,\n ),\n expr,\n );\n }, localExpr);\n};\n\nconst buildImportThrow = (localName: string) => {\n return template.expression.ast`\n (function() {\n throw new Error('\"' + '${localName}' + '\" is read-only.');\n })()\n `;\n};\n\nconst rewriteReferencesVisitor: Visitor = {\n ReferencedIdentifier(path) {\n const { seen, buildImportReference, scope, imported, requeueInParent } =\n this;\n if (seen.has(path.node)) return;\n seen.add(path.node);\n\n const localName = path.node.name;\n\n const importData = imported.get(localName);\n if (importData) {\n if (isInType(path)) {\n throw path.buildCodeFrameError(\n `Cannot transform the imported binding \"${localName}\" since it's also used in a type annotation. ` +\n `Please strip type annotations using @babel/preset-typescript or @babel/preset-flow.`,\n );\n }\n\n const localBinding = path.scope.getBinding(localName);\n const rootBinding = scope.getBinding(localName);\n\n // redeclared in this scope\n if (rootBinding !== localBinding) return;\n\n const ref = buildImportReference(importData, path.node);\n\n // Preserve the binding location so that sourcemaps are nicer.\n ref.loc = path.node.loc;\n\n if (\n (path.parentPath.isCallExpression({ callee: path.node }) ||\n path.parentPath.isOptionalCallExpression({ callee: path.node }) ||\n path.parentPath.isTaggedTemplateExpression({ tag: path.node })) &&\n t.isMemberExpression(ref)\n ) {\n path.replaceWith(t.sequenceExpression([t.numericLiteral(0), ref]));\n } else if (path.isJSXIdentifier() && t.isMemberExpression(ref)) {\n const { object, property } = ref;\n path.replaceWith(\n t.jsxMemberExpression(\n // @ts-expect-error todo(flow->ts): possible bug `object` might not have a name\n t.jsxIdentifier(object.name),\n // @ts-expect-error todo(flow->ts): possible bug `property` might not have a name\n t.jsxIdentifier(property.name),\n ),\n );\n } else {\n path.replaceWith(ref);\n }\n\n requeueInParent(path);\n\n // The path could have been replaced with an identifier that would\n // otherwise be re-visited, so we skip processing its children.\n path.skip();\n }\n },\n\n UpdateExpression(path) {\n const {\n scope,\n seen,\n imported,\n exported,\n requeueInParent,\n buildImportReference,\n } = this;\n\n if (seen.has(path.node)) return;\n\n seen.add(path.node);\n\n const arg = path.get(\"argument\");\n\n // No change needed\n if (arg.isMemberExpression()) return;\n\n const update = path.node;\n\n if (arg.isIdentifier()) {\n const localName = arg.node.name;\n\n // redeclared in this scope\n if (scope.getBinding(localName) !== path.scope.getBinding(localName)) {\n return;\n }\n\n const exportedNames = exported.get(localName);\n const importData = imported.get(localName);\n\n if (exportedNames?.length > 0 || importData) {\n if (importData) {\n path.replaceWith(\n t.assignmentExpression(\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n (update.operator[0] + \"=\") as t.AssignmentExpression[\"operator\"],\n buildImportReference(importData, arg.node),\n buildImportThrow(localName),\n ),\n );\n } else if (update.prefix) {\n // ++foo\n // => exports.foo = ++foo\n path.replaceWith(\n buildBindingExportAssignmentExpression(\n this.metadata,\n exportedNames,\n t.cloneNode(update),\n path.scope,\n ),\n );\n } else {\n // foo++\n // => (ref = i++, exports.i = i, ref)\n const ref = scope.generateDeclaredUidIdentifier(localName);\n\n path.replaceWith(\n t.sequenceExpression([\n t.assignmentExpression(\n \"=\",\n t.cloneNode(ref),\n t.cloneNode(update),\n ),\n buildBindingExportAssignmentExpression(\n this.metadata,\n exportedNames,\n t.identifier(localName),\n path.scope,\n ),\n t.cloneNode(ref),\n ]),\n );\n }\n }\n }\n\n requeueInParent(path);\n path.skip();\n },\n\n AssignmentExpression: {\n exit(path) {\n const {\n scope,\n seen,\n imported,\n exported,\n requeueInParent,\n buildImportReference,\n } = this;\n\n if (seen.has(path.node)) return;\n seen.add(path.node);\n\n const left = path.get(\"left\");\n\n // No change needed\n if (left.isMemberExpression()) return;\n\n if (left.isIdentifier()) {\n // Simple update-assign foo += 1; export { foo };\n // => exports.foo = (foo += 1);\n const localName = left.node.name;\n\n // redeclared in this scope\n if (scope.getBinding(localName) !== path.scope.getBinding(localName)) {\n return;\n }\n\n const exportedNames = exported.get(localName);\n const importData = imported.get(localName);\n if (exportedNames?.length > 0 || importData) {\n const assignment = path.node;\n\n if (importData) {\n assignment.left = buildImportReference(importData, left.node);\n\n assignment.right = t.sequenceExpression([\n assignment.right,\n buildImportThrow(localName),\n ]);\n }\n\n const { operator } = assignment;\n let newExpr;\n if (operator === \"=\") {\n newExpr = assignment;\n } else if (\n operator === \"&&=\" ||\n operator === \"||=\" ||\n operator === \"??=\"\n ) {\n newExpr = t.assignmentExpression(\n \"=\",\n assignment.left,\n t.logicalExpression(\n operator.slice(0, -1) as t.LogicalExpression[\"operator\"],\n t.cloneNode(assignment.left) as t.Expression,\n assignment.right,\n ),\n );\n } else {\n newExpr = t.assignmentExpression(\n \"=\",\n assignment.left,\n t.binaryExpression(\n operator.slice(0, -1) as t.BinaryExpression[\"operator\"],\n t.cloneNode(assignment.left) as t.Expression,\n assignment.right,\n ),\n );\n }\n\n path.replaceWith(\n buildBindingExportAssignmentExpression(\n this.metadata,\n exportedNames,\n newExpr,\n path.scope,\n ),\n );\n\n requeueInParent(path);\n\n path.skip();\n }\n } else {\n const ids = left.getOuterBindingIdentifiers();\n const programScopeIds = Object.keys(ids).filter(\n localName =>\n scope.getBinding(localName) === path.scope.getBinding(localName),\n );\n const id = programScopeIds.find(localName => imported.has(localName));\n\n if (id) {\n path.node.right = t.sequenceExpression([\n path.node.right,\n buildImportThrow(id),\n ]);\n }\n\n // Complex ({a, b, c} = {}); export { a, c };\n // => ({a, b, c} = {}), (exports.a = a, exports.c = c);\n const items: t.Expression[] = [];\n programScopeIds.forEach(localName => {\n const exportedNames = exported.get(localName) || [];\n if (exportedNames.length > 0) {\n items.push(\n buildBindingExportAssignmentExpression(\n this.metadata,\n exportedNames,\n t.identifier(localName),\n path.scope,\n ),\n );\n }\n });\n\n if (items.length > 0) {\n let node: t.Node = t.sequenceExpression(items);\n if (path.parentPath.isExpressionStatement()) {\n node = t.expressionStatement(node);\n // @ts-expect-error todo(flow->ts): avoid mutations\n node._blockHoist = path.parentPath.node._blockHoist;\n }\n\n const statement = path.insertAfter(node)[0];\n requeueInParent(statement);\n }\n }\n },\n },\n ForXStatement(path) {\n const { scope, node } = path;\n const { left } = node;\n const { exported, imported, scope: programScope } = this;\n\n if (!t.isVariableDeclaration(left)) {\n let didTransformExport = false,\n importConstViolationName;\n const loopBodyScope = path.get(\"body\").scope;\n for (const name of Object.keys(t.getOuterBindingIdentifiers(left))) {\n if (programScope.getBinding(name) === scope.getBinding(name)) {\n if (exported.has(name)) {\n didTransformExport = true;\n if (loopBodyScope.hasOwnBinding(name)) {\n loopBodyScope.rename(name);\n }\n }\n if (imported.has(name) && !importConstViolationName) {\n importConstViolationName = name;\n }\n }\n }\n if (!didTransformExport && !importConstViolationName) {\n return;\n }\n\n path.ensureBlock();\n const bodyPath = path.get(\"body\") as NodePath;\n\n const newLoopId = scope.generateUidIdentifierBasedOnNode(left);\n path\n .get(\"left\")\n .replaceWith(\n t.variableDeclaration(\"let\", [\n t.variableDeclarator(t.cloneNode(newLoopId)),\n ]),\n );\n scope.registerDeclaration(path.get(\"left\"));\n\n if (didTransformExport) {\n bodyPath.unshiftContainer(\n \"body\",\n t.expressionStatement(t.assignmentExpression(\"=\", left, newLoopId)),\n );\n }\n if (importConstViolationName) {\n bodyPath.unshiftContainer(\n \"body\",\n t.expressionStatement(buildImportThrow(importConstViolationName)),\n );\n }\n }\n },\n};\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/node_modules/@babel/helper-module-transforms/lib/rewrite-this.js b/node_modules/@babel/helper-module-transforms/lib/rewrite-this.js new file mode 100644 index 0000000..b537652 --- /dev/null +++ b/node_modules/@babel/helper-module-transforms/lib/rewrite-this.js @@ -0,0 +1,22 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = rewriteThis; +var _core = require("@babel/core"); +var _traverse = require("@babel/traverse"); +let rewriteThisVisitor; +function rewriteThis(programPath) { + if (!rewriteThisVisitor) { + rewriteThisVisitor = _traverse.visitors.environmentVisitor({ + ThisExpression(path) { + path.replaceWith(_core.types.unaryExpression("void", _core.types.numericLiteral(0), true)); + } + }); + rewriteThisVisitor.noScope = true; + } + (0, _traverse.default)(programPath.node, rewriteThisVisitor); +} + +//# sourceMappingURL=rewrite-this.js.map diff --git a/node_modules/@babel/helper-module-transforms/lib/rewrite-this.js.map b/node_modules/@babel/helper-module-transforms/lib/rewrite-this.js.map new file mode 100644 index 0000000..3cdfc3f --- /dev/null +++ b/node_modules/@babel/helper-module-transforms/lib/rewrite-this.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_core","require","_traverse","rewriteThisVisitor","rewriteThis","programPath","visitors","environmentVisitor","ThisExpression","path","replaceWith","t","unaryExpression","numericLiteral","noScope","traverse","node"],"sources":["../src/rewrite-this.ts"],"sourcesContent":["import { types as t } from \"@babel/core\";\nimport traverse, { visitors, type NodePath } from \"@babel/traverse\";\n\n/**\n * A lazily constructed visitor to walk the tree, rewriting all `this` references in the\n * top-level scope to be `void 0` (undefined).\n *\n */\nlet rewriteThisVisitor: Parameters[1];\n\nexport default function rewriteThis(programPath: NodePath) {\n if (!rewriteThisVisitor) {\n rewriteThisVisitor = visitors.environmentVisitor({\n ThisExpression(path) {\n path.replaceWith(t.unaryExpression(\"void\", t.numericLiteral(0), true));\n },\n });\n rewriteThisVisitor.noScope = true;\n }\n // Rewrite \"this\" to be \"undefined\".\n traverse(programPath.node, rewriteThisVisitor);\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AAOA,IAAIE,kBAAkD;AAEvC,SAASC,WAAWA,CAACC,WAAqB,EAAE;EACzD,IAAI,CAACF,kBAAkB,EAAE;IACvBA,kBAAkB,GAAGG,kBAAQ,CAACC,kBAAkB,CAAC;MAC/CC,cAAcA,CAACC,IAAI,EAAE;QACnBA,IAAI,CAACC,WAAW,CAACC,WAAC,CAACC,eAAe,CAAC,MAAM,EAAED,WAAC,CAACE,cAAc,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;MACxE;IACF,CAAC,CAAC;IACFV,kBAAkB,CAACW,OAAO,GAAG,IAAI;EACnC;EAEA,IAAAC,iBAAQ,EAACV,WAAW,CAACW,IAAI,EAAEb,kBAAkB,CAAC;AAChD","ignoreList":[]} \ No newline at end of file diff --git a/node_modules/@babel/helper-module-transforms/package.json b/node_modules/@babel/helper-module-transforms/package.json new file mode 100644 index 0000000..7902c65 --- /dev/null +++ b/node_modules/@babel/helper-module-transforms/package.json @@ -0,0 +1,32 @@ +{ + "name": "@babel/helper-module-transforms", + "version": "7.28.6", + "description": "Babel helper functions for implementing ES6 module transformations", + "author": "The Babel Team (https://babel.dev/team)", + "homepage": "https://babel.dev/docs/en/next/babel-helper-module-transforms", + "license": "MIT", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "https://github.com/babel/babel.git", + "directory": "packages/babel-helper-module-transforms" + }, + "main": "./lib/index.js", + "dependencies": { + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.6" + }, + "devDependencies": { + "@babel/core": "^7.28.6" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "type": "commonjs" +} \ No newline at end of file -- cgit v1.2.3