From fc87c009806dcc98867f6b58efe29b042aa01dee Mon Sep 17 00:00:00 2001 From: littleblack111 Date: Mon, 18 May 2026 23:10:59 +0800 Subject: node: update --- node_modules/@babel/preset-modules/src/index.js | 26 ----- .../transform-async-arrows-in-class/index.js | 35 ------- .../transform-edge-default-parameters/index.js | 29 ------ .../plugins/transform-edge-function-name/index.js | 31 ------ .../src/plugins/transform-jsx-spread/index.js | 111 --------------------- .../transform-safari-block-shadowing/index.js | 39 -------- .../transform-safari-for-shadowing/index.js | 38 ------- .../transform-tagged-template-caching/index.js | 88 ---------------- 8 files changed, 397 deletions(-) delete mode 100644 node_modules/@babel/preset-modules/src/index.js delete mode 100644 node_modules/@babel/preset-modules/src/plugins/transform-async-arrows-in-class/index.js delete mode 100644 node_modules/@babel/preset-modules/src/plugins/transform-edge-default-parameters/index.js delete mode 100644 node_modules/@babel/preset-modules/src/plugins/transform-edge-function-name/index.js delete mode 100644 node_modules/@babel/preset-modules/src/plugins/transform-jsx-spread/index.js delete mode 100644 node_modules/@babel/preset-modules/src/plugins/transform-safari-block-shadowing/index.js delete mode 100644 node_modules/@babel/preset-modules/src/plugins/transform-safari-for-shadowing/index.js delete mode 100644 node_modules/@babel/preset-modules/src/plugins/transform-tagged-template-caching/index.js (limited to 'node_modules/@babel/preset-modules/src') diff --git a/node_modules/@babel/preset-modules/src/index.js b/node_modules/@babel/preset-modules/src/index.js deleted file mode 100644 index d2139897..00000000 --- a/node_modules/@babel/preset-modules/src/index.js +++ /dev/null @@ -1,26 +0,0 @@ -import path from "path"; -import { declare } from "@babel/helper-plugin-utils"; - -/** - * @babel/preset-modules produces clean, minimal output for ES Modules-supporting browsers. - * @param {Object} [options] - * @param {boolean} [options.loose=false] Loose mode skips seldom-needed transforms that increase output size. - */ -export default declare((api, opts) => { - api.assertVersion(7); - - const loose = opts.loose === true; - - return { - plugins: [ - path.resolve(__dirname, "./plugins/transform-edge-default-parameters"), - path.resolve(__dirname, "./plugins/transform-tagged-template-caching"), - path.resolve(__dirname, "./plugins/transform-jsx-spread"), - path.resolve(__dirname, "./plugins/transform-safari-for-shadowing"), - path.resolve(__dirname, "./plugins/transform-safari-block-shadowing"), - path.resolve(__dirname, "./plugins/transform-async-arrows-in-class"), - !loose && - path.resolve(__dirname, "./plugins/transform-edge-function-name"), - ].filter(Boolean), - }; -}); diff --git a/node_modules/@babel/preset-modules/src/plugins/transform-async-arrows-in-class/index.js b/node_modules/@babel/preset-modules/src/plugins/transform-async-arrows-in-class/index.js deleted file mode 100644 index b0594777..00000000 --- a/node_modules/@babel/preset-modules/src/plugins/transform-async-arrows-in-class/index.js +++ /dev/null @@ -1,35 +0,0 @@ -/** - * Safari 10.3 had an issue where async arrow function expressions within any class method would throw. - * After an initial fix, any references to the instance via `this` within those methods would also throw. - * This is fixed by converting arrow functions in class methods into equivalent function expressions. - * @see https://bugs.webkit.org/show_bug.cgi?id=166879 - * - * @example - * class X{ a(){ async () => {}; } } // throws - * class X{ a(){ async function() {}; } } // works - * - * @example - * class X{ a(){ - * async () => this.a; // throws - * } } - * class X{ a(){ - * var _this=this; - * async function() { return _this.a }; // works - * } } - */ - -const OPTS = { - allowInsertArrow: false, - specCompliant: false, -}; - -export default ({ types: t }) => ({ - name: "transform-async-arrows-in-class", - visitor: { - ArrowFunctionExpression(path) { - if (path.node.async && path.findParent(t.isClassMethod)) { - path.arrowFunctionToExpression(OPTS); - } - }, - }, -}); diff --git a/node_modules/@babel/preset-modules/src/plugins/transform-edge-default-parameters/index.js b/node_modules/@babel/preset-modules/src/plugins/transform-edge-default-parameters/index.js deleted file mode 100644 index fff50f19..00000000 --- a/node_modules/@babel/preset-modules/src/plugins/transform-edge-default-parameters/index.js +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Converts destructured parameters with default values to non-shorthand syntax. - * This fixes the only arguments-related bug in ES Modules-supporting browsers (Edge 16 & 17). - * Use this plugin instead of @babel/plugin-transform-parameters when targeting ES Modules. - */ - -export default ({ types: t }) => { - const isArrowParent = p => - p.parentKey === "params" && - p.parentPath && - t.isArrowFunctionExpression(p.parentPath); - - return { - name: "transform-edge-default-parameters", - visitor: { - AssignmentPattern(path) { - const arrowArgParent = path.find(isArrowParent); - if (arrowArgParent && path.parent.shorthand) { - // In Babel 7+, there is no way to force non-shorthand properties. - path.parent.shorthand = false; - (path.parent.extra || {}).shorthand = false; - - // So, to ensure non-shorthand, rename the local identifier so it no longer matches: - path.scope.rename(path.parent.key.name); - } - }, - }, - }; -}; diff --git a/node_modules/@babel/preset-modules/src/plugins/transform-edge-function-name/index.js b/node_modules/@babel/preset-modules/src/plugins/transform-edge-function-name/index.js deleted file mode 100644 index f6873283..00000000 --- a/node_modules/@babel/preset-modules/src/plugins/transform-edge-function-name/index.js +++ /dev/null @@ -1,31 +0,0 @@ -/** - * Edge 16 & 17 do not infer function.name from variable assignment. - * All other `function.name` behavior works fine, so we can skip most of @babel/transform-function-name. - * @see https://kangax.github.io/compat-table/es6/#test-function_name_property_variables_(function) - * - * Note: contrary to various Github issues, Edge 16+ *does* correctly infer the name of Arrow Functions. - * The variable declarator name inference issue only affects function expressions, so that's all we fix here. - * - * A Note on Minification: Terser undoes this transform *by default* unless `keep_fnames` is set to true. - * There is by design - if Function.name is critical to your application, you must configure - * your minifier to preserve function names. - */ - -export default ({ types: t }) => ({ - name: "transform-edge-function-name", - visitor: { - FunctionExpression: { - exit(path) { - if (!path.node.id && t.isIdentifier(path.parent.id)) { - const id = t.cloneNode(path.parent.id); - const binding = path.scope.getBinding(id.name); - // if the binding gets reassigned anywhere, rename it - if (binding?.constantViolations.length) { - path.scope.rename(id.name); - } - path.node.id = id; - } - }, - }, - }, -}); diff --git a/node_modules/@babel/preset-modules/src/plugins/transform-jsx-spread/index.js b/node_modules/@babel/preset-modules/src/plugins/transform-jsx-spread/index.js deleted file mode 100644 index ef015245..00000000 --- a/node_modules/@babel/preset-modules/src/plugins/transform-jsx-spread/index.js +++ /dev/null @@ -1,111 +0,0 @@ -import esutils from "esutils"; - -/** - * Converts JSX Spread arguments into Object Spread, avoiding Babel's helper or Object.assign injection. - * Input: - *
- * Output: - *
- * ...which Babel converts to: - * h("div", { a: "1", ...b }) - */ -export default ({ types: t }) => { - // converts a set of JSXAttributes to an Object.assign() call - function convertAttributesAssign(attributes) { - const args = []; - for (let i = 0, current; i < attributes.length; i++) { - const node = attributes[i]; - if (t.isJSXSpreadAttribute(node)) { - // the first attribute is a spread, avoid copying all other attributes onto it - if (i === 0) { - args.push(t.objectExpression([])); - } - current = null; - args.push(node.argument); - } else { - const name = getAttributeName(node); - const value = getAttributeValue(node); - if (!current) { - current = t.objectExpression([]); - args.push(current); - } - current.properties.push(t.objectProperty(name, value)); - } - } - return t.callExpression( - t.memberExpression(t.identifier("Object"), t.identifier("assign")), - args - ); - } - - // Converts a JSXAttribute to the equivalent ObjectExpression property - function convertAttributeSpread(node) { - if (t.isJSXSpreadAttribute(node)) { - return t.spreadElement(node.argument); - } - - const name = getAttributeName(node); - const value = getAttributeValue(node); - return t.inherits(t.objectProperty(name, value), node); - } - - // Convert a JSX attribute name to an Object expression property name - function getAttributeName(node) { - if (t.isJSXNamespacedName(node.name)) { - return t.stringLiteral( - node.name.namespace.name + ":" + node.name.name.name - ); - } - if (esutils.keyword.isIdentifierNameES6(node.name.name)) { - return t.identifier(node.name.name); - } - return t.stringLiteral(node.name.name); - } - - // Convert a JSX attribute value to a JavaScript expression value - function getAttributeValue(node) { - let value = node.value || t.booleanLiteral(true); - - if (t.isJSXExpressionContainer(value)) { - value = value.expression; - } else if (t.isStringLiteral(value)) { - value.value = value.value.replace(/\n\s+/g, " "); - - // "raw" JSXText should not be used from a StringLiteral because it needs to be escaped. - if (value.extra && value.extra.raw) { - delete value.extra.raw; - } - } - - return value; - } - - return { - name: "transform-jsx-spread", - visitor: { - JSXOpeningElement(path, state) { - const useSpread = state.opts.useSpread === true; - const hasSpread = path.node.attributes.some(attr => - t.isJSXSpreadAttribute(attr) - ); - - // ignore JSX Elements without spread or with lone spread: - if (!hasSpread || path.node.attributes.length === 1) return; - - if (useSpread) { - path.node.attributes = [ - t.jsxSpreadAttribute( - t.objectExpression( - path.node.attributes.map(convertAttributeSpread) - ) - ), - ]; - } else { - path.node.attributes = [ - t.jsxSpreadAttribute(convertAttributesAssign(path.node.attributes)), - ]; - } - }, - }, - }; -}; diff --git a/node_modules/@babel/preset-modules/src/plugins/transform-safari-block-shadowing/index.js b/node_modules/@babel/preset-modules/src/plugins/transform-safari-block-shadowing/index.js deleted file mode 100644 index f509c6b6..00000000 --- a/node_modules/@babel/preset-modules/src/plugins/transform-safari-block-shadowing/index.js +++ /dev/null @@ -1,39 +0,0 @@ -/** - * Fixes block-shadowed let/const bindings in Safari 10/11. - * https://kangax.github.io/compat-table/es6/#test-let_scope_shadow_resolution - */ -export default function({ types: t }) { - return { - name: "transform-safari-block-shadowing", - visitor: { - VariableDeclarator(path) { - // the issue only affects let and const bindings: - const kind = path.parent.kind; - if (kind !== "let" && kind !== "const") return; - - // ignore non-block-scoped bindings: - const block = path.scope.block; - if (t.isFunction(block) || t.isProgram(block)) return; - - const bindings = t.getOuterBindingIdentifiers(path.node.id); - for (const name of Object.keys(bindings)) { - let scope = path.scope; - - // ignore parent bindings (note: impossible due to let/const?) - if (!scope.hasOwnBinding(name)) continue; - - // check if shadowed within the nearest function/program boundary - while ((scope = scope.parent)) { - if (scope.hasOwnBinding(name)) { - path.scope.rename(name); - break; - } - if (t.isFunction(scope.block) || t.isProgram(scope.block)) { - break; - } - } - } - }, - }, - }; -} diff --git a/node_modules/@babel/preset-modules/src/plugins/transform-safari-for-shadowing/index.js b/node_modules/@babel/preset-modules/src/plugins/transform-safari-for-shadowing/index.js deleted file mode 100644 index 83b4eafd..00000000 --- a/node_modules/@babel/preset-modules/src/plugins/transform-safari-for-shadowing/index.js +++ /dev/null @@ -1,38 +0,0 @@ -/** - * Safari ~11 has an issue where variable declarations in a For statement throw if they shadow parameters. - * This is fixed by renaming any declarations in the left/init part of a For* statement so they don't shadow. - * @see https://bugs.webkit.org/show_bug.cgi?id=171041 - * - * @example - * e => { for (let e of []) e } // throws - * e => { for (let _e of []) _e } // works - */ - -function handle(declaration) { - if (!declaration.isVariableDeclaration()) return; - - const fn = declaration.getFunctionParent(); - const { name } = declaration.node.declarations[0].id; - - // check if there is a shadowed binding coming from a parameter - if ( - fn && - fn.scope.hasOwnBinding(name) && - fn.scope.getOwnBinding(name).kind === "param" - ) { - declaration.scope.rename(name); - } -} - -export default () => ({ - name: "transform-safari-for-shadowing", - visitor: { - ForXStatement(path) { - handle(path.get("left")); - }, - - ForStatement(path) { - handle(path.get("init")); - }, - }, -}); diff --git a/node_modules/@babel/preset-modules/src/plugins/transform-tagged-template-caching/index.js b/node_modules/@babel/preset-modules/src/plugins/transform-tagged-template-caching/index.js deleted file mode 100644 index 65d03999..00000000 --- a/node_modules/@babel/preset-modules/src/plugins/transform-tagged-template-caching/index.js +++ /dev/null @@ -1,88 +0,0 @@ -/** - * Converts destructured parameters with default values to non-shorthand syntax. - * This fixes the only Tagged Templates-related bug in ES Modules-supporting browsers (Safari 10 & 11). - * Use this plugin instead of `@babel/plugin-transform-template-literals` when targeting ES Modules. - * - * @example - * // Bug 1: Safari 10/11 doesn't reliably return the same Strings value. - * // The value changes depending on invocation and function optimization state. - * function f() { return Object`` } - * f() === new f() // false, should be true. - * - * @example - * // Bug 2: Safari 10/11 use the same cached strings value when the string parts are the same. - * // This behavior comes from an earlier version of the spec, and can cause tricky bugs. - * Object``===Object`` // true, should be false. - * - * Benchmarks: https://jsperf.com/compiled-tagged-template-performance - */ -export default ({ types: t }) => ({ - name: "transform-tagged-template-caching", - visitor: { - TaggedTemplateExpression(path, state) { - // tagged templates we've already dealt with - let processed = state.get("processed"); - if (!processed) { - processed = new WeakSet(); - state.set("processed", processed); - } - - if (processed.has(path.node)) return path.skip(); - - // Grab the expressions from the original tag. - // tag`a${'hello'}` // ['hello'] - const expressions = path.node.quasi.expressions; - - // Create an identity function helper: - // identity = t => t - let identity = state.get("identity"); - if (!identity) { - identity = path.scope - .getProgramParent() - .generateDeclaredUidIdentifier("_"); - state.set("identity", identity); - const binding = path.scope.getBinding(identity.name); - binding.path.get("init").replaceWith( - t.arrowFunctionExpression( - // re-use the helper identifier for compressability - [t.identifier("t")], - t.identifier("t") - ) - ); - } - - // Use the identity function helper to get a reference to the template's Strings. - // We replace all expressions with `0` ensure Strings has the same shape. - // identity`a${0}` - const template = t.taggedTemplateExpression( - t.cloneNode(identity), - t.templateLiteral( - path.node.quasi.quasis, - expressions.map(() => t.numericLiteral(0)) - ) - ); - processed.add(template); - - // Install an inline cache at the callsite using the global variable: - // _t || (_t = identity`a${0}`) - const ident = path.scope - .getProgramParent() - .generateDeclaredUidIdentifier("t"); - path.scope.getBinding(ident.name).path.parent.kind = "let"; - const inlineCache = t.logicalExpression( - "||", - ident, - t.assignmentExpression("=", t.cloneNode(ident), template) - ); - - // The original tag function becomes a plain function call. - // The expressions omitted from the cached Strings tag are directly applied as arguments. - // tag(_t || (_t = Object`a${0}`), 'hello') - const node = t.callExpression(path.node.tag, [ - inlineCache, - ...expressions, - ]); - path.replaceWith(node); - }, - }, -}); -- cgit v1.2.3