summaryrefslogtreecommitdiff
path: root/node_modules/@babel/helper-create-regexp-features-plugin
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/@babel/helper-create-regexp-features-plugin')
-rw-r--r--node_modules/@babel/helper-create-regexp-features-plugin/LICENSE22
-rw-r--r--node_modules/@babel/helper-create-regexp-features-plugin/README.md19
-rw-r--r--node_modules/@babel/helper-create-regexp-features-plugin/lib/features.js33
-rw-r--r--node_modules/@babel/helper-create-regexp-features-plugin/lib/features.js.map1
-rw-r--r--node_modules/@babel/helper-create-regexp-features-plugin/lib/index.js116
-rw-r--r--node_modules/@babel/helper-create-regexp-features-plugin/lib/index.js.map1
-rw-r--r--node_modules/@babel/helper-create-regexp-features-plugin/lib/util.js71
-rw-r--r--node_modules/@babel/helper-create-regexp-features-plugin/lib/util.js.map1
-rw-r--r--node_modules/@babel/helper-create-regexp-features-plugin/package.json36
9 files changed, 300 insertions, 0 deletions
diff --git a/node_modules/@babel/helper-create-regexp-features-plugin/LICENSE b/node_modules/@babel/helper-create-regexp-features-plugin/LICENSE
new file mode 100644
index 00000000..f31575ec
--- /dev/null
+++ b/node_modules/@babel/helper-create-regexp-features-plugin/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-create-regexp-features-plugin/README.md b/node_modules/@babel/helper-create-regexp-features-plugin/README.md
new file mode 100644
index 00000000..e75d162a
--- /dev/null
+++ b/node_modules/@babel/helper-create-regexp-features-plugin/README.md
@@ -0,0 +1,19 @@
+# @babel/helper-create-regexp-features-plugin
+
+> Compile ESNext Regular Expressions to ES5
+
+See our website [@babel/helper-create-regexp-features-plugin](https://babeljs.io/docs/babel-helper-create-regexp-features-plugin) for more information.
+
+## Install
+
+Using npm:
+
+```sh
+npm install --save @babel/helper-create-regexp-features-plugin
+```
+
+or using yarn:
+
+```sh
+yarn add @babel/helper-create-regexp-features-plugin
+```
diff --git a/node_modules/@babel/helper-create-regexp-features-plugin/lib/features.js b/node_modules/@babel/helper-create-regexp-features-plugin/lib/features.js
new file mode 100644
index 00000000..988a6d54
--- /dev/null
+++ b/node_modules/@babel/helper-create-regexp-features-plugin/lib/features.js
@@ -0,0 +1,33 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.FEATURES = void 0;
+exports.enableFeature = enableFeature;
+exports.featuresKey = void 0;
+exports.hasFeature = hasFeature;
+exports.runtimeKey = void 0;
+const FEATURES = Object.freeze({
+ unicodeFlag: 1 << 0,
+ dotAllFlag: 1 << 1,
+ unicodePropertyEscape: 1 << 2,
+ namedCaptureGroups: 1 << 3,
+ unicodeSetsFlag_syntax: 1 << 4,
+ unicodeSetsFlag: 1 << 5,
+ duplicateNamedCaptureGroups: 1 << 6,
+ modifiers: 1 << 7
+});
+exports.FEATURES = FEATURES;
+const featuresKey = "@babel/plugin-regexp-features/featuresKey";
+exports.featuresKey = featuresKey;
+const runtimeKey = "@babel/plugin-regexp-features/runtimeKey";
+exports.runtimeKey = runtimeKey;
+function enableFeature(features, feature) {
+ return features | feature;
+}
+function hasFeature(features, feature) {
+ return !!(features & feature);
+}
+
+//# sourceMappingURL=features.js.map
diff --git a/node_modules/@babel/helper-create-regexp-features-plugin/lib/features.js.map b/node_modules/@babel/helper-create-regexp-features-plugin/lib/features.js.map
new file mode 100644
index 00000000..aa8d9088
--- /dev/null
+++ b/node_modules/@babel/helper-create-regexp-features-plugin/lib/features.js.map
@@ -0,0 +1 @@
+{"version":3,"names":["FEATURES","Object","freeze","unicodeFlag","dotAllFlag","unicodePropertyEscape","namedCaptureGroups","unicodeSetsFlag_syntax","unicodeSetsFlag","duplicateNamedCaptureGroups","modifiers","exports","featuresKey","runtimeKey","enableFeature","features","feature","hasFeature"],"sources":["../src/features.ts"],"sourcesContent":["export const FEATURES = Object.freeze({\n unicodeFlag: 1 << 0,\n dotAllFlag: 1 << 1,\n unicodePropertyEscape: 1 << 2,\n namedCaptureGroups: 1 << 3,\n // Not used, for backward compatibility with syntax-unicode-sets-regex\n unicodeSetsFlag_syntax: 1 << 4,\n unicodeSetsFlag: 1 << 5,\n duplicateNamedCaptureGroups: 1 << 6,\n modifiers: 1 << 7,\n});\n\n// We can't use a symbol because this needs to always be the same, even if\n// this package isn't deduped by npm. e.g.\n// - node_modules/\n// - @babel/plugin-regexp-features\n// - @babel/plugin-transform-unicode-property-regex\n// - node_modules\n// - @babel-plugin-regexp-features\nexport const featuresKey = \"@babel/plugin-regexp-features/featuresKey\";\nexport const runtimeKey = \"@babel/plugin-regexp-features/runtimeKey\";\n\ntype FeatureType = (typeof FEATURES)[keyof typeof FEATURES];\n\nexport function enableFeature(features: number, feature: FeatureType): number {\n return features | feature;\n}\n\nexport function hasFeature(features: number, feature: FeatureType) {\n return !!(features & feature);\n}\n"],"mappings":";;;;;;;;;;AAAO,MAAMA,QAAQ,GAAGC,MAAM,CAACC,MAAM,CAAC;EACpCC,WAAW,EAAE,CAAC,IAAI,CAAC;EACnBC,UAAU,EAAE,CAAC,IAAI,CAAC;EAClBC,qBAAqB,EAAE,CAAC,IAAI,CAAC;EAC7BC,kBAAkB,EAAE,CAAC,IAAI,CAAC;EAE1BC,sBAAsB,EAAE,CAAC,IAAI,CAAC;EAC9BC,eAAe,EAAE,CAAC,IAAI,CAAC;EACvBC,2BAA2B,EAAE,CAAC,IAAI,CAAC;EACnCC,SAAS,EAAE,CAAC,IAAI;AAClB,CAAC,CAAC;AAACC,OAAA,CAAAX,QAAA,GAAAA,QAAA;AASI,MAAMY,WAAW,GAAG,2CAA2C;AAACD,OAAA,CAAAC,WAAA,GAAAA,WAAA;AAChE,MAAMC,UAAU,GAAG,0CAA0C;AAACF,OAAA,CAAAE,UAAA,GAAAA,UAAA;AAI9D,SAASC,aAAaA,CAACC,QAAgB,EAAEC,OAAoB,EAAU;EAC5E,OAAOD,QAAQ,GAAGC,OAAO;AAC3B;AAEO,SAASC,UAAUA,CAACF,QAAgB,EAAEC,OAAoB,EAAE;EACjE,OAAO,CAAC,EAAED,QAAQ,GAAGC,OAAO,CAAC;AAC/B"} \ No newline at end of file
diff --git a/node_modules/@babel/helper-create-regexp-features-plugin/lib/index.js b/node_modules/@babel/helper-create-regexp-features-plugin/lib/index.js
new file mode 100644
index 00000000..f07e22b3
--- /dev/null
+++ b/node_modules/@babel/helper-create-regexp-features-plugin/lib/index.js
@@ -0,0 +1,116 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.createRegExpFeaturePlugin = createRegExpFeaturePlugin;
+var _regexpuCore = require("regexpu-core");
+var _core = require("@babel/core");
+var _helperAnnotateAsPure = require("@babel/helper-annotate-as-pure");
+var _semver = require("semver");
+var _features = require("./features.js");
+var _util = require("./util.js");
+const versionKey = "@babel/plugin-regexp-features/version";
+function createRegExpFeaturePlugin({
+ name,
+ feature,
+ options = {},
+ manipulateOptions = () => {}
+}) {
+ return {
+ name,
+ manipulateOptions,
+ pre() {
+ var _file$get;
+ const {
+ file
+ } = this;
+ const features = (_file$get = file.get(_features.featuresKey)) != null ? _file$get : 0;
+ let newFeatures = (0, _features.enableFeature)(features, _features.FEATURES[feature]);
+ const {
+ useUnicodeFlag,
+ runtime
+ } = options;
+ if (useUnicodeFlag === false) {
+ newFeatures = (0, _features.enableFeature)(newFeatures, _features.FEATURES.unicodeFlag);
+ }
+ if (newFeatures !== features) {
+ file.set(_features.featuresKey, newFeatures);
+ }
+ if (runtime !== undefined) {
+ if (file.has(_features.runtimeKey) && file.get(_features.runtimeKey) !== runtime && (0, _features.hasFeature)(newFeatures, _features.FEATURES.duplicateNamedCaptureGroups)) {
+ throw new Error(`The 'runtime' option must be the same for ` + `'@babel/plugin-transform-named-capturing-groups-regex' and ` + `'@babel/plugin-proposal-duplicate-named-capturing-groups-regex'.`);
+ }
+ if (feature === "namedCaptureGroups") {
+ if (!runtime || !file.has(_features.runtimeKey)) file.set(_features.runtimeKey, runtime);
+ } else {
+ file.set(_features.runtimeKey, runtime);
+ }
+ }
+ {
+ if (typeof file.get(versionKey) === "number") {
+ file.set(versionKey, "7.22.15");
+ return;
+ }
+ }
+ if (!file.get(versionKey) || _semver.lt(file.get(versionKey), "7.22.15")) {
+ file.set(versionKey, "7.22.15");
+ }
+ },
+ visitor: {
+ RegExpLiteral(path) {
+ var _file$get2, _newFlags;
+ const {
+ node
+ } = path;
+ const {
+ file
+ } = this;
+ const features = file.get(_features.featuresKey);
+ const runtime = (_file$get2 = file.get(_features.runtimeKey)) != null ? _file$get2 : true;
+ const regexpuOptions = (0, _util.generateRegexpuOptions)(node.pattern, features);
+ if ((0, _util.canSkipRegexpu)(node, regexpuOptions)) {
+ return;
+ }
+ const namedCaptureGroups = {
+ __proto__: null
+ };
+ if (regexpuOptions.namedGroups === "transform") {
+ regexpuOptions.onNamedGroup = (name, index) => {
+ const prev = namedCaptureGroups[name];
+ if (typeof prev === "number") {
+ namedCaptureGroups[name] = [prev, index];
+ } else if (Array.isArray(prev)) {
+ prev.push(index);
+ } else {
+ namedCaptureGroups[name] = index;
+ }
+ };
+ }
+ let newFlags;
+ if (regexpuOptions.modifiers === "transform") {
+ regexpuOptions.onNewFlags = flags => {
+ newFlags = flags;
+ };
+ }
+ node.pattern = _regexpuCore(node.pattern, node.flags, regexpuOptions);
+ if (regexpuOptions.namedGroups === "transform" && Object.keys(namedCaptureGroups).length > 0 && runtime && !isRegExpTest(path)) {
+ const call = _core.types.callExpression(this.addHelper("wrapRegExp"), [node, _core.types.valueToNode(namedCaptureGroups)]);
+ (0, _helperAnnotateAsPure.default)(call);
+ path.replaceWith(call);
+ }
+ node.flags = (0, _util.transformFlags)(regexpuOptions, (_newFlags = newFlags) != null ? _newFlags : node.flags);
+ }
+ }
+ };
+}
+function isRegExpTest(path) {
+ return path.parentPath.isMemberExpression({
+ object: path.node,
+ computed: false
+ }) && path.parentPath.get("property").isIdentifier({
+ name: "test"
+ });
+}
+
+//# sourceMappingURL=index.js.map
diff --git a/node_modules/@babel/helper-create-regexp-features-plugin/lib/index.js.map b/node_modules/@babel/helper-create-regexp-features-plugin/lib/index.js.map
new file mode 100644
index 00000000..a2516f9b
--- /dev/null
+++ b/node_modules/@babel/helper-create-regexp-features-plugin/lib/index.js.map
@@ -0,0 +1 @@
+{"version":3,"names":["_regexpuCore","require","_core","_helperAnnotateAsPure","_semver","_features","_util","versionKey","createRegExpFeaturePlugin","name","feature","options","manipulateOptions","pre","_file$get","file","features","get","featuresKey","newFeatures","enableFeature","FEATURES","useUnicodeFlag","runtime","unicodeFlag","set","undefined","has","runtimeKey","hasFeature","duplicateNamedCaptureGroups","Error","semver","lt","visitor","RegExpLiteral","path","_file$get2","_newFlags","node","regexpuOptions","generateRegexpuOptions","pattern","canSkipRegexpu","namedCaptureGroups","__proto__","namedGroups","onNamedGroup","index","prev","Array","isArray","push","newFlags","modifiers","onNewFlags","flags","rewritePattern","Object","keys","length","isRegExpTest","call","t","callExpression","addHelper","valueToNode","annotateAsPure","replaceWith","transformFlags","parentPath","isMemberExpression","object","computed","isIdentifier"],"sources":["../src/index.ts"],"sourcesContent":["import rewritePattern from \"regexpu-core\";\nimport type { NodePath } from \"@babel/traverse\";\nimport { types as t, type PluginObject } from \"@babel/core\";\nimport annotateAsPure from \"@babel/helper-annotate-as-pure\";\n\nimport semver from \"semver\";\n\nimport {\n featuresKey,\n FEATURES,\n enableFeature,\n runtimeKey,\n hasFeature,\n} from \"./features.ts\";\nimport {\n generateRegexpuOptions,\n canSkipRegexpu,\n transformFlags,\n} from \"./util.ts\";\n\nconst versionKey = \"@babel/plugin-regexp-features/version\";\n\nexport interface Options {\n name: string;\n feature: keyof typeof FEATURES;\n options?: {\n useUnicodeFlag?: boolean;\n runtime?: boolean;\n };\n manipulateOptions?: PluginObject[\"manipulateOptions\"];\n}\n\nexport function createRegExpFeaturePlugin({\n name,\n feature,\n options = {},\n manipulateOptions = () => {},\n}: Options): PluginObject {\n return {\n name,\n\n manipulateOptions,\n\n pre() {\n const { file } = this;\n const features = file.get(featuresKey) ?? 0;\n let newFeatures = enableFeature(features, FEATURES[feature]);\n\n const { useUnicodeFlag, runtime } = options;\n if (useUnicodeFlag === false) {\n newFeatures = enableFeature(newFeatures, FEATURES.unicodeFlag);\n }\n if (newFeatures !== features) {\n file.set(featuresKey, newFeatures);\n }\n\n if (runtime !== undefined) {\n if (\n file.has(runtimeKey) &&\n file.get(runtimeKey) !== runtime &&\n (process.env.BABEL_8_BREAKING ||\n // This check. Is necessary because in Babel 7 we allow multiple\n // copies of transform-named-capturing-groups-regex with\n // conflicting 'runtime' options.\n hasFeature(newFeatures, FEATURES.duplicateNamedCaptureGroups))\n ) {\n throw new Error(\n `The 'runtime' option must be the same for ` +\n `'@babel/plugin-transform-named-capturing-groups-regex' and ` +\n `'@babel/plugin-proposal-duplicate-named-capturing-groups-regex'.`,\n );\n }\n\n if (process.env.BABEL_8_BREAKING) {\n file.set(runtimeKey, runtime);\n } else if (\n // This check. Is necessary because in Babel 7 we allow multiple\n // copies of transform-named-capturing-groups-regex with\n // conflicting 'runtime' options.\n feature === \"namedCaptureGroups\"\n ) {\n if (!runtime || !file.has(runtimeKey)) file.set(runtimeKey, runtime);\n } else {\n file.set(runtimeKey, runtime);\n }\n }\n\n if (!process.env.BABEL_8_BREAKING) {\n // Until 7.21.4, we used to encode the version as a number.\n // If file.get(versionKey) is a number, it has thus been\n // set by an older version of this plugin.\n if (typeof file.get(versionKey) === \"number\") {\n file.set(versionKey, PACKAGE_JSON.version);\n return;\n }\n }\n if (\n !file.get(versionKey) ||\n semver.lt(file.get(versionKey), PACKAGE_JSON.version)\n ) {\n file.set(versionKey, PACKAGE_JSON.version);\n }\n },\n\n visitor: {\n RegExpLiteral(path) {\n const { node } = path;\n const { file } = this;\n const features = file.get(featuresKey);\n const runtime = file.get(runtimeKey) ?? true;\n\n const regexpuOptions = generateRegexpuOptions(node.pattern, features);\n if (canSkipRegexpu(node, regexpuOptions)) {\n return;\n }\n\n const namedCaptureGroups: Record<string, number | number[]> = {\n __proto__: null,\n };\n if (regexpuOptions.namedGroups === \"transform\") {\n regexpuOptions.onNamedGroup = (name, index) => {\n const prev = namedCaptureGroups[name];\n if (typeof prev === \"number\") {\n namedCaptureGroups[name] = [prev, index];\n } else if (Array.isArray(prev)) {\n prev.push(index);\n } else {\n namedCaptureGroups[name] = index;\n }\n };\n }\n\n let newFlags;\n if (regexpuOptions.modifiers === \"transform\") {\n regexpuOptions.onNewFlags = flags => {\n newFlags = flags;\n };\n }\n\n node.pattern = rewritePattern(node.pattern, node.flags, regexpuOptions);\n\n if (\n regexpuOptions.namedGroups === \"transform\" &&\n Object.keys(namedCaptureGroups).length > 0 &&\n runtime &&\n !isRegExpTest(path)\n ) {\n const call = t.callExpression(this.addHelper(\"wrapRegExp\"), [\n node,\n t.valueToNode(namedCaptureGroups),\n ]);\n annotateAsPure(call);\n\n path.replaceWith(call);\n }\n\n node.flags = transformFlags(regexpuOptions, newFlags ?? node.flags);\n },\n },\n };\n}\n\nfunction isRegExpTest(path: NodePath<t.RegExpLiteral>) {\n return (\n path.parentPath.isMemberExpression({\n object: path.node,\n computed: false,\n }) && path.parentPath.get(\"property\").isIdentifier({ name: \"test\" })\n );\n}\n"],"mappings":"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"} \ No newline at end of file
diff --git a/node_modules/@babel/helper-create-regexp-features-plugin/lib/util.js b/node_modules/@babel/helper-create-regexp-features-plugin/lib/util.js
new file mode 100644
index 00000000..7409090c
--- /dev/null
+++ b/node_modules/@babel/helper-create-regexp-features-plugin/lib/util.js
@@ -0,0 +1,71 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.canSkipRegexpu = canSkipRegexpu;
+exports.generateRegexpuOptions = generateRegexpuOptions;
+exports.transformFlags = transformFlags;
+var _features = require("./features.js");
+function generateRegexpuOptions(pattern, toTransform) {
+ const feat = (name, ok = "transform") => {
+ return (0, _features.hasFeature)(toTransform, _features.FEATURES[name]) ? ok : false;
+ };
+ const featDuplicateNamedGroups = () => {
+ if (!feat("duplicateNamedCaptureGroups")) return false;
+ const regex = /\(\?<([^>]+)>/g;
+ const seen = new Set();
+ for (let match; match = regex.exec(pattern); seen.add(match[1])) {
+ if (seen.has(match[1])) return "transform";
+ }
+ return false;
+ };
+ return {
+ unicodeFlag: feat("unicodeFlag"),
+ unicodeSetsFlag: feat("unicodeSetsFlag") || "parse",
+ dotAllFlag: feat("dotAllFlag"),
+ unicodePropertyEscapes: feat("unicodePropertyEscape"),
+ namedGroups: feat("namedCaptureGroups") || featDuplicateNamedGroups(),
+ onNamedGroup: () => {},
+ modifiers: feat("modifiers")
+ };
+}
+function canSkipRegexpu(node, options) {
+ const {
+ flags,
+ pattern
+ } = node;
+ if (flags.includes("v")) {
+ if (options.unicodeSetsFlag === "transform") return false;
+ }
+ if (flags.includes("u")) {
+ if (options.unicodeFlag === "transform") return false;
+ if (options.unicodePropertyEscapes === "transform" && /\\[pP]{/.test(pattern)) {
+ return false;
+ }
+ }
+ if (flags.includes("s")) {
+ if (options.dotAllFlag === "transform") return false;
+ }
+ if (options.namedGroups === "transform" && /\(\?<(?![=!])/.test(pattern)) {
+ return false;
+ }
+ if (options.modifiers === "transform" && /\(\?[\w-]+:/.test(pattern)) {
+ return false;
+ }
+ return true;
+}
+function transformFlags(regexpuOptions, flags) {
+ if (regexpuOptions.unicodeSetsFlag === "transform") {
+ flags = flags.replace("v", "u");
+ }
+ if (regexpuOptions.unicodeFlag === "transform") {
+ flags = flags.replace("u", "");
+ }
+ if (regexpuOptions.dotAllFlag === "transform") {
+ flags = flags.replace("s", "");
+ }
+ return flags;
+}
+
+//# sourceMappingURL=util.js.map
diff --git a/node_modules/@babel/helper-create-regexp-features-plugin/lib/util.js.map b/node_modules/@babel/helper-create-regexp-features-plugin/lib/util.js.map
new file mode 100644
index 00000000..ede84d5b
--- /dev/null
+++ b/node_modules/@babel/helper-create-regexp-features-plugin/lib/util.js.map
@@ -0,0 +1 @@
+{"version":3,"names":["_features","require","generateRegexpuOptions","pattern","toTransform","feat","name","ok","hasFeature","FEATURES","featDuplicateNamedGroups","regex","seen","Set","match","exec","add","has","unicodeFlag","unicodeSetsFlag","dotAllFlag","unicodePropertyEscapes","namedGroups","onNamedGroup","modifiers","canSkipRegexpu","node","options","flags","includes","test","transformFlags","regexpuOptions","replace"],"sources":["../src/util.ts"],"sourcesContent":["import type { types as t } from \"@babel/core\";\nimport { FEATURES, hasFeature } from \"./features.ts\";\n\nimport type { RegexpuOptions } from \"regexpu-core\";\n\nexport function generateRegexpuOptions(\n pattern: string,\n toTransform: number,\n): RegexpuOptions {\n type Experimental = 1;\n\n const feat = <Stability extends 0 | 1 = 0>(\n name: keyof typeof FEATURES,\n ok: \"transform\" | (Stability extends 0 ? never : \"parse\") = \"transform\",\n ) => {\n return hasFeature(toTransform, FEATURES[name]) ? ok : false;\n };\n\n const featDuplicateNamedGroups = (): \"transform\" | false => {\n if (!feat(\"duplicateNamedCaptureGroups\")) return false;\n\n // This can return false positive, for example for /\\(?<a>\\)/.\n // However, it's such a rare occurrence that it's ok to compile\n // the regexp even if we only need to compile regexps with\n // duplicate named capturing groups.\n const regex = /\\(\\?<([^>]+)>/g;\n const seen = new Set();\n for (let match; (match = regex.exec(pattern)); seen.add(match[1])) {\n if (seen.has(match[1])) return \"transform\";\n }\n return false;\n };\n\n return {\n unicodeFlag: feat(\"unicodeFlag\"),\n unicodeSetsFlag: feat<Experimental>(\"unicodeSetsFlag\") || \"parse\",\n dotAllFlag: feat(\"dotAllFlag\"),\n unicodePropertyEscapes: feat(\"unicodePropertyEscape\"),\n namedGroups: feat(\"namedCaptureGroups\") || featDuplicateNamedGroups(),\n onNamedGroup: () => {},\n modifiers: feat(\"modifiers\"),\n };\n}\n\nexport function canSkipRegexpu(\n node: t.RegExpLiteral,\n options: RegexpuOptions,\n): boolean {\n const { flags, pattern } = node;\n\n if (flags.includes(\"v\")) {\n if (options.unicodeSetsFlag === \"transform\") return false;\n }\n\n if (flags.includes(\"u\")) {\n if (options.unicodeFlag === \"transform\") return false;\n if (\n options.unicodePropertyEscapes === \"transform\" &&\n /\\\\[pP]{/.test(pattern)\n ) {\n return false;\n }\n }\n\n if (flags.includes(\"s\")) {\n if (options.dotAllFlag === \"transform\") return false;\n }\n\n if (options.namedGroups === \"transform\" && /\\(\\?<(?![=!])/.test(pattern)) {\n return false;\n }\n\n if (options.modifiers === \"transform\" && /\\(\\?[\\w-]+:/.test(pattern)) {\n return false;\n }\n\n return true;\n}\n\nexport function transformFlags(regexpuOptions: RegexpuOptions, flags: string) {\n if (regexpuOptions.unicodeSetsFlag === \"transform\") {\n flags = flags.replace(\"v\", \"u\");\n }\n if (regexpuOptions.unicodeFlag === \"transform\") {\n flags = flags.replace(\"u\", \"\");\n }\n if (regexpuOptions.dotAllFlag === \"transform\") {\n flags = flags.replace(\"s\", \"\");\n }\n return flags;\n}\n"],"mappings":"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"} \ No newline at end of file
diff --git a/node_modules/@babel/helper-create-regexp-features-plugin/package.json b/node_modules/@babel/helper-create-regexp-features-plugin/package.json
new file mode 100644
index 00000000..e489479c
--- /dev/null
+++ b/node_modules/@babel/helper-create-regexp-features-plugin/package.json
@@ -0,0 +1,36 @@
+{
+ "name": "@babel/helper-create-regexp-features-plugin",
+ "version": "7.22.15",
+ "author": "The Babel Team (https://babel.dev/team)",
+ "license": "MIT",
+ "description": "Compile ESNext Regular Expressions to ES5",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/babel/babel.git",
+ "directory": "packages/babel-helper-create-regexp-features-plugin"
+ },
+ "main": "./lib/index.js",
+ "publishConfig": {
+ "access": "public"
+ },
+ "keywords": [
+ "babel",
+ "babel-plugin"
+ ],
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "regexpu-core": "^5.3.1",
+ "semver": "^6.3.1"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ },
+ "devDependencies": {
+ "@babel/core": "^7.22.15",
+ "@babel/helper-plugin-test-runner": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "type": "commonjs"
+} \ No newline at end of file