summaryrefslogtreecommitdiff
path: root/node_modules/@babel/plugin-transform-class-static-block
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/@babel/plugin-transform-class-static-block')
-rw-r--r--node_modules/@babel/plugin-transform-class-static-block/LICENSE22
-rw-r--r--node_modules/@babel/plugin-transform-class-static-block/README.md19
-rw-r--r--node_modules/@babel/plugin-transform-class-static-block/lib/index.js63
-rw-r--r--node_modules/@babel/plugin-transform-class-static-block/lib/index.js.map1
-rw-r--r--node_modules/@babel/plugin-transform-class-static-block/package.json42
5 files changed, 147 insertions, 0 deletions
diff --git a/node_modules/@babel/plugin-transform-class-static-block/LICENSE b/node_modules/@babel/plugin-transform-class-static-block/LICENSE
new file mode 100644
index 00000000..f31575ec
--- /dev/null
+++ b/node_modules/@babel/plugin-transform-class-static-block/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/plugin-transform-class-static-block/README.md b/node_modules/@babel/plugin-transform-class-static-block/README.md
new file mode 100644
index 00000000..20481d26
--- /dev/null
+++ b/node_modules/@babel/plugin-transform-class-static-block/README.md
@@ -0,0 +1,19 @@
+# @babel/plugin-transform-class-static-block
+
+> Transform class static blocks
+
+See our website [@babel/plugin-transform-class-static-block](https://babeljs.io/docs/babel-plugin-transform-class-static-block) for more information.
+
+## Install
+
+Using npm:
+
+```sh
+npm install --save-dev @babel/plugin-transform-class-static-block
+```
+
+or using yarn:
+
+```sh
+yarn add @babel/plugin-transform-class-static-block --dev
+```
diff --git a/node_modules/@babel/plugin-transform-class-static-block/lib/index.js b/node_modules/@babel/plugin-transform-class-static-block/lib/index.js
new file mode 100644
index 00000000..a657297c
--- /dev/null
+++ b/node_modules/@babel/plugin-transform-class-static-block/lib/index.js
@@ -0,0 +1,63 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.default = void 0;
+var _helperPluginUtils = require("@babel/helper-plugin-utils");
+var _helperCreateClassFeaturesPlugin = require("@babel/helper-create-class-features-plugin");
+function generateUid(scope, denyList) {
+ const name = "";
+ let uid;
+ let i = 1;
+ do {
+ uid = scope._generateUid(name, i);
+ i++;
+ } while (denyList.has(uid));
+ return uid;
+}
+var _default = (0, _helperPluginUtils.declare)(({
+ types: t,
+ template,
+ assertVersion
+}) => {
+ assertVersion("^7.12.0");
+ return {
+ name: "transform-class-static-block",
+ inherits: require("@babel/plugin-syntax-class-static-block").default,
+ pre() {
+ (0, _helperCreateClassFeaturesPlugin.enableFeature)(this.file, _helperCreateClassFeaturesPlugin.FEATURES.staticBlocks, false);
+ },
+ visitor: {
+ ClassBody(classBody) {
+ const {
+ scope
+ } = classBody;
+ const privateNames = new Set();
+ const body = classBody.get("body");
+ for (const path of body) {
+ if (path.isPrivate()) {
+ privateNames.add(path.get("key.id").node.name);
+ }
+ }
+ for (const path of body) {
+ if (!path.isStaticBlock()) continue;
+ const staticBlockPrivateId = generateUid(scope, privateNames);
+ privateNames.add(staticBlockPrivateId);
+ const staticBlockRef = t.privateName(t.identifier(staticBlockPrivateId));
+ let replacement;
+ const blockBody = path.node.body;
+ if (blockBody.length === 1 && t.isExpressionStatement(blockBody[0])) {
+ replacement = t.inheritsComments(blockBody[0].expression, blockBody[0]);
+ } else {
+ replacement = template.expression.ast`(() => { ${blockBody} })()`;
+ }
+ path.replaceWith(t.classPrivateProperty(staticBlockRef, replacement, [], true));
+ }
+ }
+ }
+ };
+});
+exports.default = _default;
+
+//# sourceMappingURL=index.js.map
diff --git a/node_modules/@babel/plugin-transform-class-static-block/lib/index.js.map b/node_modules/@babel/plugin-transform-class-static-block/lib/index.js.map
new file mode 100644
index 00000000..e16bcfcd
--- /dev/null
+++ b/node_modules/@babel/plugin-transform-class-static-block/lib/index.js.map
@@ -0,0 +1 @@
+{"version":3,"names":["_helperPluginUtils","require","_helperCreateClassFeaturesPlugin","generateUid","scope","denyList","name","uid","i","_generateUid","has","_default","declare","types","t","template","assertVersion","inherits","default","pre","enableFeature","file","FEATURES","staticBlocks","visitor","ClassBody","classBody","privateNames","Set","body","get","path","isPrivate","add","node","isStaticBlock","staticBlockPrivateId","staticBlockRef","privateName","identifier","replacement","blockBody","length","isExpressionStatement","inheritsComments","expression","ast","replaceWith","classPrivateProperty","exports"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport type { Scope } from \"@babel/traverse\";\n\nimport {\n enableFeature,\n FEATURES,\n} from \"@babel/helper-create-class-features-plugin\";\n\n/**\n * Generate a uid that is not in `denyList`\n *\n * @param {Scope} scope\n * @param {Set<string>} denyList a deny list that the generated uid should avoid\n * @returns\n */\nfunction generateUid(scope: Scope, denyList: Set<string>) {\n const name = \"\";\n let uid;\n let i = 1;\n do {\n uid = scope._generateUid(name, i);\n i++;\n } while (denyList.has(uid));\n return uid;\n}\n\nexport default declare(({ types: t, template, assertVersion }) => {\n assertVersion(\"^7.12.0\");\n\n return {\n name: \"transform-class-static-block\",\n inherits: USE_ESM\n ? undefined\n : IS_STANDALONE\n ? undefined\n : // eslint-disable-next-line no-restricted-globals\n require(\"@babel/plugin-syntax-class-static-block\").default,\n\n pre() {\n // Enable this in @babel/helper-create-class-features-plugin, so that it\n // can be handled by the private fields and methods transform.\n enableFeature(this.file, FEATURES.staticBlocks, /* loose */ false);\n },\n\n visitor: {\n // Run on ClassBody and not on class so that if @babel/helper-create-class-features-plugin\n // is enabled it can generate optimized output without passing from the intermediate\n // private fields representation.\n ClassBody(classBody) {\n const { scope } = classBody;\n const privateNames = new Set<string>();\n const body = classBody.get(\"body\");\n for (const path of body) {\n if (path.isPrivate()) {\n privateNames.add(path.get(\"key.id\").node.name);\n }\n }\n for (const path of body) {\n if (!path.isStaticBlock()) continue;\n const staticBlockPrivateId = generateUid(scope, privateNames);\n privateNames.add(staticBlockPrivateId);\n const staticBlockRef = t.privateName(\n t.identifier(staticBlockPrivateId),\n );\n\n let replacement;\n const blockBody = path.node.body;\n // We special-case the single expression case to avoid the iife, since\n // it's common.\n if (blockBody.length === 1 && t.isExpressionStatement(blockBody[0])) {\n replacement = t.inheritsComments(\n blockBody[0].expression,\n blockBody[0],\n );\n } else {\n replacement = template.expression.ast`(() => { ${blockBody} })()`;\n }\n\n path.replaceWith(\n t.classPrivateProperty(\n staticBlockRef,\n replacement,\n [],\n /* static */ true,\n ),\n );\n }\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAGA,IAAAC,gCAAA,GAAAD,OAAA;AAYA,SAASE,WAAWA,CAACC,KAAY,EAAEC,QAAqB,EAAE;EACxD,MAAMC,IAAI,GAAG,EAAE;EACf,IAAIC,GAAG;EACP,IAAIC,CAAC,GAAG,CAAC;EACT,GAAG;IACDD,GAAG,GAAGH,KAAK,CAACK,YAAY,CAACH,IAAI,EAAEE,CAAC,CAAC;IACjCA,CAAC,EAAE;EACL,CAAC,QAAQH,QAAQ,CAACK,GAAG,CAACH,GAAG,CAAC;EAC1B,OAAOA,GAAG;AACZ;AAAC,IAAAI,QAAA,GAEc,IAAAC,0BAAO,EAAC,CAAC;EAAEC,KAAK,EAAEC,CAAC;EAAEC,QAAQ;EAAEC;AAAc,CAAC,KAAK;EAChEA,aAAa,CAAC,SAAS,CAAC;EAExB,OAAO;IACLV,IAAI,EAAE,8BAA8B;IACpCW,QAAQ,EAKJhB,OAAO,CAAC,yCAAyC,CAAC,CAACiB,OAAO;IAE9DC,GAAGA,CAAA,EAAG;MAGJ,IAAAC,8CAAa,EAAC,IAAI,CAACC,IAAI,EAAEC,yCAAQ,CAACC,YAAY,EAAc,KAAK,CAAC;IACpE,CAAC;IAEDC,OAAO,EAAE;MAIPC,SAASA,CAACC,SAAS,EAAE;QACnB,MAAM;UAAEtB;QAAM,CAAC,GAAGsB,SAAS;QAC3B,MAAMC,YAAY,GAAG,IAAIC,GAAG,CAAS,CAAC;QACtC,MAAMC,IAAI,GAAGH,SAAS,CAACI,GAAG,CAAC,MAAM,CAAC;QAClC,KAAK,MAAMC,IAAI,IAAIF,IAAI,EAAE;UACvB,IAAIE,IAAI,CAACC,SAAS,CAAC,CAAC,EAAE;YACpBL,YAAY,CAACM,GAAG,CAACF,IAAI,CAACD,GAAG,CAAC,QAAQ,CAAC,CAACI,IAAI,CAAC5B,IAAI,CAAC;UAChD;QACF;QACA,KAAK,MAAMyB,IAAI,IAAIF,IAAI,EAAE;UACvB,IAAI,CAACE,IAAI,CAACI,aAAa,CAAC,CAAC,EAAE;UAC3B,MAAMC,oBAAoB,GAAGjC,WAAW,CAACC,KAAK,EAAEuB,YAAY,CAAC;UAC7DA,YAAY,CAACM,GAAG,CAACG,oBAAoB,CAAC;UACtC,MAAMC,cAAc,GAAGvB,CAAC,CAACwB,WAAW,CAClCxB,CAAC,CAACyB,UAAU,CAACH,oBAAoB,CACnC,CAAC;UAED,IAAII,WAAW;UACf,MAAMC,SAAS,GAAGV,IAAI,CAACG,IAAI,CAACL,IAAI;UAGhC,IAAIY,SAAS,CAACC,MAAM,KAAK,CAAC,IAAI5B,CAAC,CAAC6B,qBAAqB,CAACF,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;YACnED,WAAW,GAAG1B,CAAC,CAAC8B,gBAAgB,CAC9BH,SAAS,CAAC,CAAC,CAAC,CAACI,UAAU,EACvBJ,SAAS,CAAC,CAAC,CACb,CAAC;UACH,CAAC,MAAM;YACLD,WAAW,GAAGzB,QAAQ,CAAC8B,UAAU,CAACC,GAAI,YAAWL,SAAU,OAAM;UACnE;UAEAV,IAAI,CAACgB,WAAW,CACdjC,CAAC,CAACkC,oBAAoB,CACpBX,cAAc,EACdG,WAAW,EACX,EAAE,EACW,IACf,CACF,CAAC;QACH;MACF;IACF;EACF,CAAC;AACH,CAAC,CAAC;AAAAS,OAAA,CAAA/B,OAAA,GAAAP,QAAA"} \ No newline at end of file
diff --git a/node_modules/@babel/plugin-transform-class-static-block/package.json b/node_modules/@babel/plugin-transform-class-static-block/package.json
new file mode 100644
index 00000000..b8063d1e
--- /dev/null
+++ b/node_modules/@babel/plugin-transform-class-static-block/package.json
@@ -0,0 +1,42 @@
+{
+ "name": "@babel/plugin-transform-class-static-block",
+ "version": "7.22.11",
+ "description": "Transform class static blocks",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/babel/babel.git",
+ "directory": "packages/babel-plugin-transform-class-static-block"
+ },
+ "license": "MIT",
+ "publishConfig": {
+ "access": "public"
+ },
+ "main": "./lib/index.js",
+ "exports": {
+ ".": "./lib/index.js",
+ "./package.json": "./package.json"
+ },
+ "keywords": [
+ "babel-plugin"
+ ],
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.22.11",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-class-static-block": "^7.14.5"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.12.0"
+ },
+ "devDependencies": {
+ "@babel/core": "^7.22.11",
+ "@babel/helper-plugin-test-runner": "^7.22.5",
+ "@babel/traverse": "^7.22.11",
+ "@babel/types": "^7.22.11"
+ },
+ "homepage": "https://babel.dev/docs/en/next/babel-plugin-transform-class-static-block",
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "author": "The Babel Team (https://babel.dev/team)",
+ "type": "commonjs"
+} \ No newline at end of file