Browse Source

add some reposity

night-cherry 3 tuần trước cách đây
mục cha
commit
54459060d1
100 tập tin đã thay đổi với 11555 bổ sung295 xóa
  1. 16 1
      node_modules/.bin/parser
  2. 16 0
      node_modules/.bin/regjsparser
  3. 17 0
      node_modules/.bin/regjsparser.cmd
  4. 28 0
      node_modules/.bin/regjsparser.ps1
  5. 1370 167
      node_modules/.package-lock.json
  6. 1 13
      node_modules/@babel/compat-data/data/plugin-bugfixes.json
  7. 4 3
      node_modules/@babel/compat-data/data/plugins.json
  8. 1 0
      node_modules/@babel/compat-data/native-modules.js
  9. 1 0
      node_modules/@babel/compat-data/overlapping-plugins.js
  10. 5 5
      node_modules/@babel/compat-data/package.json
  11. 1 0
      node_modules/@babel/compat-data/plugin-bugfixes.js
  12. 1 0
      node_modules/@babel/compat-data/plugins.js
  13. 0 68
      node_modules/@babel/core/cjs-proxy.cjs
  14. 0 0
      node_modules/@babel/core/lib/config/config-chain.js.map
  15. 0 0
      node_modules/@babel/core/lib/config/files/configuration.js.map
  16. 0 0
      node_modules/@babel/core/lib/config/files/index-browser.js.map
  17. 0 0
      node_modules/@babel/core/lib/config/files/module-types.js.map
  18. 0 0
      node_modules/@babel/core/lib/config/files/package.js.map
  19. 0 0
      node_modules/@babel/core/lib/config/files/plugins.js.map
  20. 0 0
      node_modules/@babel/core/lib/config/files/utils.js.map
  21. 0 0
      node_modules/@babel/core/lib/config/item.js.map
  22. 0 0
      node_modules/@babel/core/lib/config/partial.js.map
  23. 0 0
      node_modules/@babel/core/lib/config/pattern-to-regex.js.map
  24. 0 0
      node_modules/@babel/core/lib/config/resolve-targets-browser.js.map
  25. 0 0
      node_modules/@babel/core/lib/config/resolve-targets.js.map
  26. 1 1
      node_modules/@babel/core/lib/gensync-utils/fs.js.map
  27. 1 2
      node_modules/@babel/core/lib/index.js
  28. 0 0
      node_modules/@babel/core/lib/index.js.map
  29. 1 1
      node_modules/@babel/core/lib/transform-file-browser.js.map
  30. 0 0
      node_modules/@babel/core/lib/transformation/normalize-file.js.map
  31. 0 0
      node_modules/@babel/core/lib/transformation/normalize-opts.js.map
  32. 3 3
      node_modules/@babel/core/node_modules/@babel/code-frame/package.json
  33. 16 16
      node_modules/@babel/core/package.json
  34. 2 0
      node_modules/@babel/core/src/config/files/index-browser.ts
  35. 2 0
      node_modules/@babel/core/src/config/resolve-targets-browser.ts
  36. 1 1
      node_modules/@babel/core/src/config/resolve-targets.ts
  37. 2 0
      node_modules/@babel/core/src/transform-file-browser.ts
  38. 4 0
      node_modules/@babel/generator/lib/generators/typescript.js
  39. 0 0
      node_modules/@babel/generator/lib/generators/typescript.js.map
  40. 6 6
      node_modules/@babel/generator/package.json
  41. 22 0
      node_modules/@babel/helper-annotate-as-pure/LICENSE
  42. 19 0
      node_modules/@babel/helper-annotate-as-pure/README.md
  43. 23 0
      node_modules/@babel/helper-annotate-as-pure/lib/index.js
  44. 1 0
      node_modules/@babel/helper-annotate-as-pure/lib/index.js.map
  45. 27 0
      node_modules/@babel/helper-annotate-as-pure/package.json
  46. 2 2
      node_modules/@babel/helper-compilation-targets/lib/filter-items.js
  47. 0 0
      node_modules/@babel/helper-compilation-targets/lib/filter-items.js.map
  48. 2 2
      node_modules/@babel/helper-compilation-targets/lib/index.js
  49. 0 0
      node_modules/@babel/helper-compilation-targets/lib/index.js.map
  50. 4 4
      node_modules/@babel/helper-compilation-targets/package.json
  51. 22 0
      node_modules/@babel/helper-create-class-features-plugin/LICENSE
  52. 19 0
      node_modules/@babel/helper-create-class-features-plugin/README.md
  53. 127 0
      node_modules/@babel/helper-create-class-features-plugin/lib/decorators-2018-09.js
  54. 0 0
      node_modules/@babel/helper-create-class-features-plugin/lib/decorators-2018-09.js.map
  55. 1321 0
      node_modules/@babel/helper-create-class-features-plugin/lib/decorators.js
  56. 0 0
      node_modules/@babel/helper-create-class-features-plugin/lib/decorators.js.map
  57. 147 0
      node_modules/@babel/helper-create-class-features-plugin/lib/features.js
  58. 0 0
      node_modules/@babel/helper-create-class-features-plugin/lib/features.js.map
  59. 1052 0
      node_modules/@babel/helper-create-class-features-plugin/lib/fields.js
  60. 0 0
      node_modules/@babel/helper-create-class-features-plugin/lib/fields.js.map
  61. 249 0
      node_modules/@babel/helper-create-class-features-plugin/lib/index.js
  62. 0 0
      node_modules/@babel/helper-create-class-features-plugin/lib/index.js.map
  63. 136 0
      node_modules/@babel/helper-create-class-features-plugin/lib/misc.js
  64. 0 0
      node_modules/@babel/helper-create-class-features-plugin/lib/misc.js.map
  65. 13 0
      node_modules/@babel/helper-create-class-features-plugin/lib/typescript.js
  66. 1 0
      node_modules/@babel/helper-create-class-features-plugin/lib/typescript.js.map
  67. 16 0
      node_modules/@babel/helper-create-class-features-plugin/node_modules/.bin/semver
  68. 17 0
      node_modules/@babel/helper-create-class-features-plugin/node_modules/.bin/semver.cmd
  69. 28 0
      node_modules/@babel/helper-create-class-features-plugin/node_modules/.bin/semver.ps1
  70. 15 0
      node_modules/@babel/helper-create-class-features-plugin/node_modules/semver/LICENSE
  71. 443 0
      node_modules/@babel/helper-create-class-features-plugin/node_modules/semver/README.md
  72. 174 0
      node_modules/@babel/helper-create-class-features-plugin/node_modules/semver/bin/semver.js
  73. 38 0
      node_modules/@babel/helper-create-class-features-plugin/node_modules/semver/package.json
  74. 16 0
      node_modules/@babel/helper-create-class-features-plugin/node_modules/semver/range.bnf
  75. 1643 0
      node_modules/@babel/helper-create-class-features-plugin/node_modules/semver/semver.js
  76. 43 0
      node_modules/@babel/helper-create-class-features-plugin/package.json
  77. 22 0
      node_modules/@babel/helper-create-regexp-features-plugin/LICENSE
  78. 19 0
      node_modules/@babel/helper-create-regexp-features-plugin/README.md
  79. 30 0
      node_modules/@babel/helper-create-regexp-features-plugin/lib/features.js
  80. 0 0
      node_modules/@babel/helper-create-regexp-features-plugin/lib/features.js.map
  81. 116 0
      node_modules/@babel/helper-create-regexp-features-plugin/lib/index.js
  82. 0 0
      node_modules/@babel/helper-create-regexp-features-plugin/lib/index.js.map
  83. 71 0
      node_modules/@babel/helper-create-regexp-features-plugin/lib/util.js
  84. 0 0
      node_modules/@babel/helper-create-regexp-features-plugin/lib/util.js.map
  85. 16 0
      node_modules/@babel/helper-create-regexp-features-plugin/node_modules/.bin/semver
  86. 17 0
      node_modules/@babel/helper-create-regexp-features-plugin/node_modules/.bin/semver.cmd
  87. 28 0
      node_modules/@babel/helper-create-regexp-features-plugin/node_modules/.bin/semver.ps1
  88. 15 0
      node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver/LICENSE
  89. 443 0
      node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver/README.md
  90. 174 0
      node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver/bin/semver.js
  91. 38 0
      node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver/package.json
  92. 16 0
      node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver/range.bnf
  93. 1643 0
      node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver/semver.js
  94. 36 0
      node_modules/@babel/helper-create-regexp-features-plugin/package.json
  95. 22 0
      node_modules/@babel/helper-define-polyfill-provider/LICENSE
  96. 15 0
      node_modules/@babel/helper-define-polyfill-provider/README.md
  97. 835 0
      node_modules/@babel/helper-define-polyfill-provider/esm/index.browser.mjs
  98. 0 0
      node_modules/@babel/helper-define-polyfill-provider/esm/index.browser.mjs.map
  99. 879 0
      node_modules/@babel/helper-define-polyfill-provider/esm/index.node.mjs
  100. 0 0
      node_modules/@babel/helper-define-polyfill-provider/esm/index.node.mjs.map

+ 16 - 1
node_modules/.bin/parser

@@ -1 +1,16 @@
-../@babel/parser/bin/babel-parser.js
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+    *CYGWIN*|*MINGW*|*MSYS*)
+        if command -v cygpath > /dev/null 2>&1; then
+            basedir=`cygpath -w "$basedir"`
+        fi
+    ;;
+esac
+
+if [ -x "$basedir/node" ]; then
+  exec "$basedir/node"  "$basedir/../@babel/parser/bin/babel-parser.js" "$@"
+else 
+  exec node  "$basedir/../@babel/parser/bin/babel-parser.js" "$@"
+fi

+ 16 - 0
node_modules/.bin/regjsparser

@@ -0,0 +1,16 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+    *CYGWIN*|*MINGW*|*MSYS*)
+        if command -v cygpath > /dev/null 2>&1; then
+            basedir=`cygpath -w "$basedir"`
+        fi
+    ;;
+esac
+
+if [ -x "$basedir/node" ]; then
+  exec "$basedir/node"  "$basedir/../regjsparser/bin/parser" "$@"
+else 
+  exec node  "$basedir/../regjsparser/bin/parser" "$@"
+fi

+ 17 - 0
node_modules/.bin/regjsparser.cmd

@@ -0,0 +1,17 @@
+@ECHO off
+GOTO start
+:find_dp0
+SET dp0=%~dp0
+EXIT /b
+:start
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+  SET "_prog=%dp0%\node.exe"
+) ELSE (
+  SET "_prog=node"
+  SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\regjsparser\bin\parser" %*

+ 28 - 0
node_modules/.bin/regjsparser.ps1

@@ -0,0 +1,28 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+  # Fix case when both the Windows and Linux builds of Node
+  # are installed in the same directory
+  $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+  # Support pipeline input
+  if ($MyInvocation.ExpectingInput) {
+    $input | & "$basedir/node$exe"  "$basedir/../regjsparser/bin/parser" $args
+  } else {
+    & "$basedir/node$exe"  "$basedir/../regjsparser/bin/parser" $args
+  }
+  $ret=$LASTEXITCODE
+} else {
+  # Support pipeline input
+  if ($MyInvocation.ExpectingInput) {
+    $input | & "node$exe"  "$basedir/../regjsparser/bin/parser" $args
+  } else {
+    & "node$exe"  "$basedir/../regjsparser/bin/parser" $args
+  }
+  $ret=$LASTEXITCODE
+}
+exit $ret

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1370 - 167
node_modules/.package-lock.json


+ 1 - 13
node_modules/@babel/compat-data/data/plugin-bugfixes.json

@@ -107,18 +107,6 @@
     "opera_mobile": "64",
     "electron": "13.0"
   },
-  "bugfix/transform-firefox-class-in-computed-class-key": {
-    "chrome": "74",
-    "opera": "62",
-    "edge": "79",
-    "safari": "16",
-    "node": "12",
-    "deno": "1",
-    "ios": "16",
-    "samsung": "11",
-    "opera_mobile": "53",
-    "electron": "6.0"
-  },
   "transform-optional-chaining": {
     "chrome": "80",
     "opera": "67",
@@ -149,7 +137,7 @@
     "chrome": "49",
     "opera": "36",
     "edge": "15",
-    "firefox": "53",
+    "firefox": "52",
     "safari": "10",
     "node": "6",
     "deno": "1",

+ 4 - 3
node_modules/@babel/compat-data/data/plugins.json

@@ -46,6 +46,7 @@
     "chrome": "74",
     "opera": "62",
     "edge": "79",
+    "firefox": "126",
     "safari": "16",
     "node": "12",
     "deno": "1",
@@ -335,7 +336,7 @@
     "chrome": "49",
     "opera": "36",
     "edge": "18",
-    "firefox": "53",
+    "firefox": "52",
     "safari": "16.3",
     "node": "6",
     "deno": "1",
@@ -798,7 +799,7 @@
     "deno": "1.0",
     "edge": "79",
     "firefox": "80",
-    "node": "13.2",
+    "node": "13.2.0",
     "opera": "60",
     "opera_mobile": "51",
     "safari": "14.1",
@@ -812,7 +813,7 @@
     "deno": "1.0",
     "edge": "79",
     "firefox": "80",
-    "node": "13.2",
+    "node": "13.2.0",
     "opera": "60",
     "opera_mobile": "51",
     "safari": "14.1",

+ 1 - 0
node_modules/@babel/compat-data/native-modules.js

@@ -1 +1,2 @@
+// Todo (Babel 8): remove this file, in Babel 8 users import the .json directly
 module.exports = require("./data/native-modules.json");

+ 1 - 0
node_modules/@babel/compat-data/overlapping-plugins.js

@@ -1 +1,2 @@
+// Todo (Babel 8): remove this file, in Babel 8 users import the .json directly
 module.exports = require("./data/overlapping-plugins.json");

+ 5 - 5
node_modules/@babel/compat-data/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@babel/compat-data",
-  "version": "7.26.8",
+  "version": "7.27.2",
   "author": "The Babel Team (https://babel.dev/team)",
   "license": "MIT",
   "description": "The compat-data to determine required Babel plugins",
@@ -21,7 +21,7 @@
     "./plugin-bugfixes": "./plugin-bugfixes.js"
   },
   "scripts": {
-    "build-data": "./scripts/download-compat-table.sh && node ./scripts/build-data.js && node ./scripts/build-modules-support.js && node ./scripts/build-bugfixes-targets.js"
+    "build-data": "./scripts/download-compat-table.sh && node ./scripts/build-data.mjs && node ./scripts/build-modules-support.mjs && node ./scripts/build-bugfixes-targets.mjs"
   },
   "keywords": [
     "babel",
@@ -29,9 +29,9 @@
     "compat-data"
   ],
   "devDependencies": {
-    "@mdn/browser-compat-data": "^5.5.36",
-    "core-js-compat": "^3.40.0",
-    "electron-to-chromium": "^1.4.816"
+    "@mdn/browser-compat-data": "^6.0.8",
+    "core-js-compat": "^3.41.0",
+    "electron-to-chromium": "^1.5.140"
   },
   "engines": {
     "node": ">=6.9.0"

+ 1 - 0
node_modules/@babel/compat-data/plugin-bugfixes.js

@@ -1 +1,2 @@
+// Todo (Babel 8): remove this file, in Babel 8 users import the .json directly
 module.exports = require("./data/plugin-bugfixes.json");

+ 1 - 0
node_modules/@babel/compat-data/plugins.js

@@ -1 +1,2 @@
+// Todo (Babel 8): remove this file, in Babel 8 users import the .json directly
 module.exports = require("./data/plugins.json");

+ 0 - 68
node_modules/@babel/core/cjs-proxy.cjs

@@ -1,68 +0,0 @@
-"use strict";
-
-const babelP = import("./lib/index.js");
-let babel = null;
-Object.defineProperty(exports, "__ initialize @babel/core cjs proxy __", {
-  set(val) {
-    babel = val;
-  },
-});
-
-exports.version = require("./package.json").version;
-
-const functionNames = [
-  "createConfigItem",
-  "loadPartialConfig",
-  "loadOptions",
-  "transform",
-  "transformFile",
-  "transformFromAst",
-  "parse",
-];
-const propertyNames = [
-  "buildExternalHelpers",
-  "types",
-  "tokTypes",
-  "traverse",
-  "template",
-];
-
-for (const name of functionNames) {
-  exports[name] = function (...args) {
-    if (
-      process.env.BABEL_8_BREAKING &&
-      typeof args[args.length - 1] !== "function"
-    ) {
-      throw new Error(
-        `Starting from Babel 8.0.0, the '${name}' function expects a callback. If you need to call it synchronously, please use '${name}Sync'.`
-      );
-    }
-
-    babelP.then(babel => {
-      babel[name](...args);
-    });
-  };
-  exports[`${name}Async`] = function (...args) {
-    return babelP.then(babel => babel[`${name}Async`](...args));
-  };
-  exports[`${name}Sync`] = function (...args) {
-    if (!babel) throw notLoadedError(`${name}Sync`, "callable");
-    return babel[`${name}Sync`](...args);
-  };
-}
-
-for (const name of propertyNames) {
-  Object.defineProperty(exports, name, {
-    get() {
-      if (!babel) throw notLoadedError(name, "accessible");
-      return babel[name];
-    },
-  });
-}
-
-function notLoadedError(name, keyword) {
-  return new Error(
-    `The \`${name}\` export of @babel/core is only ${keyword}` +
-      ` from the CommonJS version after that the ESM version is loaded.`
-  );
-}

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
node_modules/@babel/core/lib/config/config-chain.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
node_modules/@babel/core/lib/config/files/configuration.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
node_modules/@babel/core/lib/config/files/index-browser.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
node_modules/@babel/core/lib/config/files/module-types.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
node_modules/@babel/core/lib/config/files/package.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
node_modules/@babel/core/lib/config/files/plugins.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
node_modules/@babel/core/lib/config/files/utils.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
node_modules/@babel/core/lib/config/item.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
node_modules/@babel/core/lib/config/partial.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
node_modules/@babel/core/lib/config/pattern-to-regex.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
node_modules/@babel/core/lib/config/resolve-targets-browser.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
node_modules/@babel/core/lib/config/resolve-targets.js.map


+ 1 - 1
node_modules/@babel/core/lib/gensync-utils/fs.js.map

@@ -1 +1 @@
-{"version":3,"names":["_fs","data","require","_gensync","readFile","exports","gensync","sync","fs","readFileSync","errback","stat","statSync"],"sources":["../../src/gensync-utils/fs.ts"],"sourcesContent":["import fs from \"fs\";\nimport gensync from \"gensync\";\n\nexport const readFile = gensync<[filepath: string, encoding: \"utf8\"], string>({\n  sync: fs.readFileSync,\n  errback: fs.readFile,\n});\n\nexport const stat = gensync({\n  sync: fs.statSync,\n  errback: fs.stat,\n});\n"],"mappings":";;;;;;AAAA,SAAAA,IAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,GAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,SAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,QAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,MAAMG,QAAQ,GAAAC,OAAA,CAAAD,QAAA,GAAGE,SAAMA,CAAC,CAA+C;EAC5EC,IAAI,EAAEC,IAACA,CAAC,CAACC,YAAY;EACrBC,OAAO,EAAEF,IAACA,CAAC,CAACJ;AACd,CAAC,CAAC;AAEK,MAAMO,IAAI,GAAAN,OAAA,CAAAM,IAAA,GAAGL,SAAMA,CAAC,CAAC;EAC1BC,IAAI,EAAEC,IAACA,CAAC,CAACI,QAAQ;EACjBF,OAAO,EAAEF,IAACA,CAAC,CAACG;AACd,CAAC,CAAC;AAAC","ignoreList":[]}
+{"version":3,"names":["_fs","data","require","_gensync","readFile","exports","gensync","sync","fs","readFileSync","errback","stat","statSync"],"sources":["../../src/gensync-utils/fs.ts"],"sourcesContent":["import fs from \"node:fs\";\nimport gensync from \"gensync\";\n\nexport const readFile = gensync<[filepath: string, encoding: \"utf8\"], string>({\n  sync: fs.readFileSync,\n  errback: fs.readFile,\n});\n\nexport const stat = gensync({\n  sync: fs.statSync,\n  errback: fs.stat,\n});\n"],"mappings":";;;;;;AAAA,SAAAA,IAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,GAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,SAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,QAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,MAAMG,QAAQ,GAAAC,OAAA,CAAAD,QAAA,GAAGE,SAAMA,CAAC,CAA+C;EAC5EC,IAAI,EAAEC,IAACA,CAAC,CAACC,YAAY;EACrBC,OAAO,EAAEF,IAACA,CAAC,CAACJ;AACd,CAAC,CAAC;AAEK,MAAMO,IAAI,GAAAN,OAAA,CAAAM,IAAA,GAAGL,SAAMA,CAAC,CAAC;EAC1BC,IAAI,EAAEC,IAACA,CAAC,CAACI,QAAQ;EACjBF,OAAO,EAAEF,IAACA,CAAC,CAACG;AACd,CAAC,CAAC;AAAC","ignoreList":[]}

+ 1 - 2
node_modules/@babel/core/lib/index.js

@@ -212,13 +212,12 @@ var _transformFile = require("./transform-file.js");
 var _transformAst = require("./transform-ast.js");
 var _parse = require("./parse.js");
 ;
-const version = exports.version = "7.26.10";
+const version = exports.version = "7.27.1";
 const resolvePlugin = (name, dirname) => resolvers.resolvePlugin(name, dirname, false).filepath;
 exports.resolvePlugin = resolvePlugin;
 const resolvePreset = (name, dirname) => resolvers.resolvePreset(name, dirname, false).filepath;
 exports.resolvePreset = resolvePreset;
 const DEFAULT_EXTENSIONS = exports.DEFAULT_EXTENSIONS = Object.freeze([".js", ".jsx", ".es6", ".es", ".mjs", ".cjs"]);
-;
 {
   exports.OptionManager = class OptionManager {
     init(opts) {

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
node_modules/@babel/core/lib/index.js.map


+ 1 - 1
node_modules/@babel/core/lib/transform-file-browser.js.map

@@ -1 +1 @@
-{"version":3,"names":["transformFile","exports","filename","opts","callback","Error","transformFileSync","transformFileAsync","Promise","reject"],"sources":["../src/transform-file-browser.ts"],"sourcesContent":["// duplicated from transform-file so we do not have to import anything here\ntype TransformFile = {\n  (filename: string, callback: (error: Error, file: null) => void): void;\n  (\n    filename: string,\n    opts: any,\n    callback: (error: Error, file: null) => void,\n  ): void;\n};\n\nexport const transformFile: TransformFile = function transformFile(\n  filename,\n  opts,\n  callback?: (error: Error, file: null) => void,\n) {\n  if (typeof opts === \"function\") {\n    callback = opts;\n  }\n\n  callback(new Error(\"Transforming files is not supported in browsers\"), null);\n};\n\nexport function transformFileSync(): never {\n  throw new Error(\"Transforming files is not supported in browsers\");\n}\n\nexport function transformFileAsync() {\n  return Promise.reject(\n    new Error(\"Transforming files is not supported in browsers\"),\n  );\n}\n"],"mappings":";;;;;;;;AAUO,MAAMA,aAA4B,GAAAC,OAAA,CAAAD,aAAA,GAAG,SAASA,aAAaA,CAChEE,QAAQ,EACRC,IAAI,EACJC,QAA6C,EAC7C;EACA,IAAI,OAAOD,IAAI,KAAK,UAAU,EAAE;IAC9BC,QAAQ,GAAGD,IAAI;EACjB;EAEAC,QAAQ,CAAC,IAAIC,KAAK,CAAC,iDAAiD,CAAC,EAAE,IAAI,CAAC;AAC9E,CAAC;AAEM,SAASC,iBAAiBA,CAAA,EAAU;EACzC,MAAM,IAAID,KAAK,CAAC,iDAAiD,CAAC;AACpE;AAEO,SAASE,kBAAkBA,CAAA,EAAG;EACnC,OAAOC,OAAO,CAACC,MAAM,CACnB,IAAIJ,KAAK,CAAC,iDAAiD,CAC7D,CAAC;AACH;AAAC","ignoreList":[]}
+{"version":3,"names":["transformFile","exports","filename","opts","callback","Error","transformFileSync","transformFileAsync","Promise","reject"],"sources":["../src/transform-file-browser.ts"],"sourcesContent":["/* c8 ignore start */\n\n// duplicated from transform-file so we do not have to import anything here\ntype TransformFile = {\n  (filename: string, callback: (error: Error, file: null) => void): void;\n  (\n    filename: string,\n    opts: any,\n    callback: (error: Error, file: null) => void,\n  ): void;\n};\n\nexport const transformFile: TransformFile = function transformFile(\n  filename,\n  opts,\n  callback?: (error: Error, file: null) => void,\n) {\n  if (typeof opts === \"function\") {\n    callback = opts;\n  }\n\n  callback(new Error(\"Transforming files is not supported in browsers\"), null);\n};\n\nexport function transformFileSync(): never {\n  throw new Error(\"Transforming files is not supported in browsers\");\n}\n\nexport function transformFileAsync() {\n  return Promise.reject(\n    new Error(\"Transforming files is not supported in browsers\"),\n  );\n}\n"],"mappings":";;;;;;;;AAYO,MAAMA,aAA4B,GAAAC,OAAA,CAAAD,aAAA,GAAG,SAASA,aAAaA,CAChEE,QAAQ,EACRC,IAAI,EACJC,QAA6C,EAC7C;EACA,IAAI,OAAOD,IAAI,KAAK,UAAU,EAAE;IAC9BC,QAAQ,GAAGD,IAAI;EACjB;EAEAC,QAAQ,CAAC,IAAIC,KAAK,CAAC,iDAAiD,CAAC,EAAE,IAAI,CAAC;AAC9E,CAAC;AAEM,SAASC,iBAAiBA,CAAA,EAAU;EACzC,MAAM,IAAID,KAAK,CAAC,iDAAiD,CAAC;AACpE;AAEO,SAASE,kBAAkBA,CAAA,EAAG;EACnC,OAAOC,OAAO,CAACC,MAAM,CACnB,IAAIJ,KAAK,CAAC,iDAAiD,CAC7D,CAAC;AACH;AAAC","ignoreList":[]}

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
node_modules/@babel/core/lib/transformation/normalize-file.js.map


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
node_modules/@babel/core/lib/transformation/normalize-opts.js.map


+ 3 - 3
node_modules/@babel/core/node_modules/@babel/code-frame/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@babel/code-frame",
-  "version": "7.26.2",
+  "version": "7.27.1",
   "description": "Generate errors that contain a code frame that point to source locations.",
   "author": "The Babel Team (https://babel.dev/team)",
   "homepage": "https://babel.dev/docs/en/next/babel-code-frame",
@@ -16,9 +16,9 @@
   },
   "main": "./lib/index.js",
   "dependencies": {
-    "@babel/helper-validator-identifier": "^7.25.9",
+    "@babel/helper-validator-identifier": "^7.27.1",
     "js-tokens": "^4.0.0",
-    "picocolors": "^1.0.0"
+    "picocolors": "^1.1.1"
   },
   "devDependencies": {
     "import-meta-resolve": "^4.1.0",

+ 16 - 16
node_modules/@babel/core/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@babel/core",
-  "version": "7.26.10",
+  "version": "7.27.1",
   "description": "Babel compiler core.",
   "main": "./lib/index.js",
   "author": "The Babel Team (https://babel.dev/team)",
@@ -47,15 +47,15 @@
   },
   "dependencies": {
     "@ampproject/remapping": "^2.2.0",
-    "@babel/code-frame": "^7.26.2",
-    "@babel/generator": "^7.26.10",
-    "@babel/helper-compilation-targets": "^7.26.5",
-    "@babel/helper-module-transforms": "^7.26.0",
-    "@babel/helpers": "^7.26.10",
-    "@babel/parser": "^7.26.10",
-    "@babel/template": "^7.26.9",
-    "@babel/traverse": "^7.26.10",
-    "@babel/types": "^7.26.10",
+    "@babel/code-frame": "^7.27.1",
+    "@babel/generator": "^7.27.1",
+    "@babel/helper-compilation-targets": "^7.27.1",
+    "@babel/helper-module-transforms": "^7.27.1",
+    "@babel/helpers": "^7.27.1",
+    "@babel/parser": "^7.27.1",
+    "@babel/template": "^7.27.1",
+    "@babel/traverse": "^7.27.1",
+    "@babel/types": "^7.27.1",
     "convert-source-map": "^2.0.0",
     "debug": "^4.1.0",
     "gensync": "^1.0.0-beta.2",
@@ -63,12 +63,12 @@
     "semver": "^6.3.1"
   },
   "devDependencies": {
-    "@babel/helper-transform-fixture-test-runner": "^7.26.5",
-    "@babel/plugin-syntax-flow": "^7.26.0",
-    "@babel/plugin-transform-flow-strip-types": "^7.26.5",
-    "@babel/plugin-transform-modules-commonjs": "^7.26.3",
-    "@babel/preset-env": "^7.26.9",
-    "@babel/preset-typescript": "^7.26.0",
+    "@babel/helper-transform-fixture-test-runner": "^7.27.1",
+    "@babel/plugin-syntax-flow": "^7.27.1",
+    "@babel/plugin-transform-flow-strip-types": "^7.27.1",
+    "@babel/plugin-transform-modules-commonjs": "^7.27.1",
+    "@babel/preset-env": "^7.27.1",
+    "@babel/preset-typescript": "^7.27.1",
     "@jridgewell/trace-mapping": "^0.3.25",
     "@types/convert-source-map": "^2.0.0",
     "@types/debug": "^4.1.0",

+ 2 - 0
node_modules/@babel/core/src/config/files/index-browser.ts

@@ -1,3 +1,5 @@
+/* c8 ignore start */
+
 import type { Handler } from "gensync";
 
 import type {

+ 2 - 0
node_modules/@babel/core/src/config/resolve-targets-browser.ts

@@ -1,3 +1,5 @@
+/* c8 ignore start */
+
 import type { ValidatedOptions } from "./validation/options.ts";
 import getTargets, {
   type InputTargets,

+ 1 - 1
node_modules/@babel/core/src/config/resolve-targets.ts

@@ -6,7 +6,7 @@ type nodeType = typeof import("./resolve-targets");
 ({}) as any as browserType as nodeType;
 
 import type { ValidatedOptions } from "./validation/options.ts";
-import path from "path";
+import path from "node:path";
 import getTargets, {
   type InputTargets,
 } from "@babel/helper-compilation-targets";

+ 2 - 0
node_modules/@babel/core/src/transform-file-browser.ts

@@ -1,3 +1,5 @@
+/* c8 ignore start */
+
 // duplicated from transform-file so we do not have to import anything here
 type TransformFile = {
   (filename: string, callback: (error: Error, file: null) => void): void;

+ 4 - 0
node_modules/@babel/generator/lib/generators/typescript.js

@@ -89,6 +89,10 @@ function TSTypeParameterInstantiation(node, parent) {
   this.tokenChar(62);
 }
 function TSTypeParameter(node) {
+  if (node.const) {
+    this.word("const");
+    this.space();
+  }
   if (node.in) {
     this.word("in");
     this.space();

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
node_modules/@babel/generator/lib/generators/typescript.js.map


+ 6 - 6
node_modules/@babel/generator/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@babel/generator",
-  "version": "7.27.0",
+  "version": "7.27.1",
   "description": "Turns an AST into code.",
   "author": "The Babel Team (https://babel.dev/team)",
   "license": "MIT",
@@ -19,16 +19,16 @@
     "lib"
   ],
   "dependencies": {
-    "@babel/parser": "^7.27.0",
-    "@babel/types": "^7.27.0",
+    "@babel/parser": "^7.27.1",
+    "@babel/types": "^7.27.1",
     "@jridgewell/gen-mapping": "^0.3.5",
     "@jridgewell/trace-mapping": "^0.3.25",
     "jsesc": "^3.0.2"
   },
   "devDependencies": {
-    "@babel/core": "^7.26.10",
-    "@babel/helper-fixtures": "^7.26.0",
-    "@babel/plugin-transform-typescript": "^7.27.0",
+    "@babel/core": "^7.27.1",
+    "@babel/helper-fixtures": "^7.27.1",
+    "@babel/plugin-transform-typescript": "^7.27.1",
     "@jridgewell/sourcemap-codec": "^1.4.15",
     "@types/jsesc": "^2.5.0",
     "charcodes": "^0.2.0"

+ 22 - 0
node_modules/@babel/helper-annotate-as-pure/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.

+ 19 - 0
node_modules/@babel/helper-annotate-as-pure/README.md

@@ -0,0 +1,19 @@
+# @babel/helper-annotate-as-pure
+
+> Helper function to annotate paths and nodes with #__PURE__ comment
+
+See our website [@babel/helper-annotate-as-pure](https://babeljs.io/docs/babel-helper-annotate-as-pure) for more information.
+
+## Install
+
+Using npm:
+
+```sh
+npm install --save @babel/helper-annotate-as-pure
+```
+
+or using yarn:
+
+```sh
+yarn add @babel/helper-annotate-as-pure
+```

+ 23 - 0
node_modules/@babel/helper-annotate-as-pure/lib/index.js

@@ -0,0 +1,23 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = annotateAsPure;
+var _t = require("@babel/types");
+const {
+  addComment
+} = _t;
+const PURE_ANNOTATION = "#__PURE__";
+const isPureAnnotated = ({
+  leadingComments
+}) => !!leadingComments && leadingComments.some(comment => /[@#]__PURE__/.test(comment.value));
+function annotateAsPure(pathOrNode) {
+  const node = pathOrNode["node"] || pathOrNode;
+  if (isPureAnnotated(node)) {
+    return;
+  }
+  addComment(node, "leading", PURE_ANNOTATION);
+}
+
+//# sourceMappingURL=index.js.map

+ 1 - 0
node_modules/@babel/helper-annotate-as-pure/lib/index.js.map

@@ -0,0 +1 @@
+{"version":3,"names":["_t","require","addComment","PURE_ANNOTATION","isPureAnnotated","leadingComments","some","comment","test","value","annotateAsPure","pathOrNode","node"],"sources":["../src/index.ts"],"sourcesContent":["import { addComment, type Node } from \"@babel/types\";\n\nconst PURE_ANNOTATION = \"#__PURE__\";\n\nconst isPureAnnotated = ({ leadingComments }: Node): boolean =>\n  !!leadingComments &&\n  leadingComments.some(comment => /[@#]__PURE__/.test(comment.value));\n\nexport default function annotateAsPure(\n  pathOrNode: Node | { node: Node },\n): void {\n  const node =\n    // @ts-expect-error Node will not have `node` property\n    (pathOrNode[\"node\"] || pathOrNode) as Node;\n  if (isPureAnnotated(node)) {\n    return;\n  }\n  addComment(node, \"leading\", PURE_ANNOTATION);\n}\n"],"mappings":";;;;;;AAAA,IAAAA,EAAA,GAAAC,OAAA;AAAqD;EAA5CC;AAAU,IAAAF,EAAA;AAEnB,MAAMG,eAAe,GAAG,WAAW;AAEnC,MAAMC,eAAe,GAAGA,CAAC;EAAEC;AAAsB,CAAC,KAChD,CAAC,CAACA,eAAe,IACjBA,eAAe,CAACC,IAAI,CAACC,OAAO,IAAI,cAAc,CAACC,IAAI,CAACD,OAAO,CAACE,KAAK,CAAC,CAAC;AAEtD,SAASC,cAAcA,CACpCC,UAAiC,EAC3B;EACN,MAAMC,IAAI,GAEPD,UAAU,CAAC,MAAM,CAAC,IAAIA,UAAmB;EAC5C,IAAIP,eAAe,CAACQ,IAAI,CAAC,EAAE;IACzB;EACF;EACAV,UAAU,CAACU,IAAI,EAAE,SAAS,EAAET,eAAe,CAAC;AAC9C","ignoreList":[]}

+ 27 - 0
node_modules/@babel/helper-annotate-as-pure/package.json

@@ -0,0 +1,27 @@
+{
+  "name": "@babel/helper-annotate-as-pure",
+  "version": "7.27.1",
+  "description": "Helper function to annotate paths and nodes with #__PURE__ comment",
+  "repository": {
+    "type": "git",
+    "url": "https://github.com/babel/babel.git",
+    "directory": "packages/babel-helper-annotate-as-pure"
+  },
+  "homepage": "https://babel.dev/docs/en/next/babel-helper-annotate-as-pure",
+  "license": "MIT",
+  "publishConfig": {
+    "access": "public"
+  },
+  "main": "./lib/index.js",
+  "dependencies": {
+    "@babel/types": "^7.27.1"
+  },
+  "devDependencies": {
+    "@babel/traverse": "^7.27.1"
+  },
+  "engines": {
+    "node": ">=6.9.0"
+  },
+  "author": "The Babel Team (https://babel.dev/team)",
+  "type": "commonjs"
+}

+ 2 - 2
node_modules/@babel/helper-compilation-targets/lib/filter-items.js

@@ -7,8 +7,8 @@ exports.default = filterItems;
 exports.isRequired = isRequired;
 exports.targetsSupported = targetsSupported;
 var _semver = require("semver");
-var _plugins = require("@babel/compat-data/plugins");
 var _utils = require("./utils.js");
+const pluginsCompatData = require("@babel/compat-data/plugins");
 function targetsSupported(target, support) {
   const targetEnvironments = Object.keys(target);
   if (targetEnvironments.length === 0) {
@@ -34,7 +34,7 @@ function targetsSupported(target, support) {
   return unsupportedEnvironments.length === 0;
 }
 function isRequired(name, targets, {
-  compatData = _plugins,
+  compatData = pluginsCompatData,
   includes,
   excludes
 } = {}) {

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
node_modules/@babel/helper-compilation-targets/lib/filter-items.js.map


+ 2 - 2
node_modules/@babel/helper-compilation-targets/lib/index.js

@@ -43,7 +43,6 @@ Object.defineProperty(exports, "unreleasedLabels", {
 });
 var _browserslist = require("browserslist");
 var _helperValidatorOption = require("@babel/helper-validator-option");
-var _nativeModules = require("@babel/compat-data/native-modules");
 var _lruCache = require("lru-cache");
 var _utils = require("./utils.js");
 var _targets = require("./targets.js");
@@ -51,7 +50,8 @@ var _options = require("./options.js");
 var _pretty = require("./pretty.js");
 var _debug = require("./debug.js");
 var _filterItems = require("./filter-items.js");
-const ESM_SUPPORT = _nativeModules["es6.module"];
+const browserModulesData = require("@babel/compat-data/native-modules");
+const ESM_SUPPORT = browserModulesData["es6.module"];
 const v = new _helperValidatorOption.OptionValidator("@babel/helper-compilation-targets");
 function validateTargetNames(targets) {
   const validTargets = Object.keys(_options.TargetNames);

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
node_modules/@babel/helper-compilation-targets/lib/index.js.map


+ 4 - 4
node_modules/@babel/helper-compilation-targets/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@babel/helper-compilation-targets",
-  "version": "7.27.0",
+  "version": "7.27.2",
   "author": "The Babel Team (https://babel.dev/team)",
   "license": "MIT",
   "description": "Helper functions on Babel compilation targets",
@@ -25,14 +25,14 @@
     "babel-plugin"
   ],
   "dependencies": {
-    "@babel/compat-data": "^7.26.8",
-    "@babel/helper-validator-option": "^7.25.9",
+    "@babel/compat-data": "^7.27.2",
+    "@babel/helper-validator-option": "^7.27.1",
     "browserslist": "^4.24.0",
     "lru-cache": "^5.1.1",
     "semver": "^6.3.1"
   },
   "devDependencies": {
-    "@babel/helper-plugin-test-runner": "^7.25.9",
+    "@babel/helper-plugin-test-runner": "^7.27.1",
     "@types/lru-cache": "^5.1.1",
     "@types/semver": "^5.5.0"
   },

+ 22 - 0
node_modules/@babel/helper-create-class-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.

+ 19 - 0
node_modules/@babel/helper-create-class-features-plugin/README.md

@@ -0,0 +1,19 @@
+# @babel/helper-create-class-features-plugin
+
+> Compile class public and private fields, private methods and decorators to ES6
+
+See our website [@babel/helper-create-class-features-plugin](https://babeljs.io/docs/babel-helper-create-class-features-plugin) for more information.
+
+## Install
+
+Using npm:
+
+```sh
+npm install --save @babel/helper-create-class-features-plugin
+```
+
+or using yarn:
+
+```sh
+yarn add @babel/helper-create-class-features-plugin
+```

+ 127 - 0
node_modules/@babel/helper-create-class-features-plugin/lib/decorators-2018-09.js

@@ -0,0 +1,127 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.buildDecoratedClass = buildDecoratedClass;
+var _core = require("@babel/core");
+var _helperReplaceSupers = require("@babel/helper-replace-supers");
+;
+function prop(key, value) {
+  if (!value) return null;
+  return _core.types.objectProperty(_core.types.identifier(key), value);
+}
+function method(key, body) {
+  return _core.types.objectMethod("method", _core.types.identifier(key), [], _core.types.blockStatement(body));
+}
+function takeDecorators(node) {
+  let result;
+  if (node.decorators && node.decorators.length > 0) {
+    result = _core.types.arrayExpression(node.decorators.map(decorator => decorator.expression));
+  }
+  node.decorators = undefined;
+  return result;
+}
+function getKey(node) {
+  if (node.computed) {
+    return node.key;
+  } else if (_core.types.isIdentifier(node.key)) {
+    return _core.types.stringLiteral(node.key.name);
+  } else {
+    return _core.types.stringLiteral(String(node.key.value));
+  }
+}
+function extractElementDescriptor(file, classRef, superRef, path) {
+  const isMethod = path.isClassMethod();
+  if (path.isPrivate()) {
+    throw path.buildCodeFrameError(`Private ${isMethod ? "methods" : "fields"} in decorated classes are not supported yet.`);
+  }
+  if (path.node.type === "ClassAccessorProperty") {
+    throw path.buildCodeFrameError(`Accessor properties are not supported in 2018-09 decorator transform, please specify { "version": "2021-12" } instead.`);
+  }
+  if (path.node.type === "StaticBlock") {
+    throw path.buildCodeFrameError(`Static blocks are not supported in 2018-09 decorator transform, please specify { "version": "2021-12" } instead.`);
+  }
+  const {
+    node,
+    scope
+  } = path;
+  if (!path.isTSDeclareMethod()) {
+    new _helperReplaceSupers.default({
+      methodPath: path,
+      objectRef: classRef,
+      superRef,
+      file,
+      refToPreserve: classRef
+    }).replace();
+  }
+  const properties = [prop("kind", _core.types.stringLiteral(_core.types.isClassMethod(node) ? node.kind : "field")), prop("decorators", takeDecorators(node)), prop("static", node.static && _core.types.booleanLiteral(true)), prop("key", getKey(node))].filter(Boolean);
+  if (isMethod) {
+    {
+      var _path$ensureFunctionN;
+      (_path$ensureFunctionN = path.ensureFunctionName) != null ? _path$ensureFunctionN : path.ensureFunctionName = require("@babel/traverse").NodePath.prototype.ensureFunctionName;
+    }
+    path.ensureFunctionName(false);
+    properties.push(prop("value", _core.types.toExpression(path.node)));
+  } else if (_core.types.isClassProperty(node) && node.value) {
+    properties.push(method("value", _core.template.statements.ast`return ${node.value}`));
+  } else {
+    properties.push(prop("value", scope.buildUndefinedNode()));
+  }
+  path.remove();
+  return _core.types.objectExpression(properties);
+}
+function addDecorateHelper(file) {
+  return file.addHelper("decorate");
+}
+function buildDecoratedClass(ref, path, elements, file) {
+  const {
+    node,
+    scope
+  } = path;
+  const initializeId = scope.generateUidIdentifier("initialize");
+  const isDeclaration = node.id && path.isDeclaration();
+  const isStrict = path.isInStrictMode();
+  const {
+    superClass
+  } = node;
+  node.type = "ClassDeclaration";
+  if (!node.id) node.id = _core.types.cloneNode(ref);
+  let superId;
+  if (superClass) {
+    superId = scope.generateUidIdentifierBasedOnNode(node.superClass, "super");
+    node.superClass = superId;
+  }
+  const classDecorators = takeDecorators(node);
+  const definitions = _core.types.arrayExpression(elements.filter(element => !element.node.abstract && element.node.type !== "TSIndexSignature").map(path => extractElementDescriptor(file, node.id, superId, path)));
+  const wrapperCall = _core.template.expression.ast`
+    ${addDecorateHelper(file)}(
+      ${classDecorators || _core.types.nullLiteral()},
+      function (${initializeId}, ${superClass ? _core.types.cloneNode(superId) : null}) {
+        ${node}
+        return { F: ${_core.types.cloneNode(node.id)}, d: ${definitions} };
+      },
+      ${superClass}
+    )
+  `;
+  if (!isStrict) {
+    wrapperCall.arguments[1].body.directives.push(_core.types.directive(_core.types.directiveLiteral("use strict")));
+  }
+  let replacement = wrapperCall;
+  let classPathDesc = "arguments.1.body.body.0";
+  if (isDeclaration) {
+    replacement = _core.template.statement.ast`let ${ref} = ${wrapperCall}`;
+    classPathDesc = "declarations.0.init." + classPathDesc;
+  }
+  return {
+    instanceNodes: [_core.template.statement.ast`
+        ${_core.types.cloneNode(initializeId)}(this)
+      `],
+    wrapClass(path) {
+      path.replaceWith(replacement);
+      return path.get(classPathDesc);
+    }
+  };
+}
+
+//# sourceMappingURL=decorators-2018-09.js.map

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
node_modules/@babel/helper-create-class-features-plugin/lib/decorators-2018-09.js.map


+ 1321 - 0
node_modules/@babel/helper-create-class-features-plugin/lib/decorators.js

@@ -0,0 +1,1321 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = _default;
+exports.hasDecorators = hasDecorators;
+exports.hasOwnDecorators = hasOwnDecorators;
+var _core = require("@babel/core");
+var _helperReplaceSupers = require("@babel/helper-replace-supers");
+var _helperSkipTransparentExpressionWrappers = require("@babel/helper-skip-transparent-expression-wrappers");
+var _fields = require("./fields.js");
+var _misc = require("./misc.js");
+function hasOwnDecorators(node) {
+  var _node$decorators;
+  return !!((_node$decorators = node.decorators) != null && _node$decorators.length);
+}
+function hasDecorators(node) {
+  return hasOwnDecorators(node) || node.body.body.some(hasOwnDecorators);
+}
+function incrementId(id, idx = id.length - 1) {
+  if (idx === -1) {
+    id.unshift(65);
+    return;
+  }
+  const current = id[idx];
+  if (current === 90) {
+    id[idx] = 97;
+  } else if (current === 122) {
+    id[idx] = 65;
+    incrementId(id, idx - 1);
+  } else {
+    id[idx] = current + 1;
+  }
+}
+function createPrivateUidGeneratorForClass(classPath) {
+  const currentPrivateId = [];
+  const privateNames = new Set();
+  classPath.traverse({
+    PrivateName(path) {
+      privateNames.add(path.node.id.name);
+    }
+  });
+  return () => {
+    let reifiedId;
+    do {
+      incrementId(currentPrivateId);
+      reifiedId = String.fromCharCode(...currentPrivateId);
+    } while (privateNames.has(reifiedId));
+    return _core.types.privateName(_core.types.identifier(reifiedId));
+  };
+}
+function createLazyPrivateUidGeneratorForClass(classPath) {
+  let generator;
+  return () => {
+    if (!generator) {
+      generator = createPrivateUidGeneratorForClass(classPath);
+    }
+    return generator();
+  };
+}
+function replaceClassWithVar(path, className) {
+  const id = path.node.id;
+  const scope = path.scope;
+  if (path.type === "ClassDeclaration") {
+    const className = id.name;
+    const varId = scope.generateUidIdentifierBasedOnNode(id);
+    const classId = _core.types.identifier(className);
+    scope.rename(className, varId.name);
+    path.get("id").replaceWith(classId);
+    return {
+      id: _core.types.cloneNode(varId),
+      path
+    };
+  } else {
+    let varId;
+    if (id) {
+      className = id.name;
+      varId = generateLetUidIdentifier(scope.parent, className);
+      scope.rename(className, varId.name);
+    } else {
+      varId = generateLetUidIdentifier(scope.parent, typeof className === "string" ? className : "decorated_class");
+    }
+    const newClassExpr = _core.types.classExpression(typeof className === "string" ? _core.types.identifier(className) : null, path.node.superClass, path.node.body);
+    const [newPath] = path.replaceWith(_core.types.sequenceExpression([newClassExpr, varId]));
+    return {
+      id: _core.types.cloneNode(varId),
+      path: newPath.get("expressions.0")
+    };
+  }
+}
+function generateClassProperty(key, value, isStatic) {
+  if (key.type === "PrivateName") {
+    return _core.types.classPrivateProperty(key, value, undefined, isStatic);
+  } else {
+    return _core.types.classProperty(key, value, undefined, undefined, isStatic);
+  }
+}
+function assignIdForAnonymousClass(path, className) {
+  if (!path.node.id) {
+    path.node.id = typeof className === "string" ? _core.types.identifier(className) : path.scope.generateUidIdentifier("Class");
+  }
+}
+function addProxyAccessorsFor(className, element, getterKey, setterKey, targetKey, isComputed, isStatic, version) {
+  const thisArg = (version === "2023-11" || version === "2023-05") && isStatic ? className : _core.types.thisExpression();
+  const getterBody = _core.types.blockStatement([_core.types.returnStatement(_core.types.memberExpression(_core.types.cloneNode(thisArg), _core.types.cloneNode(targetKey)))]);
+  const setterBody = _core.types.blockStatement([_core.types.expressionStatement(_core.types.assignmentExpression("=", _core.types.memberExpression(_core.types.cloneNode(thisArg), _core.types.cloneNode(targetKey)), _core.types.identifier("v")))]);
+  let getter, setter;
+  if (getterKey.type === "PrivateName") {
+    getter = _core.types.classPrivateMethod("get", getterKey, [], getterBody, isStatic);
+    setter = _core.types.classPrivateMethod("set", setterKey, [_core.types.identifier("v")], setterBody, isStatic);
+  } else {
+    getter = _core.types.classMethod("get", getterKey, [], getterBody, isComputed, isStatic);
+    setter = _core.types.classMethod("set", setterKey, [_core.types.identifier("v")], setterBody, isComputed, isStatic);
+  }
+  element.insertAfter(setter);
+  element.insertAfter(getter);
+}
+function extractProxyAccessorsFor(targetKey, version) {
+  if (version !== "2023-11" && version !== "2023-05" && version !== "2023-01") {
+    return [_core.template.expression.ast`
+        function () {
+          return this.${_core.types.cloneNode(targetKey)};
+        }
+      `, _core.template.expression.ast`
+        function (value) {
+          this.${_core.types.cloneNode(targetKey)} = value;
+        }
+      `];
+  }
+  return [_core.template.expression.ast`
+      o => o.${_core.types.cloneNode(targetKey)}
+    `, _core.template.expression.ast`
+      (o, v) => o.${_core.types.cloneNode(targetKey)} = v
+    `];
+}
+function getComputedKeyLastElement(path) {
+  path = (0, _helperSkipTransparentExpressionWrappers.skipTransparentExprWrappers)(path);
+  if (path.isSequenceExpression()) {
+    const expressions = path.get("expressions");
+    return getComputedKeyLastElement(expressions[expressions.length - 1]);
+  }
+  return path;
+}
+function getComputedKeyMemoiser(path) {
+  const element = getComputedKeyLastElement(path);
+  if (element.isConstantExpression()) {
+    return _core.types.cloneNode(path.node);
+  } else if (element.isIdentifier() && path.scope.hasUid(element.node.name)) {
+    return _core.types.cloneNode(path.node);
+  } else if (element.isAssignmentExpression() && element.get("left").isIdentifier()) {
+    return _core.types.cloneNode(element.node.left);
+  } else {
+    throw new Error(`Internal Error: the computed key ${path.toString()} has not yet been memoised.`);
+  }
+}
+function prependExpressionsToComputedKey(expressions, fieldPath) {
+  const key = fieldPath.get("key");
+  if (key.isSequenceExpression()) {
+    expressions.push(...key.node.expressions);
+  } else {
+    expressions.push(key.node);
+  }
+  key.replaceWith(maybeSequenceExpression(expressions));
+}
+function appendExpressionsToComputedKey(expressions, fieldPath) {
+  const key = fieldPath.get("key");
+  const completion = getComputedKeyLastElement(key);
+  if (completion.isConstantExpression()) {
+    prependExpressionsToComputedKey(expressions, fieldPath);
+  } else {
+    const scopeParent = key.scope.parent;
+    const maybeAssignment = (0, _misc.memoiseComputedKey)(completion.node, scopeParent, scopeParent.generateUid("computedKey"));
+    if (!maybeAssignment) {
+      prependExpressionsToComputedKey(expressions, fieldPath);
+    } else {
+      const expressionSequence = [...expressions, _core.types.cloneNode(maybeAssignment.left)];
+      const completionParent = completion.parentPath;
+      if (completionParent.isSequenceExpression()) {
+        completionParent.pushContainer("expressions", expressionSequence);
+      } else {
+        completion.replaceWith(maybeSequenceExpression([_core.types.cloneNode(maybeAssignment), ...expressionSequence]));
+      }
+    }
+  }
+}
+function prependExpressionsToFieldInitializer(expressions, fieldPath) {
+  const initializer = fieldPath.get("value");
+  if (initializer.node) {
+    expressions.push(initializer.node);
+  } else if (expressions.length > 0) {
+    expressions[expressions.length - 1] = _core.types.unaryExpression("void", expressions[expressions.length - 1]);
+  }
+  initializer.replaceWith(maybeSequenceExpression(expressions));
+}
+function prependExpressionsToStaticBlock(expressions, blockPath) {
+  blockPath.unshiftContainer("body", _core.types.expressionStatement(maybeSequenceExpression(expressions)));
+}
+function prependExpressionsToConstructor(expressions, constructorPath) {
+  constructorPath.node.body.body.unshift(_core.types.expressionStatement(maybeSequenceExpression(expressions)));
+}
+function isProtoInitCallExpression(expression, protoInitCall) {
+  return _core.types.isCallExpression(expression) && _core.types.isIdentifier(expression.callee, {
+    name: protoInitCall.name
+  });
+}
+function optimizeSuperCallAndExpressions(expressions, protoInitLocal) {
+  if (protoInitLocal) {
+    if (expressions.length >= 2 && isProtoInitCallExpression(expressions[1], protoInitLocal)) {
+      const mergedSuperCall = _core.types.callExpression(_core.types.cloneNode(protoInitLocal), [expressions[0]]);
+      expressions.splice(0, 2, mergedSuperCall);
+    }
+    if (expressions.length >= 2 && _core.types.isThisExpression(expressions[expressions.length - 1]) && isProtoInitCallExpression(expressions[expressions.length - 2], protoInitLocal)) {
+      expressions.splice(expressions.length - 1, 1);
+    }
+  }
+  return maybeSequenceExpression(expressions);
+}
+function insertExpressionsAfterSuperCallAndOptimize(expressions, constructorPath, protoInitLocal) {
+  constructorPath.traverse({
+    CallExpression: {
+      exit(path) {
+        if (!path.get("callee").isSuper()) return;
+        const newNodes = [path.node, ...expressions.map(expr => _core.types.cloneNode(expr))];
+        if (path.isCompletionRecord()) {
+          newNodes.push(_core.types.thisExpression());
+        }
+        path.replaceWith(optimizeSuperCallAndExpressions(newNodes, protoInitLocal));
+        path.skip();
+      }
+    },
+    ClassMethod(path) {
+      if (path.node.kind === "constructor") {
+        path.skip();
+      }
+    }
+  });
+}
+function createConstructorFromExpressions(expressions, isDerivedClass) {
+  const body = [_core.types.expressionStatement(maybeSequenceExpression(expressions))];
+  if (isDerivedClass) {
+    body.unshift(_core.types.expressionStatement(_core.types.callExpression(_core.types.super(), [_core.types.spreadElement(_core.types.identifier("args"))])));
+  }
+  return _core.types.classMethod("constructor", _core.types.identifier("constructor"), isDerivedClass ? [_core.types.restElement(_core.types.identifier("args"))] : [], _core.types.blockStatement(body));
+}
+function createStaticBlockFromExpressions(expressions) {
+  return _core.types.staticBlock([_core.types.expressionStatement(maybeSequenceExpression(expressions))]);
+}
+const FIELD = 0;
+const ACCESSOR = 1;
+const METHOD = 2;
+const GETTER = 3;
+const SETTER = 4;
+const STATIC_OLD_VERSION = 5;
+const STATIC = 8;
+const DECORATORS_HAVE_THIS = 16;
+function getElementKind(element) {
+  switch (element.node.type) {
+    case "ClassProperty":
+    case "ClassPrivateProperty":
+      return FIELD;
+    case "ClassAccessorProperty":
+      return ACCESSOR;
+    case "ClassMethod":
+    case "ClassPrivateMethod":
+      if (element.node.kind === "get") {
+        return GETTER;
+      } else if (element.node.kind === "set") {
+        return SETTER;
+      } else {
+        return METHOD;
+      }
+  }
+}
+function toSortedDecoratorInfo(info) {
+  return [...info.filter(el => el.isStatic && el.kind >= ACCESSOR && el.kind <= SETTER), ...info.filter(el => !el.isStatic && el.kind >= ACCESSOR && el.kind <= SETTER), ...info.filter(el => el.isStatic && el.kind === FIELD), ...info.filter(el => !el.isStatic && el.kind === FIELD)];
+}
+function generateDecorationList(decorators, decoratorsThis, version) {
+  const decsCount = decorators.length;
+  const haveOneThis = decoratorsThis.some(Boolean);
+  const decs = [];
+  for (let i = 0; i < decsCount; i++) {
+    if ((version === "2023-11" || version === "2023-05") && haveOneThis) {
+      decs.push(decoratorsThis[i] || _core.types.unaryExpression("void", _core.types.numericLiteral(0)));
+    }
+    decs.push(decorators[i].expression);
+  }
+  return {
+    haveThis: haveOneThis,
+    decs
+  };
+}
+function generateDecorationExprs(decorationInfo, version) {
+  return _core.types.arrayExpression(decorationInfo.map(el => {
+    let flag = el.kind;
+    if (el.isStatic) {
+      flag += version === "2023-11" || version === "2023-05" ? STATIC : STATIC_OLD_VERSION;
+    }
+    if (el.decoratorsHaveThis) flag += DECORATORS_HAVE_THIS;
+    return _core.types.arrayExpression([el.decoratorsArray, _core.types.numericLiteral(flag), el.name, ...(el.privateMethods || [])]);
+  }));
+}
+function extractElementLocalAssignments(decorationInfo) {
+  const localIds = [];
+  for (const el of decorationInfo) {
+    const {
+      locals
+    } = el;
+    if (Array.isArray(locals)) {
+      localIds.push(...locals);
+    } else if (locals !== undefined) {
+      localIds.push(locals);
+    }
+  }
+  return localIds;
+}
+function addCallAccessorsFor(version, element, key, getId, setId, isStatic) {
+  element.insertAfter(_core.types.classPrivateMethod("get", _core.types.cloneNode(key), [], _core.types.blockStatement([_core.types.returnStatement(_core.types.callExpression(_core.types.cloneNode(getId), version === "2023-11" && isStatic ? [] : [_core.types.thisExpression()]))]), isStatic));
+  element.insertAfter(_core.types.classPrivateMethod("set", _core.types.cloneNode(key), [_core.types.identifier("v")], _core.types.blockStatement([_core.types.expressionStatement(_core.types.callExpression(_core.types.cloneNode(setId), version === "2023-11" && isStatic ? [_core.types.identifier("v")] : [_core.types.thisExpression(), _core.types.identifier("v")]))]), isStatic));
+}
+function movePrivateAccessor(element, key, methodLocalVar, isStatic) {
+  let params;
+  let block;
+  if (element.node.kind === "set") {
+    params = [_core.types.identifier("v")];
+    block = [_core.types.expressionStatement(_core.types.callExpression(methodLocalVar, [_core.types.thisExpression(), _core.types.identifier("v")]))];
+  } else {
+    params = [];
+    block = [_core.types.returnStatement(_core.types.callExpression(methodLocalVar, [_core.types.thisExpression()]))];
+  }
+  element.replaceWith(_core.types.classPrivateMethod(element.node.kind, _core.types.cloneNode(key), params, _core.types.blockStatement(block), isStatic));
+}
+function isClassDecoratableElementPath(path) {
+  const {
+    type
+  } = path;
+  return type !== "TSDeclareMethod" && type !== "TSIndexSignature" && type !== "StaticBlock";
+}
+function staticBlockToIIFE(block) {
+  return _core.types.callExpression(_core.types.arrowFunctionExpression([], _core.types.blockStatement(block.body)), []);
+}
+function staticBlockToFunctionClosure(block) {
+  return _core.types.functionExpression(null, [], _core.types.blockStatement(block.body));
+}
+function fieldInitializerToClosure(value) {
+  return _core.types.functionExpression(null, [], _core.types.blockStatement([_core.types.returnStatement(value)]));
+}
+function maybeSequenceExpression(exprs) {
+  if (exprs.length === 0) return _core.types.unaryExpression("void", _core.types.numericLiteral(0));
+  if (exprs.length === 1) return exprs[0];
+  return _core.types.sequenceExpression(exprs);
+}
+function createFunctionExpressionFromPrivateMethod(node) {
+  const {
+    params,
+    body,
+    generator: isGenerator,
+    async: isAsync
+  } = node;
+  return _core.types.functionExpression(undefined, params, body, isGenerator, isAsync);
+}
+function createSetFunctionNameCall(state, className) {
+  return _core.types.callExpression(state.addHelper("setFunctionName"), [_core.types.thisExpression(), className]);
+}
+function createToPropertyKeyCall(state, propertyKey) {
+  return _core.types.callExpression(state.addHelper("toPropertyKey"), [propertyKey]);
+}
+function createPrivateBrandCheckClosure(brandName) {
+  return _core.types.arrowFunctionExpression([_core.types.identifier("_")], _core.types.binaryExpression("in", _core.types.cloneNode(brandName), _core.types.identifier("_")));
+}
+function usesPrivateField(expression) {
+  {
+    try {
+      _core.types.traverseFast(expression, node => {
+        if (_core.types.isPrivateName(node)) {
+          throw null;
+        }
+      });
+      return false;
+    } catch (_unused) {
+      return true;
+    }
+  }
+}
+function convertToComputedKey(path) {
+  const {
+    node
+  } = path;
+  node.computed = true;
+  if (_core.types.isIdentifier(node.key)) {
+    node.key = _core.types.stringLiteral(node.key.name);
+  }
+}
+function hasInstancePrivateAccess(path, privateNames) {
+  let containsInstancePrivateAccess = false;
+  if (privateNames.length > 0) {
+    const privateNameVisitor = (0, _fields.privateNameVisitorFactory)({
+      PrivateName(path, state) {
+        if (state.privateNamesMap.has(path.node.id.name)) {
+          containsInstancePrivateAccess = true;
+          path.stop();
+        }
+      }
+    });
+    const privateNamesMap = new Map();
+    for (const name of privateNames) {
+      privateNamesMap.set(name, null);
+    }
+    path.traverse(privateNameVisitor, {
+      privateNamesMap: privateNamesMap
+    });
+  }
+  return containsInstancePrivateAccess;
+}
+function checkPrivateMethodUpdateError(path, decoratedPrivateMethods) {
+  const privateNameVisitor = (0, _fields.privateNameVisitorFactory)({
+    PrivateName(path, state) {
+      if (!state.privateNamesMap.has(path.node.id.name)) return;
+      const parentPath = path.parentPath;
+      const parentParentPath = parentPath.parentPath;
+      if (parentParentPath.node.type === "AssignmentExpression" && parentParentPath.node.left === parentPath.node || parentParentPath.node.type === "UpdateExpression" || parentParentPath.node.type === "RestElement" || parentParentPath.node.type === "ArrayPattern" || parentParentPath.node.type === "ObjectProperty" && parentParentPath.node.value === parentPath.node && parentParentPath.parentPath.type === "ObjectPattern" || parentParentPath.node.type === "ForOfStatement" && parentParentPath.node.left === parentPath.node) {
+        throw path.buildCodeFrameError(`Decorated private methods are read-only, but "#${path.node.id.name}" is updated via this expression.`);
+      }
+    }
+  });
+  const privateNamesMap = new Map();
+  for (const name of decoratedPrivateMethods) {
+    privateNamesMap.set(name, null);
+  }
+  path.traverse(privateNameVisitor, {
+    privateNamesMap: privateNamesMap
+  });
+}
+function transformClass(path, state, constantSuper, ignoreFunctionLength, className, propertyVisitor, version) {
+  var _path$node$id;
+  const body = path.get("body.body");
+  const classDecorators = path.node.decorators;
+  let hasElementDecorators = false;
+  let hasComputedKeysSideEffects = false;
+  let elemDecsUseFnContext = false;
+  const generateClassPrivateUid = createLazyPrivateUidGeneratorForClass(path);
+  const classAssignments = [];
+  const scopeParent = path.scope.parent;
+  const memoiseExpression = (expression, hint, assignments) => {
+    const localEvaluatedId = generateLetUidIdentifier(scopeParent, hint);
+    assignments.push(_core.types.assignmentExpression("=", localEvaluatedId, expression));
+    return _core.types.cloneNode(localEvaluatedId);
+  };
+  let protoInitLocal;
+  let staticInitLocal;
+  const classIdName = (_path$node$id = path.node.id) == null ? void 0 : _path$node$id.name;
+  const setClassName = typeof className === "object" ? className : undefined;
+  const usesFunctionContextOrYieldAwait = decorator => {
+    {
+      try {
+        _core.types.traverseFast(decorator, node => {
+          if (_core.types.isThisExpression(node) || _core.types.isSuper(node) || _core.types.isYieldExpression(node) || _core.types.isAwaitExpression(node) || _core.types.isIdentifier(node, {
+            name: "arguments"
+          }) || classIdName && _core.types.isIdentifier(node, {
+            name: classIdName
+          }) || _core.types.isMetaProperty(node) && node.meta.name !== "import") {
+            throw null;
+          }
+        });
+        return false;
+      } catch (_unused2) {
+        return true;
+      }
+    }
+  };
+  const instancePrivateNames = [];
+  for (const element of body) {
+    if (!isClassDecoratableElementPath(element)) {
+      continue;
+    }
+    const elementNode = element.node;
+    if (!elementNode.static && _core.types.isPrivateName(elementNode.key)) {
+      instancePrivateNames.push(elementNode.key.id.name);
+    }
+    if (isDecorated(elementNode)) {
+      switch (elementNode.type) {
+        case "ClassProperty":
+          propertyVisitor.ClassProperty(element, state);
+          break;
+        case "ClassPrivateProperty":
+          propertyVisitor.ClassPrivateProperty(element, state);
+          break;
+        case "ClassAccessorProperty":
+          propertyVisitor.ClassAccessorProperty(element, state);
+          if (version === "2023-11") {
+            break;
+          }
+        default:
+          if (elementNode.static) {
+            staticInitLocal != null ? staticInitLocal : staticInitLocal = generateLetUidIdentifier(scopeParent, "initStatic");
+          } else {
+            protoInitLocal != null ? protoInitLocal : protoInitLocal = generateLetUidIdentifier(scopeParent, "initProto");
+          }
+          break;
+      }
+      hasElementDecorators = true;
+      elemDecsUseFnContext || (elemDecsUseFnContext = elementNode.decorators.some(usesFunctionContextOrYieldAwait));
+    } else if (elementNode.type === "ClassAccessorProperty") {
+      propertyVisitor.ClassAccessorProperty(element, state);
+      const {
+        key,
+        value,
+        static: isStatic,
+        computed
+      } = elementNode;
+      const newId = generateClassPrivateUid();
+      const newField = generateClassProperty(newId, value, isStatic);
+      const keyPath = element.get("key");
+      const [newPath] = element.replaceWith(newField);
+      let getterKey, setterKey;
+      if (computed && !keyPath.isConstantExpression()) {
+        getterKey = (0, _misc.memoiseComputedKey)(createToPropertyKeyCall(state, key), scopeParent, scopeParent.generateUid("computedKey"));
+        setterKey = _core.types.cloneNode(getterKey.left);
+      } else {
+        getterKey = _core.types.cloneNode(key);
+        setterKey = _core.types.cloneNode(key);
+      }
+      assignIdForAnonymousClass(path, className);
+      addProxyAccessorsFor(path.node.id, newPath, getterKey, setterKey, newId, computed, isStatic, version);
+    }
+    if ("computed" in element.node && element.node.computed) {
+      hasComputedKeysSideEffects || (hasComputedKeysSideEffects = !scopeParent.isStatic(element.node.key));
+    }
+  }
+  if (!classDecorators && !hasElementDecorators) {
+    if (!path.node.id && typeof className === "string") {
+      path.node.id = _core.types.identifier(className);
+    }
+    if (setClassName) {
+      path.node.body.body.unshift(createStaticBlockFromExpressions([createSetFunctionNameCall(state, setClassName)]));
+    }
+    return;
+  }
+  const elementDecoratorInfo = [];
+  let constructorPath;
+  const decoratedPrivateMethods = new Set();
+  let classInitLocal, classIdLocal;
+  let decoratorReceiverId = null;
+  function handleDecorators(decorators) {
+    let hasSideEffects = false;
+    let usesFnContext = false;
+    const decoratorsThis = [];
+    for (const decorator of decorators) {
+      const {
+        expression
+      } = decorator;
+      let object;
+      if ((version === "2023-11" || version === "2023-05") && _core.types.isMemberExpression(expression)) {
+        if (_core.types.isSuper(expression.object)) {
+          object = _core.types.thisExpression();
+        } else if (scopeParent.isStatic(expression.object)) {
+          object = _core.types.cloneNode(expression.object);
+        } else {
+          decoratorReceiverId != null ? decoratorReceiverId : decoratorReceiverId = generateLetUidIdentifier(scopeParent, "obj");
+          object = _core.types.assignmentExpression("=", _core.types.cloneNode(decoratorReceiverId), expression.object);
+          expression.object = _core.types.cloneNode(decoratorReceiverId);
+        }
+      }
+      decoratorsThis.push(object);
+      hasSideEffects || (hasSideEffects = !scopeParent.isStatic(expression));
+      usesFnContext || (usesFnContext = usesFunctionContextOrYieldAwait(decorator));
+    }
+    return {
+      hasSideEffects,
+      usesFnContext,
+      decoratorsThis
+    };
+  }
+  const willExtractSomeElemDecs = hasComputedKeysSideEffects || elemDecsUseFnContext || version !== "2023-11";
+  let needsDeclaraionForClassBinding = false;
+  let classDecorationsFlag = 0;
+  let classDecorations = [];
+  let classDecorationsId;
+  let computedKeyAssignments = [];
+  if (classDecorators) {
+    classInitLocal = generateLetUidIdentifier(scopeParent, "initClass");
+    needsDeclaraionForClassBinding = path.isClassDeclaration();
+    ({
+      id: classIdLocal,
+      path
+    } = replaceClassWithVar(path, className));
+    path.node.decorators = null;
+    const classDecsUsePrivateName = classDecorators.some(usesPrivateField);
+    const {
+      hasSideEffects,
+      usesFnContext,
+      decoratorsThis
+    } = handleDecorators(classDecorators);
+    const {
+      haveThis,
+      decs
+    } = generateDecorationList(classDecorators, decoratorsThis, version);
+    classDecorationsFlag = haveThis ? 1 : 0;
+    classDecorations = decs;
+    if (usesFnContext || hasSideEffects && willExtractSomeElemDecs || classDecsUsePrivateName) {
+      classDecorationsId = memoiseExpression(_core.types.arrayExpression(classDecorations), "classDecs", classAssignments);
+    }
+    if (!hasElementDecorators) {
+      for (const element of path.get("body.body")) {
+        const {
+          node
+        } = element;
+        const isComputed = "computed" in node && node.computed;
+        if (isComputed) {
+          if (element.isClassProperty({
+            static: true
+          })) {
+            if (!element.get("key").isConstantExpression()) {
+              const key = node.key;
+              const maybeAssignment = (0, _misc.memoiseComputedKey)(key, scopeParent, scopeParent.generateUid("computedKey"));
+              if (maybeAssignment != null) {
+                node.key = _core.types.cloneNode(maybeAssignment.left);
+                computedKeyAssignments.push(maybeAssignment);
+              }
+            }
+          } else if (computedKeyAssignments.length > 0) {
+            prependExpressionsToComputedKey(computedKeyAssignments, element);
+            computedKeyAssignments = [];
+          }
+        }
+      }
+    }
+  } else {
+    assignIdForAnonymousClass(path, className);
+    classIdLocal = _core.types.cloneNode(path.node.id);
+  }
+  let lastInstancePrivateName;
+  let needsInstancePrivateBrandCheck = false;
+  let fieldInitializerExpressions = [];
+  let staticFieldInitializerExpressions = [];
+  if (hasElementDecorators) {
+    if (protoInitLocal) {
+      const protoInitCall = _core.types.callExpression(_core.types.cloneNode(protoInitLocal), [_core.types.thisExpression()]);
+      fieldInitializerExpressions.push(protoInitCall);
+    }
+    for (const element of body) {
+      if (!isClassDecoratableElementPath(element)) {
+        if (staticFieldInitializerExpressions.length > 0 && element.isStaticBlock()) {
+          prependExpressionsToStaticBlock(staticFieldInitializerExpressions, element);
+          staticFieldInitializerExpressions = [];
+        }
+        continue;
+      }
+      const {
+        node
+      } = element;
+      const decorators = node.decorators;
+      const hasDecorators = !!(decorators != null && decorators.length);
+      const isComputed = "computed" in node && node.computed;
+      let name = "computedKey";
+      if (node.key.type === "PrivateName") {
+        name = node.key.id.name;
+      } else if (!isComputed && node.key.type === "Identifier") {
+        name = node.key.name;
+      }
+      let decoratorsArray;
+      let decoratorsHaveThis;
+      if (hasDecorators) {
+        const {
+          hasSideEffects,
+          usesFnContext,
+          decoratorsThis
+        } = handleDecorators(decorators);
+        const {
+          decs,
+          haveThis
+        } = generateDecorationList(decorators, decoratorsThis, version);
+        decoratorsHaveThis = haveThis;
+        decoratorsArray = decs.length === 1 ? decs[0] : _core.types.arrayExpression(decs);
+        if (usesFnContext || hasSideEffects && willExtractSomeElemDecs) {
+          decoratorsArray = memoiseExpression(decoratorsArray, name + "Decs", computedKeyAssignments);
+        }
+      }
+      if (isComputed) {
+        if (!element.get("key").isConstantExpression()) {
+          const key = node.key;
+          const maybeAssignment = (0, _misc.memoiseComputedKey)(hasDecorators ? createToPropertyKeyCall(state, key) : key, scopeParent, scopeParent.generateUid("computedKey"));
+          if (maybeAssignment != null) {
+            if (classDecorators && element.isClassProperty({
+              static: true
+            })) {
+              node.key = _core.types.cloneNode(maybeAssignment.left);
+              computedKeyAssignments.push(maybeAssignment);
+            } else {
+              node.key = maybeAssignment;
+            }
+          }
+        }
+      }
+      const {
+        key,
+        static: isStatic
+      } = node;
+      const isPrivate = key.type === "PrivateName";
+      const kind = getElementKind(element);
+      if (isPrivate && !isStatic) {
+        if (hasDecorators) {
+          needsInstancePrivateBrandCheck = true;
+        }
+        if (_core.types.isClassPrivateProperty(node) || !lastInstancePrivateName) {
+          lastInstancePrivateName = key;
+        }
+      }
+      if (element.isClassMethod({
+        kind: "constructor"
+      })) {
+        constructorPath = element;
+      }
+      let locals;
+      if (hasDecorators) {
+        let privateMethods;
+        let nameExpr;
+        if (isComputed) {
+          nameExpr = getComputedKeyMemoiser(element.get("key"));
+        } else if (key.type === "PrivateName") {
+          nameExpr = _core.types.stringLiteral(key.id.name);
+        } else if (key.type === "Identifier") {
+          nameExpr = _core.types.stringLiteral(key.name);
+        } else {
+          nameExpr = _core.types.cloneNode(key);
+        }
+        if (kind === ACCESSOR) {
+          const {
+            value
+          } = element.node;
+          const params = version === "2023-11" && isStatic ? [] : [_core.types.thisExpression()];
+          if (value) {
+            params.push(_core.types.cloneNode(value));
+          }
+          const newId = generateClassPrivateUid();
+          const newFieldInitId = generateLetUidIdentifier(scopeParent, `init_${name}`);
+          const newValue = _core.types.callExpression(_core.types.cloneNode(newFieldInitId), params);
+          const newField = generateClassProperty(newId, newValue, isStatic);
+          const [newPath] = element.replaceWith(newField);
+          if (isPrivate) {
+            privateMethods = extractProxyAccessorsFor(newId, version);
+            const getId = generateLetUidIdentifier(scopeParent, `get_${name}`);
+            const setId = generateLetUidIdentifier(scopeParent, `set_${name}`);
+            addCallAccessorsFor(version, newPath, key, getId, setId, isStatic);
+            locals = [newFieldInitId, getId, setId];
+          } else {
+            assignIdForAnonymousClass(path, className);
+            addProxyAccessorsFor(path.node.id, newPath, _core.types.cloneNode(key), _core.types.isAssignmentExpression(key) ? _core.types.cloneNode(key.left) : _core.types.cloneNode(key), newId, isComputed, isStatic, version);
+            locals = [newFieldInitId];
+          }
+        } else if (kind === FIELD) {
+          const initId = generateLetUidIdentifier(scopeParent, `init_${name}`);
+          const valuePath = element.get("value");
+          const args = version === "2023-11" && isStatic ? [] : [_core.types.thisExpression()];
+          if (valuePath.node) args.push(valuePath.node);
+          valuePath.replaceWith(_core.types.callExpression(_core.types.cloneNode(initId), args));
+          locals = [initId];
+          if (isPrivate) {
+            privateMethods = extractProxyAccessorsFor(key, version);
+          }
+        } else if (isPrivate) {
+          const callId = generateLetUidIdentifier(scopeParent, `call_${name}`);
+          locals = [callId];
+          const replaceSupers = new _helperReplaceSupers.default({
+            constantSuper,
+            methodPath: element,
+            objectRef: classIdLocal,
+            superRef: path.node.superClass,
+            file: state.file,
+            refToPreserve: classIdLocal
+          });
+          replaceSupers.replace();
+          privateMethods = [createFunctionExpressionFromPrivateMethod(element.node)];
+          if (kind === GETTER || kind === SETTER) {
+            movePrivateAccessor(element, _core.types.cloneNode(key), _core.types.cloneNode(callId), isStatic);
+          } else {
+            const node = element.node;
+            path.node.body.body.unshift(_core.types.classPrivateProperty(key, _core.types.cloneNode(callId), [], node.static));
+            decoratedPrivateMethods.add(key.id.name);
+            element.remove();
+          }
+        }
+        elementDecoratorInfo.push({
+          kind,
+          decoratorsArray,
+          decoratorsHaveThis,
+          name: nameExpr,
+          isStatic,
+          privateMethods,
+          locals
+        });
+        if (element.node) {
+          element.node.decorators = null;
+        }
+      }
+      if (isComputed && computedKeyAssignments.length > 0) {
+        if (classDecorators && element.isClassProperty({
+          static: true
+        })) {} else {
+          prependExpressionsToComputedKey(computedKeyAssignments, kind === ACCESSOR ? element.getNextSibling() : element);
+          computedKeyAssignments = [];
+        }
+      }
+      if (fieldInitializerExpressions.length > 0 && !isStatic && (kind === FIELD || kind === ACCESSOR)) {
+        prependExpressionsToFieldInitializer(fieldInitializerExpressions, element);
+        fieldInitializerExpressions = [];
+      }
+      if (staticFieldInitializerExpressions.length > 0 && isStatic && (kind === FIELD || kind === ACCESSOR)) {
+        prependExpressionsToFieldInitializer(staticFieldInitializerExpressions, element);
+        staticFieldInitializerExpressions = [];
+      }
+      if (hasDecorators && version === "2023-11") {
+        if (kind === FIELD || kind === ACCESSOR) {
+          const initExtraId = generateLetUidIdentifier(scopeParent, `init_extra_${name}`);
+          locals.push(initExtraId);
+          const initExtraCall = _core.types.callExpression(_core.types.cloneNode(initExtraId), isStatic ? [] : [_core.types.thisExpression()]);
+          if (!isStatic) {
+            fieldInitializerExpressions.push(initExtraCall);
+          } else {
+            staticFieldInitializerExpressions.push(initExtraCall);
+          }
+        }
+      }
+    }
+  }
+  if (computedKeyAssignments.length > 0) {
+    const elements = path.get("body.body");
+    let lastComputedElement;
+    for (let i = elements.length - 1; i >= 0; i--) {
+      const path = elements[i];
+      const node = path.node;
+      if (node.computed) {
+        if (classDecorators && _core.types.isClassProperty(node, {
+          static: true
+        })) {
+          continue;
+        }
+        lastComputedElement = path;
+        break;
+      }
+    }
+    if (lastComputedElement != null) {
+      appendExpressionsToComputedKey(computedKeyAssignments, lastComputedElement);
+      computedKeyAssignments = [];
+    } else {}
+  }
+  if (fieldInitializerExpressions.length > 0) {
+    const isDerivedClass = !!path.node.superClass;
+    if (constructorPath) {
+      if (isDerivedClass) {
+        insertExpressionsAfterSuperCallAndOptimize(fieldInitializerExpressions, constructorPath, protoInitLocal);
+      } else {
+        prependExpressionsToConstructor(fieldInitializerExpressions, constructorPath);
+      }
+    } else {
+      path.node.body.body.unshift(createConstructorFromExpressions(fieldInitializerExpressions, isDerivedClass));
+    }
+    fieldInitializerExpressions = [];
+  }
+  if (staticFieldInitializerExpressions.length > 0) {
+    path.node.body.body.push(createStaticBlockFromExpressions(staticFieldInitializerExpressions));
+    staticFieldInitializerExpressions = [];
+  }
+  const sortedElementDecoratorInfo = toSortedDecoratorInfo(elementDecoratorInfo);
+  const elementDecorations = generateDecorationExprs(version === "2023-11" ? elementDecoratorInfo : sortedElementDecoratorInfo, version);
+  const elementLocals = extractElementLocalAssignments(sortedElementDecoratorInfo);
+  if (protoInitLocal) {
+    elementLocals.push(protoInitLocal);
+  }
+  if (staticInitLocal) {
+    elementLocals.push(staticInitLocal);
+  }
+  const classLocals = [];
+  let classInitInjected = false;
+  const classInitCall = classInitLocal && _core.types.callExpression(_core.types.cloneNode(classInitLocal), []);
+  let originalClassPath = path;
+  const originalClass = path.node;
+  const staticClosures = [];
+  if (classDecorators) {
+    classLocals.push(classIdLocal, classInitLocal);
+    const statics = [];
+    path.get("body.body").forEach(element => {
+      if (element.isStaticBlock()) {
+        if (hasInstancePrivateAccess(element, instancePrivateNames)) {
+          const staticBlockClosureId = memoiseExpression(staticBlockToFunctionClosure(element.node), "staticBlock", staticClosures);
+          staticFieldInitializerExpressions.push(_core.types.callExpression(_core.types.memberExpression(staticBlockClosureId, _core.types.identifier("call")), [_core.types.thisExpression()]));
+        } else {
+          staticFieldInitializerExpressions.push(staticBlockToIIFE(element.node));
+        }
+        element.remove();
+        return;
+      }
+      if ((element.isClassProperty() || element.isClassPrivateProperty()) && element.node.static) {
+        const valuePath = element.get("value");
+        if (hasInstancePrivateAccess(valuePath, instancePrivateNames)) {
+          const fieldValueClosureId = memoiseExpression(fieldInitializerToClosure(valuePath.node), "fieldValue", staticClosures);
+          valuePath.replaceWith(_core.types.callExpression(_core.types.memberExpression(fieldValueClosureId, _core.types.identifier("call")), [_core.types.thisExpression()]));
+        }
+        if (staticFieldInitializerExpressions.length > 0) {
+          prependExpressionsToFieldInitializer(staticFieldInitializerExpressions, element);
+          staticFieldInitializerExpressions = [];
+        }
+        element.node.static = false;
+        statics.push(element.node);
+        element.remove();
+      } else if (element.isClassPrivateMethod({
+        static: true
+      })) {
+        if (hasInstancePrivateAccess(element, instancePrivateNames)) {
+          const replaceSupers = new _helperReplaceSupers.default({
+            constantSuper,
+            methodPath: element,
+            objectRef: classIdLocal,
+            superRef: path.node.superClass,
+            file: state.file,
+            refToPreserve: classIdLocal
+          });
+          replaceSupers.replace();
+          const privateMethodDelegateId = memoiseExpression(createFunctionExpressionFromPrivateMethod(element.node), element.get("key.id").node.name, staticClosures);
+          if (ignoreFunctionLength) {
+            element.node.params = [_core.types.restElement(_core.types.identifier("arg"))];
+            element.node.body = _core.types.blockStatement([_core.types.returnStatement(_core.types.callExpression(_core.types.memberExpression(privateMethodDelegateId, _core.types.identifier("apply")), [_core.types.thisExpression(), _core.types.identifier("arg")]))]);
+          } else {
+            element.node.params = element.node.params.map((p, i) => {
+              if (_core.types.isRestElement(p)) {
+                return _core.types.restElement(_core.types.identifier("arg"));
+              } else {
+                return _core.types.identifier("_" + i);
+              }
+            });
+            element.node.body = _core.types.blockStatement([_core.types.returnStatement(_core.types.callExpression(_core.types.memberExpression(privateMethodDelegateId, _core.types.identifier("apply")), [_core.types.thisExpression(), _core.types.identifier("arguments")]))]);
+          }
+        }
+        element.node.static = false;
+        statics.push(element.node);
+        element.remove();
+      }
+    });
+    if (statics.length > 0 || staticFieldInitializerExpressions.length > 0) {
+      const staticsClass = _core.template.expression.ast`
+        class extends ${state.addHelper("identity")} {}
+      `;
+      staticsClass.body.body = [_core.types.classProperty(_core.types.toExpression(originalClass), undefined, undefined, undefined, true, true), ...statics];
+      const constructorBody = [];
+      const newExpr = _core.types.newExpression(staticsClass, []);
+      if (staticFieldInitializerExpressions.length > 0) {
+        constructorBody.push(...staticFieldInitializerExpressions);
+      }
+      if (classInitCall) {
+        classInitInjected = true;
+        constructorBody.push(classInitCall);
+      }
+      if (constructorBody.length > 0) {
+        constructorBody.unshift(_core.types.callExpression(_core.types.super(), [_core.types.cloneNode(classIdLocal)]));
+        staticsClass.body.body.push(createConstructorFromExpressions(constructorBody, false));
+      } else {
+        newExpr.arguments.push(_core.types.cloneNode(classIdLocal));
+      }
+      const [newPath] = path.replaceWith(newExpr);
+      originalClassPath = newPath.get("callee").get("body").get("body.0.key");
+    }
+  }
+  if (!classInitInjected && classInitCall) {
+    path.node.body.body.push(_core.types.staticBlock([_core.types.expressionStatement(classInitCall)]));
+  }
+  let {
+    superClass
+  } = originalClass;
+  if (superClass && (version === "2023-11" || version === "2023-05")) {
+    const id = path.scope.maybeGenerateMemoised(superClass);
+    if (id) {
+      originalClass.superClass = _core.types.assignmentExpression("=", id, superClass);
+      superClass = id;
+    }
+  }
+  const applyDecoratorWrapper = _core.types.staticBlock([]);
+  originalClass.body.body.unshift(applyDecoratorWrapper);
+  const applyDecsBody = applyDecoratorWrapper.body;
+  if (computedKeyAssignments.length > 0) {
+    const elements = originalClassPath.get("body.body");
+    let firstPublicElement;
+    for (const path of elements) {
+      if ((path.isClassProperty() || path.isClassMethod()) && path.node.kind !== "constructor") {
+        firstPublicElement = path;
+        break;
+      }
+    }
+    if (firstPublicElement != null) {
+      convertToComputedKey(firstPublicElement);
+      prependExpressionsToComputedKey(computedKeyAssignments, firstPublicElement);
+    } else {
+      originalClass.body.body.unshift(_core.types.classProperty(_core.types.sequenceExpression([...computedKeyAssignments, _core.types.stringLiteral("_")]), undefined, undefined, undefined, true, true));
+      applyDecsBody.push(_core.types.expressionStatement(_core.types.unaryExpression("delete", _core.types.memberExpression(_core.types.thisExpression(), _core.types.identifier("_")))));
+    }
+    computedKeyAssignments = [];
+  }
+  applyDecsBody.push(_core.types.expressionStatement(createLocalsAssignment(elementLocals, classLocals, elementDecorations, classDecorationsId != null ? classDecorationsId : _core.types.arrayExpression(classDecorations), _core.types.numericLiteral(classDecorationsFlag), needsInstancePrivateBrandCheck ? lastInstancePrivateName : null, setClassName, _core.types.cloneNode(superClass), state, version)));
+  if (staticInitLocal) {
+    applyDecsBody.push(_core.types.expressionStatement(_core.types.callExpression(_core.types.cloneNode(staticInitLocal), [_core.types.thisExpression()])));
+  }
+  if (staticClosures.length > 0) {
+    applyDecsBody.push(...staticClosures.map(expr => _core.types.expressionStatement(expr)));
+  }
+  path.insertBefore(classAssignments.map(expr => _core.types.expressionStatement(expr)));
+  if (needsDeclaraionForClassBinding) {
+    const classBindingInfo = scopeParent.getBinding(classIdLocal.name);
+    if (!classBindingInfo.constantViolations.length) {
+      path.insertBefore(_core.types.variableDeclaration("let", [_core.types.variableDeclarator(_core.types.cloneNode(classIdLocal))]));
+    } else {
+      const classOuterBindingDelegateLocal = scopeParent.generateUidIdentifier("t" + classIdLocal.name);
+      const classOuterBindingLocal = classIdLocal;
+      path.replaceWithMultiple([_core.types.variableDeclaration("let", [_core.types.variableDeclarator(_core.types.cloneNode(classOuterBindingLocal)), _core.types.variableDeclarator(classOuterBindingDelegateLocal)]), _core.types.blockStatement([_core.types.variableDeclaration("let", [_core.types.variableDeclarator(_core.types.cloneNode(classIdLocal))]), path.node, _core.types.expressionStatement(_core.types.assignmentExpression("=", _core.types.cloneNode(classOuterBindingDelegateLocal), _core.types.cloneNode(classIdLocal)))]), _core.types.expressionStatement(_core.types.assignmentExpression("=", _core.types.cloneNode(classOuterBindingLocal), _core.types.cloneNode(classOuterBindingDelegateLocal)))]);
+    }
+  }
+  if (decoratedPrivateMethods.size > 0) {
+    checkPrivateMethodUpdateError(path, decoratedPrivateMethods);
+  }
+  path.scope.crawl();
+  return path;
+}
+function createLocalsAssignment(elementLocals, classLocals, elementDecorations, classDecorations, classDecorationsFlag, maybePrivateBrandName, setClassName, superClass, state, version) {
+  let lhs, rhs;
+  const args = [setClassName ? createSetFunctionNameCall(state, setClassName) : _core.types.thisExpression(), classDecorations, elementDecorations];
+  {
+    if (version !== "2023-11") {
+      args.splice(1, 2, elementDecorations, classDecorations);
+    }
+    if (version === "2021-12" || version === "2022-03" && !state.availableHelper("applyDecs2203R")) {
+      lhs = _core.types.arrayPattern([...elementLocals, ...classLocals]);
+      rhs = _core.types.callExpression(state.addHelper(version === "2021-12" ? "applyDecs" : "applyDecs2203"), args);
+      return _core.types.assignmentExpression("=", lhs, rhs);
+    } else if (version === "2022-03") {
+      rhs = _core.types.callExpression(state.addHelper("applyDecs2203R"), args);
+    } else if (version === "2023-01") {
+      if (maybePrivateBrandName) {
+        args.push(createPrivateBrandCheckClosure(maybePrivateBrandName));
+      }
+      rhs = _core.types.callExpression(state.addHelper("applyDecs2301"), args);
+    } else if (version === "2023-05") {
+      if (maybePrivateBrandName || superClass || classDecorationsFlag.value !== 0) {
+        args.push(classDecorationsFlag);
+      }
+      if (maybePrivateBrandName) {
+        args.push(createPrivateBrandCheckClosure(maybePrivateBrandName));
+      } else if (superClass) {
+        args.push(_core.types.unaryExpression("void", _core.types.numericLiteral(0)));
+      }
+      if (superClass) args.push(superClass);
+      rhs = _core.types.callExpression(state.addHelper("applyDecs2305"), args);
+    }
+  }
+  if (version === "2023-11") {
+    if (maybePrivateBrandName || superClass || classDecorationsFlag.value !== 0) {
+      args.push(classDecorationsFlag);
+    }
+    if (maybePrivateBrandName) {
+      args.push(createPrivateBrandCheckClosure(maybePrivateBrandName));
+    } else if (superClass) {
+      args.push(_core.types.unaryExpression("void", _core.types.numericLiteral(0)));
+    }
+    if (superClass) args.push(superClass);
+    rhs = _core.types.callExpression(state.addHelper("applyDecs2311"), args);
+  }
+  if (elementLocals.length > 0) {
+    if (classLocals.length > 0) {
+      lhs = _core.types.objectPattern([_core.types.objectProperty(_core.types.identifier("e"), _core.types.arrayPattern(elementLocals)), _core.types.objectProperty(_core.types.identifier("c"), _core.types.arrayPattern(classLocals))]);
+    } else {
+      lhs = _core.types.arrayPattern(elementLocals);
+      rhs = _core.types.memberExpression(rhs, _core.types.identifier("e"), false, false);
+    }
+  } else {
+    lhs = _core.types.arrayPattern(classLocals);
+    rhs = _core.types.memberExpression(rhs, _core.types.identifier("c"), false, false);
+  }
+  return _core.types.assignmentExpression("=", lhs, rhs);
+}
+function isProtoKey(node) {
+  return node.type === "Identifier" ? node.name === "__proto__" : node.value === "__proto__";
+}
+function isDecorated(node) {
+  return node.decorators && node.decorators.length > 0;
+}
+function shouldTransformElement(node) {
+  switch (node.type) {
+    case "ClassAccessorProperty":
+      return true;
+    case "ClassMethod":
+    case "ClassProperty":
+    case "ClassPrivateMethod":
+    case "ClassPrivateProperty":
+      return isDecorated(node);
+    default:
+      return false;
+  }
+}
+function shouldTransformClass(node) {
+  return isDecorated(node) || node.body.body.some(shouldTransformElement);
+}
+function NamedEvaluationVisitoryFactory(isAnonymous, visitor) {
+  function handleComputedProperty(propertyPath, key, state) {
+    switch (key.type) {
+      case "StringLiteral":
+        return _core.types.stringLiteral(key.value);
+      case "NumericLiteral":
+      case "BigIntLiteral":
+        {
+          const keyValue = key.value + "";
+          propertyPath.get("key").replaceWith(_core.types.stringLiteral(keyValue));
+          return _core.types.stringLiteral(keyValue);
+        }
+      default:
+        {
+          const ref = propertyPath.scope.maybeGenerateMemoised(key);
+          propertyPath.get("key").replaceWith(_core.types.assignmentExpression("=", ref, createToPropertyKeyCall(state, key)));
+          return _core.types.cloneNode(ref);
+        }
+    }
+  }
+  return {
+    VariableDeclarator(path, state) {
+      const id = path.node.id;
+      if (id.type === "Identifier") {
+        const initializer = (0, _helperSkipTransparentExpressionWrappers.skipTransparentExprWrappers)(path.get("init"));
+        if (isAnonymous(initializer)) {
+          const name = id.name;
+          visitor(initializer, state, name);
+        }
+      }
+    },
+    AssignmentExpression(path, state) {
+      const id = path.node.left;
+      if (id.type === "Identifier") {
+        const initializer = (0, _helperSkipTransparentExpressionWrappers.skipTransparentExprWrappers)(path.get("right"));
+        if (isAnonymous(initializer)) {
+          switch (path.node.operator) {
+            case "=":
+            case "&&=":
+            case "||=":
+            case "??=":
+              visitor(initializer, state, id.name);
+          }
+        }
+      }
+    },
+    AssignmentPattern(path, state) {
+      const id = path.node.left;
+      if (id.type === "Identifier") {
+        const initializer = (0, _helperSkipTransparentExpressionWrappers.skipTransparentExprWrappers)(path.get("right"));
+        if (isAnonymous(initializer)) {
+          const name = id.name;
+          visitor(initializer, state, name);
+        }
+      }
+    },
+    ObjectExpression(path, state) {
+      for (const propertyPath of path.get("properties")) {
+        if (!propertyPath.isObjectProperty()) continue;
+        const {
+          node
+        } = propertyPath;
+        const id = node.key;
+        const initializer = (0, _helperSkipTransparentExpressionWrappers.skipTransparentExprWrappers)(propertyPath.get("value"));
+        if (isAnonymous(initializer)) {
+          if (!node.computed) {
+            if (!isProtoKey(id)) {
+              if (id.type === "Identifier") {
+                visitor(initializer, state, id.name);
+              } else {
+                const className = _core.types.stringLiteral(id.value + "");
+                visitor(initializer, state, className);
+              }
+            }
+          } else {
+            const ref = handleComputedProperty(propertyPath, id, state);
+            visitor(initializer, state, ref);
+          }
+        }
+      }
+    },
+    ClassPrivateProperty(path, state) {
+      const {
+        node
+      } = path;
+      const initializer = (0, _helperSkipTransparentExpressionWrappers.skipTransparentExprWrappers)(path.get("value"));
+      if (isAnonymous(initializer)) {
+        const className = _core.types.stringLiteral("#" + node.key.id.name);
+        visitor(initializer, state, className);
+      }
+    },
+    ClassAccessorProperty(path, state) {
+      const {
+        node
+      } = path;
+      const id = node.key;
+      const initializer = (0, _helperSkipTransparentExpressionWrappers.skipTransparentExprWrappers)(path.get("value"));
+      if (isAnonymous(initializer)) {
+        if (!node.computed) {
+          if (id.type === "Identifier") {
+            visitor(initializer, state, id.name);
+          } else if (id.type === "PrivateName") {
+            const className = _core.types.stringLiteral("#" + id.id.name);
+            visitor(initializer, state, className);
+          } else {
+            const className = _core.types.stringLiteral(id.value + "");
+            visitor(initializer, state, className);
+          }
+        } else {
+          const ref = handleComputedProperty(path, id, state);
+          visitor(initializer, state, ref);
+        }
+      }
+    },
+    ClassProperty(path, state) {
+      const {
+        node
+      } = path;
+      const id = node.key;
+      const initializer = (0, _helperSkipTransparentExpressionWrappers.skipTransparentExprWrappers)(path.get("value"));
+      if (isAnonymous(initializer)) {
+        if (!node.computed) {
+          if (id.type === "Identifier") {
+            visitor(initializer, state, id.name);
+          } else {
+            const className = _core.types.stringLiteral(id.value + "");
+            visitor(initializer, state, className);
+          }
+        } else {
+          const ref = handleComputedProperty(path, id, state);
+          visitor(initializer, state, ref);
+        }
+      }
+    }
+  };
+}
+function isDecoratedAnonymousClassExpression(path) {
+  return path.isClassExpression({
+    id: null
+  }) && shouldTransformClass(path.node);
+}
+function generateLetUidIdentifier(scope, name) {
+  const id = scope.generateUidIdentifier(name);
+  scope.push({
+    id,
+    kind: "let"
+  });
+  return _core.types.cloneNode(id);
+}
+function _default({
+  assertVersion,
+  assumption
+}, {
+  loose
+}, version, inherits) {
+  var _assumption, _assumption2;
+  {
+    if (version === "2023-11" || version === "2023-05" || version === "2023-01") {
+      assertVersion("^7.21.0");
+    } else if (version === "2021-12") {
+      assertVersion("^7.16.0");
+    } else {
+      assertVersion("^7.19.0");
+    }
+  }
+  const VISITED = new WeakSet();
+  const constantSuper = (_assumption = assumption("constantSuper")) != null ? _assumption : loose;
+  const ignoreFunctionLength = (_assumption2 = assumption("ignoreFunctionLength")) != null ? _assumption2 : loose;
+  const namedEvaluationVisitor = NamedEvaluationVisitoryFactory(isDecoratedAnonymousClassExpression, visitClass);
+  function visitClass(path, state, className) {
+    var _node$id;
+    if (VISITED.has(path)) return;
+    const {
+      node
+    } = path;
+    className != null ? className : className = (_node$id = node.id) == null ? void 0 : _node$id.name;
+    const newPath = transformClass(path, state, constantSuper, ignoreFunctionLength, className, namedEvaluationVisitor, version);
+    if (newPath) {
+      VISITED.add(newPath);
+      return;
+    }
+    VISITED.add(path);
+  }
+  return {
+    name: "proposal-decorators",
+    inherits: inherits,
+    visitor: Object.assign({
+      ExportDefaultDeclaration(path, state) {
+        const {
+          declaration
+        } = path.node;
+        if ((declaration == null ? void 0 : declaration.type) === "ClassDeclaration" && isDecorated(declaration)) {
+          const isAnonymous = !declaration.id;
+          {
+            var _path$splitExportDecl;
+            (_path$splitExportDecl = path.splitExportDeclaration) != null ? _path$splitExportDecl : path.splitExportDeclaration = require("@babel/traverse").NodePath.prototype.splitExportDeclaration;
+          }
+          const updatedVarDeclarationPath = path.splitExportDeclaration();
+          if (isAnonymous) {
+            visitClass(updatedVarDeclarationPath, state, _core.types.stringLiteral("default"));
+          }
+        }
+      },
+      ExportNamedDeclaration(path) {
+        const {
+          declaration
+        } = path.node;
+        if ((declaration == null ? void 0 : declaration.type) === "ClassDeclaration" && isDecorated(declaration)) {
+          {
+            var _path$splitExportDecl2;
+            (_path$splitExportDecl2 = path.splitExportDeclaration) != null ? _path$splitExportDecl2 : path.splitExportDeclaration = require("@babel/traverse").NodePath.prototype.splitExportDeclaration;
+          }
+          path.splitExportDeclaration();
+        }
+      },
+      Class(path, state) {
+        visitClass(path, state, undefined);
+      }
+    }, namedEvaluationVisitor)
+  };
+}
+
+//# sourceMappingURL=decorators.js.map

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
node_modules/@babel/helper-create-class-features-plugin/lib/decorators.js.map


+ 147 - 0
node_modules/@babel/helper-create-class-features-plugin/lib/features.js

@@ -0,0 +1,147 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.FEATURES = void 0;
+exports.enableFeature = enableFeature;
+exports.isLoose = isLoose;
+exports.shouldTransform = shouldTransform;
+var _decorators = require("./decorators.js");
+const FEATURES = exports.FEATURES = Object.freeze({
+  fields: 1 << 1,
+  privateMethods: 1 << 2,
+  decorators: 1 << 3,
+  privateIn: 1 << 4,
+  staticBlocks: 1 << 5
+});
+const featuresSameLoose = new Map([[FEATURES.fields, "@babel/plugin-transform-class-properties"], [FEATURES.privateMethods, "@babel/plugin-transform-private-methods"], [FEATURES.privateIn, "@babel/plugin-transform-private-property-in-object"]]);
+const featuresKey = "@babel/plugin-class-features/featuresKey";
+const looseKey = "@babel/plugin-class-features/looseKey";
+{
+  var looseLowPriorityKey = "@babel/plugin-class-features/looseLowPriorityKey/#__internal__@babel/preset-env__please-overwrite-loose-instead-of-throwing";
+}
+{
+  var canIgnoreLoose = function (file, feature) {
+    return !!(file.get(looseLowPriorityKey) & feature);
+  };
+}
+function enableFeature(file, feature, loose) {
+  if (!hasFeature(file, feature) || canIgnoreLoose(file, feature)) {
+    file.set(featuresKey, file.get(featuresKey) | feature);
+    if (loose === "#__internal__@babel/preset-env__prefer-true-but-false-is-ok-if-it-prevents-an-error") {
+      setLoose(file, feature, true);
+      file.set(looseLowPriorityKey, file.get(looseLowPriorityKey) | feature);
+    } else if (loose === "#__internal__@babel/preset-env__prefer-false-but-true-is-ok-if-it-prevents-an-error") {
+      setLoose(file, feature, false);
+      file.set(looseLowPriorityKey, file.get(looseLowPriorityKey) | feature);
+    } else {
+      setLoose(file, feature, loose);
+    }
+  }
+  let resolvedLoose;
+  for (const [mask, name] of featuresSameLoose) {
+    if (!hasFeature(file, mask)) continue;
+    {
+      if (canIgnoreLoose(file, mask)) continue;
+    }
+    const loose = isLoose(file, mask);
+    if (resolvedLoose === !loose) {
+      throw new Error("'loose' mode configuration must be the same for @babel/plugin-transform-class-properties, " + "@babel/plugin-transform-private-methods and " + "@babel/plugin-transform-private-property-in-object (when they are enabled)." + "\n\n" + getBabelShowConfigForHint(file));
+    } else {
+      resolvedLoose = loose;
+      {
+        var higherPriorityPluginName = name;
+      }
+    }
+  }
+  if (resolvedLoose !== undefined) {
+    for (const [mask, name] of featuresSameLoose) {
+      if (hasFeature(file, mask) && isLoose(file, mask) !== resolvedLoose) {
+        setLoose(file, mask, resolvedLoose);
+        console.warn(`Though the "loose" option was set to "${!resolvedLoose}" in your @babel/preset-env ` + `config, it will not be used for ${name} since the "loose" mode option was set to ` + `"${resolvedLoose}" for ${higherPriorityPluginName}.\nThe "loose" option must be the ` + `same for @babel/plugin-transform-class-properties, @babel/plugin-transform-private-methods ` + `and @babel/plugin-transform-private-property-in-object (when they are enabled): you can ` + `silence this warning by explicitly adding\n` + `\t["${name}", { "loose": ${resolvedLoose} }]\n` + `to the "plugins" section of your Babel config.` + "\n\n" + getBabelShowConfigForHint(file));
+      }
+    }
+  }
+}
+function getBabelShowConfigForHint(file) {
+  let {
+    filename
+  } = file.opts;
+  if (!filename || filename === "unknown") {
+    filename = "[name of the input file]";
+  }
+  return `\
+If you already set the same 'loose' mode for these plugins in your config, it's possible that they \
+are enabled multiple times with different options.
+You can re-run Babel with the BABEL_SHOW_CONFIG_FOR environment variable to show the loaded \
+configuration:
+\tnpx cross-env BABEL_SHOW_CONFIG_FOR=${filename} <your build command>
+See https://babeljs.io/docs/configuration#print-effective-configs for more info.`;
+}
+function hasFeature(file, feature) {
+  return !!(file.get(featuresKey) & feature);
+}
+function isLoose(file, feature) {
+  return !!(file.get(looseKey) & feature);
+}
+function setLoose(file, feature, loose) {
+  if (loose) file.set(looseKey, file.get(looseKey) | feature);else file.set(looseKey, file.get(looseKey) & ~feature);
+  {
+    file.set(looseLowPriorityKey, file.get(looseLowPriorityKey) & ~feature);
+  }
+}
+function shouldTransform(path, file) {
+  let decoratorPath = null;
+  let publicFieldPath = null;
+  let privateFieldPath = null;
+  let privateMethodPath = null;
+  let staticBlockPath = null;
+  if ((0, _decorators.hasOwnDecorators)(path.node)) {
+    decoratorPath = path.get("decorators.0");
+  }
+  for (const el of path.get("body.body")) {
+    if (!decoratorPath && (0, _decorators.hasOwnDecorators)(el.node)) {
+      decoratorPath = el.get("decorators.0");
+    }
+    if (!publicFieldPath && el.isClassProperty()) {
+      publicFieldPath = el;
+    }
+    if (!privateFieldPath && el.isClassPrivateProperty()) {
+      privateFieldPath = el;
+    }
+    if (!privateMethodPath && el.isClassPrivateMethod != null && el.isClassPrivateMethod()) {
+      privateMethodPath = el;
+    }
+    if (!staticBlockPath && el.isStaticBlock != null && el.isStaticBlock()) {
+      staticBlockPath = el;
+    }
+  }
+  if (decoratorPath && privateFieldPath) {
+    throw privateFieldPath.buildCodeFrameError("Private fields in decorated classes are not supported yet.");
+  }
+  if (decoratorPath && privateMethodPath) {
+    throw privateMethodPath.buildCodeFrameError("Private methods in decorated classes are not supported yet.");
+  }
+  if (decoratorPath && !hasFeature(file, FEATURES.decorators)) {
+    throw path.buildCodeFrameError("Decorators are not enabled." + "\nIf you are using " + '["@babel/plugin-proposal-decorators", { "version": "legacy" }], ' + 'make sure it comes *before* "@babel/plugin-transform-class-properties" ' + "and enable loose mode, like so:\n" + '\t["@babel/plugin-proposal-decorators", { "version": "legacy" }]\n' + '\t["@babel/plugin-transform-class-properties", { "loose": true }]');
+  }
+  if (privateMethodPath && !hasFeature(file, FEATURES.privateMethods)) {
+    throw privateMethodPath.buildCodeFrameError("Class private methods are not enabled. " + "Please add `@babel/plugin-transform-private-methods` to your configuration.");
+  }
+  if ((publicFieldPath || privateFieldPath) && !hasFeature(file, FEATURES.fields) && !hasFeature(file, FEATURES.privateMethods)) {
+    throw path.buildCodeFrameError("Class fields are not enabled. " + "Please add `@babel/plugin-transform-class-properties` to your configuration.");
+  }
+  if (staticBlockPath && !hasFeature(file, FEATURES.staticBlocks)) {
+    throw path.buildCodeFrameError("Static class blocks are not enabled. " + "Please add `@babel/plugin-transform-class-static-block` to your configuration.");
+  }
+  if (decoratorPath || privateMethodPath || staticBlockPath) {
+    return true;
+  }
+  if ((publicFieldPath || privateFieldPath) && hasFeature(file, FEATURES.fields)) {
+    return true;
+  }
+  return false;
+}
+
+//# sourceMappingURL=features.js.map

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
node_modules/@babel/helper-create-class-features-plugin/lib/features.js.map


+ 1052 - 0
node_modules/@babel/helper-create-class-features-plugin/lib/fields.js

@@ -0,0 +1,1052 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.buildCheckInRHS = buildCheckInRHS;
+exports.buildFieldsInitNodes = buildFieldsInitNodes;
+exports.buildPrivateNamesMap = buildPrivateNamesMap;
+exports.buildPrivateNamesNodes = buildPrivateNamesNodes;
+exports.privateNameVisitorFactory = privateNameVisitorFactory;
+exports.transformPrivateNamesUsage = transformPrivateNamesUsage;
+var _core = require("@babel/core");
+var _traverse = require("@babel/traverse");
+var _helperReplaceSupers = require("@babel/helper-replace-supers");
+var _helperMemberExpressionToFunctions = require("@babel/helper-member-expression-to-functions");
+var _helperOptimiseCallExpression = require("@babel/helper-optimise-call-expression");
+var _helperAnnotateAsPure = require("@babel/helper-annotate-as-pure");
+var _helperSkipTransparentExpressionWrappers = require("@babel/helper-skip-transparent-expression-wrappers");
+var ts = require("./typescript.js");
+{
+  var newHelpers = file => {
+    ;
+    return file.availableHelper("classPrivateFieldGet2");
+  };
+}
+function buildPrivateNamesMap(className, privateFieldsAsSymbolsOrProperties, props, file) {
+  const privateNamesMap = new Map();
+  let classBrandId;
+  for (const prop of props) {
+    if (prop.isPrivate()) {
+      const {
+        name
+      } = prop.node.key.id;
+      let update = privateNamesMap.get(name);
+      if (!update) {
+        const isMethod = !prop.isProperty();
+        const isStatic = prop.node.static;
+        let initAdded = false;
+        let id;
+        if (!privateFieldsAsSymbolsOrProperties && newHelpers(file) && isMethod && !isStatic) {
+          initAdded = !!classBrandId;
+          classBrandId != null ? classBrandId : classBrandId = prop.scope.generateUidIdentifier(`${className}_brand`);
+          id = classBrandId;
+        } else {
+          id = prop.scope.generateUidIdentifier(name);
+        }
+        update = {
+          id,
+          static: isStatic,
+          method: isMethod,
+          initAdded
+        };
+        privateNamesMap.set(name, update);
+      }
+      if (prop.isClassPrivateMethod()) {
+        if (prop.node.kind === "get") {
+          const {
+            body
+          } = prop.node.body;
+          let $;
+          if (body.length === 1 && _core.types.isReturnStatement($ = body[0]) && _core.types.isCallExpression($ = $.argument) && $.arguments.length === 1 && _core.types.isThisExpression($.arguments[0]) && _core.types.isIdentifier($ = $.callee)) {
+            update.getId = _core.types.cloneNode($);
+            update.getterDeclared = true;
+          } else {
+            update.getId = prop.scope.generateUidIdentifier(`get_${name}`);
+          }
+        } else if (prop.node.kind === "set") {
+          const {
+            params
+          } = prop.node;
+          const {
+            body
+          } = prop.node.body;
+          let $;
+          if (body.length === 1 && _core.types.isExpressionStatement($ = body[0]) && _core.types.isCallExpression($ = $.expression) && $.arguments.length === 2 && _core.types.isThisExpression($.arguments[0]) && _core.types.isIdentifier($.arguments[1], {
+            name: params[0].name
+          }) && _core.types.isIdentifier($ = $.callee)) {
+            update.setId = _core.types.cloneNode($);
+            update.setterDeclared = true;
+          } else {
+            update.setId = prop.scope.generateUidIdentifier(`set_${name}`);
+          }
+        } else if (prop.node.kind === "method") {
+          update.methodId = prop.scope.generateUidIdentifier(name);
+        }
+      }
+      privateNamesMap.set(name, update);
+    }
+  }
+  return privateNamesMap;
+}
+function buildPrivateNamesNodes(privateNamesMap, privateFieldsAsProperties, privateFieldsAsSymbols, state) {
+  const initNodes = [];
+  const injectedIds = new Set();
+  for (const [name, value] of privateNamesMap) {
+    const {
+      static: isStatic,
+      method: isMethod,
+      getId,
+      setId
+    } = value;
+    const isGetterOrSetter = getId || setId;
+    const id = _core.types.cloneNode(value.id);
+    let init;
+    if (privateFieldsAsProperties) {
+      init = _core.types.callExpression(state.addHelper("classPrivateFieldLooseKey"), [_core.types.stringLiteral(name)]);
+    } else if (privateFieldsAsSymbols) {
+      init = _core.types.callExpression(_core.types.identifier("Symbol"), [_core.types.stringLiteral(name)]);
+    } else if (!isStatic) {
+      if (injectedIds.has(id.name)) continue;
+      injectedIds.add(id.name);
+      init = _core.types.newExpression(_core.types.identifier(isMethod && (!isGetterOrSetter || newHelpers(state)) ? "WeakSet" : "WeakMap"), []);
+    }
+    if (init) {
+      if (!privateFieldsAsSymbols) {
+        (0, _helperAnnotateAsPure.default)(init);
+      }
+      initNodes.push(_core.template.statement.ast`var ${id} = ${init}`);
+    }
+  }
+  return initNodes;
+}
+function privateNameVisitorFactory(visitor) {
+  const nestedVisitor = _traverse.visitors.environmentVisitor(Object.assign({}, visitor));
+  const privateNameVisitor = Object.assign({}, visitor, {
+    Class(path) {
+      const {
+        privateNamesMap
+      } = this;
+      const body = path.get("body.body");
+      const visiblePrivateNames = new Map(privateNamesMap);
+      const redeclared = [];
+      for (const prop of body) {
+        if (!prop.isPrivate()) continue;
+        const {
+          name
+        } = prop.node.key.id;
+        visiblePrivateNames.delete(name);
+        redeclared.push(name);
+      }
+      if (!redeclared.length) {
+        return;
+      }
+      path.get("body").traverse(nestedVisitor, Object.assign({}, this, {
+        redeclared
+      }));
+      path.traverse(privateNameVisitor, Object.assign({}, this, {
+        privateNamesMap: visiblePrivateNames
+      }));
+      path.skipKey("body");
+    }
+  });
+  return privateNameVisitor;
+}
+const privateNameVisitor = privateNameVisitorFactory({
+  PrivateName(path, {
+    noDocumentAll
+  }) {
+    const {
+      privateNamesMap,
+      redeclared
+    } = this;
+    const {
+      node,
+      parentPath
+    } = path;
+    if (!parentPath.isMemberExpression({
+      property: node
+    }) && !parentPath.isOptionalMemberExpression({
+      property: node
+    })) {
+      return;
+    }
+    const {
+      name
+    } = node.id;
+    if (!privateNamesMap.has(name)) return;
+    if (redeclared != null && redeclared.includes(name)) return;
+    this.handle(parentPath, noDocumentAll);
+  }
+});
+function unshadow(name, scope, innerBinding) {
+  while ((_scope = scope) != null && _scope.hasBinding(name) && !scope.bindingIdentifierEquals(name, innerBinding)) {
+    var _scope;
+    scope.rename(name);
+    scope = scope.parent;
+  }
+}
+function buildCheckInRHS(rhs, file, inRHSIsObject) {
+  if (inRHSIsObject || !(file.availableHelper != null && file.availableHelper("checkInRHS"))) return rhs;
+  return _core.types.callExpression(file.addHelper("checkInRHS"), [rhs]);
+}
+const privateInVisitor = privateNameVisitorFactory({
+  BinaryExpression(path, {
+    file
+  }) {
+    const {
+      operator,
+      left,
+      right
+    } = path.node;
+    if (operator !== "in") return;
+    if (!_core.types.isPrivateName(left)) return;
+    const {
+      privateFieldsAsProperties,
+      privateNamesMap,
+      redeclared
+    } = this;
+    const {
+      name
+    } = left.id;
+    if (!privateNamesMap.has(name)) return;
+    if (redeclared != null && redeclared.includes(name)) return;
+    unshadow(this.classRef.name, path.scope, this.innerBinding);
+    if (privateFieldsAsProperties) {
+      const {
+        id
+      } = privateNamesMap.get(name);
+      path.replaceWith(_core.template.expression.ast`
+        Object.prototype.hasOwnProperty.call(${buildCheckInRHS(right, file)}, ${_core.types.cloneNode(id)})
+      `);
+      return;
+    }
+    const {
+      id,
+      static: isStatic
+    } = privateNamesMap.get(name);
+    if (isStatic) {
+      path.replaceWith(_core.template.expression.ast`${buildCheckInRHS(right, file)} === ${_core.types.cloneNode(this.classRef)}`);
+      return;
+    }
+    path.replaceWith(_core.template.expression.ast`${_core.types.cloneNode(id)}.has(${buildCheckInRHS(right, file)})`);
+  }
+});
+function readOnlyError(file, name) {
+  return _core.types.callExpression(file.addHelper("readOnlyError"), [_core.types.stringLiteral(`#${name}`)]);
+}
+function writeOnlyError(file, name) {
+  if (!file.availableHelper("writeOnlyError")) {
+    console.warn(`@babel/helpers is outdated, update it to silence this warning.`);
+    return _core.types.buildUndefinedNode();
+  }
+  return _core.types.callExpression(file.addHelper("writeOnlyError"), [_core.types.stringLiteral(`#${name}`)]);
+}
+function buildStaticPrivateFieldAccess(expr, noUninitializedPrivateFieldAccess) {
+  if (noUninitializedPrivateFieldAccess) return expr;
+  return _core.types.memberExpression(expr, _core.types.identifier("_"));
+}
+function autoInherits(fn) {
+  return function (member) {
+    return _core.types.inherits(fn.apply(this, arguments), member.node);
+  };
+}
+const privateNameHandlerSpec = {
+  memoise(member, count) {
+    const {
+      scope
+    } = member;
+    const {
+      object
+    } = member.node;
+    const memo = scope.maybeGenerateMemoised(object);
+    if (!memo) {
+      return;
+    }
+    this.memoiser.set(object, memo, count);
+  },
+  receiver(member) {
+    const {
+      object
+    } = member.node;
+    if (this.memoiser.has(object)) {
+      return _core.types.cloneNode(this.memoiser.get(object));
+    }
+    return _core.types.cloneNode(object);
+  },
+  get: autoInherits(function (member) {
+    const {
+      classRef,
+      privateNamesMap,
+      file,
+      innerBinding,
+      noUninitializedPrivateFieldAccess
+    } = this;
+    const privateName = member.node.property;
+    const {
+      name
+    } = privateName.id;
+    const {
+      id,
+      static: isStatic,
+      method: isMethod,
+      methodId,
+      getId,
+      setId
+    } = privateNamesMap.get(name);
+    const isGetterOrSetter = getId || setId;
+    const cloneId = id => _core.types.inherits(_core.types.cloneNode(id), privateName);
+    if (isStatic) {
+      unshadow(classRef.name, member.scope, innerBinding);
+      if (!newHelpers(file)) {
+        const helperName = isMethod && !isGetterOrSetter ? "classStaticPrivateMethodGet" : "classStaticPrivateFieldSpecGet";
+        return _core.types.callExpression(file.addHelper(helperName), [this.receiver(member), _core.types.cloneNode(classRef), cloneId(id)]);
+      }
+      const receiver = this.receiver(member);
+      const skipCheck = _core.types.isIdentifier(receiver) && receiver.name === classRef.name;
+      if (!isMethod) {
+        if (skipCheck) {
+          return buildStaticPrivateFieldAccess(cloneId(id), noUninitializedPrivateFieldAccess);
+        }
+        return buildStaticPrivateFieldAccess(_core.types.callExpression(file.addHelper("assertClassBrand"), [_core.types.cloneNode(classRef), receiver, cloneId(id)]), noUninitializedPrivateFieldAccess);
+      }
+      if (getId) {
+        if (skipCheck) {
+          return _core.types.callExpression(cloneId(getId), [receiver]);
+        }
+        return _core.types.callExpression(file.addHelper("classPrivateGetter"), [_core.types.cloneNode(classRef), receiver, cloneId(getId)]);
+      }
+      if (setId) {
+        const err = _core.types.buildUndefinedNode();
+        if (skipCheck) return err;
+        return _core.types.sequenceExpression([_core.types.callExpression(file.addHelper("assertClassBrand"), [_core.types.cloneNode(classRef), receiver]), err]);
+      }
+      if (skipCheck) return cloneId(id);
+      return _core.types.callExpression(file.addHelper("assertClassBrand"), [_core.types.cloneNode(classRef), receiver, cloneId(id)]);
+    }
+    if (isMethod) {
+      if (isGetterOrSetter) {
+        if (!getId) {
+          return _core.types.sequenceExpression([this.receiver(member), writeOnlyError(file, name)]);
+        }
+        if (!newHelpers(file)) {
+          return _core.types.callExpression(file.addHelper("classPrivateFieldGet"), [this.receiver(member), cloneId(id)]);
+        }
+        return _core.types.callExpression(file.addHelper("classPrivateGetter"), [_core.types.cloneNode(id), this.receiver(member), cloneId(getId)]);
+      }
+      if (!newHelpers(file)) {
+        return _core.types.callExpression(file.addHelper("classPrivateMethodGet"), [this.receiver(member), _core.types.cloneNode(id), cloneId(methodId)]);
+      }
+      return _core.types.callExpression(file.addHelper("assertClassBrand"), [_core.types.cloneNode(id), this.receiver(member), cloneId(methodId)]);
+    }
+    if (newHelpers(file)) {
+      return _core.types.callExpression(file.addHelper("classPrivateFieldGet2"), [cloneId(id), this.receiver(member)]);
+    }
+    return _core.types.callExpression(file.addHelper("classPrivateFieldGet"), [this.receiver(member), cloneId(id)]);
+  }),
+  boundGet(member) {
+    this.memoise(member, 1);
+    return _core.types.callExpression(_core.types.memberExpression(this.get(member), _core.types.identifier("bind")), [this.receiver(member)]);
+  },
+  set: autoInherits(function (member, value) {
+    const {
+      classRef,
+      privateNamesMap,
+      file,
+      noUninitializedPrivateFieldAccess
+    } = this;
+    const privateName = member.node.property;
+    const {
+      name
+    } = privateName.id;
+    const {
+      id,
+      static: isStatic,
+      method: isMethod,
+      setId,
+      getId
+    } = privateNamesMap.get(name);
+    const isGetterOrSetter = getId || setId;
+    const cloneId = id => _core.types.inherits(_core.types.cloneNode(id), privateName);
+    if (isStatic) {
+      if (!newHelpers(file)) {
+        const helperName = isMethod && !isGetterOrSetter ? "classStaticPrivateMethodSet" : "classStaticPrivateFieldSpecSet";
+        return _core.types.callExpression(file.addHelper(helperName), [this.receiver(member), _core.types.cloneNode(classRef), cloneId(id), value]);
+      }
+      const receiver = this.receiver(member);
+      const skipCheck = _core.types.isIdentifier(receiver) && receiver.name === classRef.name;
+      if (isMethod && !setId) {
+        const err = readOnlyError(file, name);
+        if (skipCheck) return _core.types.sequenceExpression([value, err]);
+        return _core.types.sequenceExpression([value, _core.types.callExpression(file.addHelper("assertClassBrand"), [_core.types.cloneNode(classRef), receiver]), readOnlyError(file, name)]);
+      }
+      if (setId) {
+        if (skipCheck) {
+          return _core.types.callExpression(_core.types.cloneNode(setId), [receiver, value]);
+        }
+        return _core.types.callExpression(file.addHelper("classPrivateSetter"), [_core.types.cloneNode(classRef), cloneId(setId), receiver, value]);
+      }
+      return _core.types.assignmentExpression("=", buildStaticPrivateFieldAccess(cloneId(id), noUninitializedPrivateFieldAccess), skipCheck ? value : _core.types.callExpression(file.addHelper("assertClassBrand"), [_core.types.cloneNode(classRef), receiver, value]));
+    }
+    if (isMethod) {
+      if (setId) {
+        if (!newHelpers(file)) {
+          return _core.types.callExpression(file.addHelper("classPrivateFieldSet"), [this.receiver(member), cloneId(id), value]);
+        }
+        return _core.types.callExpression(file.addHelper("classPrivateSetter"), [_core.types.cloneNode(id), cloneId(setId), this.receiver(member), value]);
+      }
+      return _core.types.sequenceExpression([this.receiver(member), value, readOnlyError(file, name)]);
+    }
+    if (newHelpers(file)) {
+      return _core.types.callExpression(file.addHelper("classPrivateFieldSet2"), [cloneId(id), this.receiver(member), value]);
+    }
+    return _core.types.callExpression(file.addHelper("classPrivateFieldSet"), [this.receiver(member), cloneId(id), value]);
+  }),
+  destructureSet(member) {
+    const {
+      classRef,
+      privateNamesMap,
+      file,
+      noUninitializedPrivateFieldAccess
+    } = this;
+    const privateName = member.node.property;
+    const {
+      name
+    } = privateName.id;
+    const {
+      id,
+      static: isStatic,
+      method: isMethod,
+      setId
+    } = privateNamesMap.get(name);
+    const cloneId = id => _core.types.inherits(_core.types.cloneNode(id), privateName);
+    if (!newHelpers(file)) {
+      if (isStatic) {
+        try {
+          var helper = file.addHelper("classStaticPrivateFieldDestructureSet");
+        } catch (_unused) {
+          throw new Error("Babel can not transpile `[C.#p] = [0]` with @babel/helpers < 7.13.10, \n" + "please update @babel/helpers to the latest version.");
+        }
+        return _core.types.memberExpression(_core.types.callExpression(helper, [this.receiver(member), _core.types.cloneNode(classRef), cloneId(id)]), _core.types.identifier("value"));
+      }
+      return _core.types.memberExpression(_core.types.callExpression(file.addHelper("classPrivateFieldDestructureSet"), [this.receiver(member), cloneId(id)]), _core.types.identifier("value"));
+    }
+    if (isMethod && !setId) {
+      return _core.types.memberExpression(_core.types.sequenceExpression([member.node.object, readOnlyError(file, name)]), _core.types.identifier("_"));
+    }
+    if (isStatic && !isMethod) {
+      const getCall = this.get(member);
+      if (!noUninitializedPrivateFieldAccess || !_core.types.isCallExpression(getCall)) {
+        return getCall;
+      }
+      const ref = getCall.arguments.pop();
+      getCall.arguments.push(_core.template.expression.ast`(_) => ${ref} = _`);
+      return _core.types.memberExpression(_core.types.callExpression(file.addHelper("toSetter"), [getCall]), _core.types.identifier("_"));
+    }
+    const setCall = this.set(member, _core.types.identifier("_"));
+    if (!_core.types.isCallExpression(setCall) || !_core.types.isIdentifier(setCall.arguments[setCall.arguments.length - 1], {
+      name: "_"
+    })) {
+      throw member.buildCodeFrameError("Internal Babel error while compiling this code. This is a Babel bug. " + "Please report it at https://github.com/babel/babel/issues.");
+    }
+    let args;
+    if (_core.types.isMemberExpression(setCall.callee, {
+      computed: false
+    }) && _core.types.isIdentifier(setCall.callee.property) && setCall.callee.property.name === "call") {
+      args = [setCall.callee.object, _core.types.arrayExpression(setCall.arguments.slice(1, -1)), setCall.arguments[0]];
+    } else {
+      args = [setCall.callee, _core.types.arrayExpression(setCall.arguments.slice(0, -1))];
+    }
+    return _core.types.memberExpression(_core.types.callExpression(file.addHelper("toSetter"), args), _core.types.identifier("_"));
+  },
+  call(member, args) {
+    this.memoise(member, 1);
+    return (0, _helperOptimiseCallExpression.default)(this.get(member), this.receiver(member), args, false);
+  },
+  optionalCall(member, args) {
+    this.memoise(member, 1);
+    return (0, _helperOptimiseCallExpression.default)(this.get(member), this.receiver(member), args, true);
+  },
+  delete() {
+    throw new Error("Internal Babel error: deleting private elements is a parsing error.");
+  }
+};
+const privateNameHandlerLoose = {
+  get(member) {
+    const {
+      privateNamesMap,
+      file
+    } = this;
+    const {
+      object
+    } = member.node;
+    const {
+      name
+    } = member.node.property.id;
+    return _core.template.expression`BASE(REF, PROP)[PROP]`({
+      BASE: file.addHelper("classPrivateFieldLooseBase"),
+      REF: _core.types.cloneNode(object),
+      PROP: _core.types.cloneNode(privateNamesMap.get(name).id)
+    });
+  },
+  set() {
+    throw new Error("private name handler with loose = true don't need set()");
+  },
+  boundGet(member) {
+    return _core.types.callExpression(_core.types.memberExpression(this.get(member), _core.types.identifier("bind")), [_core.types.cloneNode(member.node.object)]);
+  },
+  simpleSet(member) {
+    return this.get(member);
+  },
+  destructureSet(member) {
+    return this.get(member);
+  },
+  call(member, args) {
+    return _core.types.callExpression(this.get(member), args);
+  },
+  optionalCall(member, args) {
+    return _core.types.optionalCallExpression(this.get(member), args, true);
+  },
+  delete() {
+    throw new Error("Internal Babel error: deleting private elements is a parsing error.");
+  }
+};
+function transformPrivateNamesUsage(ref, path, privateNamesMap, {
+  privateFieldsAsProperties,
+  noUninitializedPrivateFieldAccess,
+  noDocumentAll,
+  innerBinding
+}, state) {
+  if (!privateNamesMap.size) return;
+  const body = path.get("body");
+  const handler = privateFieldsAsProperties ? privateNameHandlerLoose : privateNameHandlerSpec;
+  (0, _helperMemberExpressionToFunctions.default)(body, privateNameVisitor, Object.assign({
+    privateNamesMap,
+    classRef: ref,
+    file: state
+  }, handler, {
+    noDocumentAll,
+    noUninitializedPrivateFieldAccess,
+    innerBinding
+  }));
+  body.traverse(privateInVisitor, {
+    privateNamesMap,
+    classRef: ref,
+    file: state,
+    privateFieldsAsProperties,
+    innerBinding
+  });
+}
+function buildPrivateFieldInitLoose(ref, prop, privateNamesMap) {
+  const {
+    id
+  } = privateNamesMap.get(prop.node.key.id.name);
+  const value = prop.node.value || prop.scope.buildUndefinedNode();
+  return inheritPropComments(_core.template.statement.ast`
+      Object.defineProperty(${ref}, ${_core.types.cloneNode(id)}, {
+        // configurable is false by default
+        // enumerable is false by default
+        writable: true,
+        value: ${value}
+      });
+    `, prop);
+}
+function buildPrivateInstanceFieldInitSpec(ref, prop, privateNamesMap, state) {
+  const {
+    id
+  } = privateNamesMap.get(prop.node.key.id.name);
+  const value = prop.node.value || prop.scope.buildUndefinedNode();
+  {
+    if (!state.availableHelper("classPrivateFieldInitSpec")) {
+      return inheritPropComments(_core.template.statement.ast`${_core.types.cloneNode(id)}.set(${ref}, {
+          // configurable is always false for private elements
+          // enumerable is always false for private elements
+          writable: true,
+          value: ${value},
+        })`, prop);
+    }
+  }
+  const helper = state.addHelper("classPrivateFieldInitSpec");
+  return inheritLoc(inheritPropComments(_core.types.expressionStatement(_core.types.callExpression(helper, [_core.types.thisExpression(), inheritLoc(_core.types.cloneNode(id), prop.node.key), newHelpers(state) ? value : _core.template.expression.ast`{ writable: true, value: ${value} }`])), prop), prop.node);
+}
+function buildPrivateStaticFieldInitSpec(prop, privateNamesMap, noUninitializedPrivateFieldAccess) {
+  const privateName = privateNamesMap.get(prop.node.key.id.name);
+  const value = noUninitializedPrivateFieldAccess ? prop.node.value : _core.template.expression.ast`{
+        _: ${prop.node.value || _core.types.buildUndefinedNode()}
+      }`;
+  return inheritPropComments(_core.types.variableDeclaration("var", [_core.types.variableDeclarator(_core.types.cloneNode(privateName.id), value)]), prop);
+}
+{
+  var buildPrivateStaticFieldInitSpecOld = function (prop, privateNamesMap) {
+    const privateName = privateNamesMap.get(prop.node.key.id.name);
+    const {
+      id,
+      getId,
+      setId,
+      initAdded
+    } = privateName;
+    const isGetterOrSetter = getId || setId;
+    if (!prop.isProperty() && (initAdded || !isGetterOrSetter)) return;
+    if (isGetterOrSetter) {
+      privateNamesMap.set(prop.node.key.id.name, Object.assign({}, privateName, {
+        initAdded: true
+      }));
+      return inheritPropComments(_core.template.statement.ast`
+          var ${_core.types.cloneNode(id)} = {
+            // configurable is false by default
+            // enumerable is false by default
+            // writable is false by default
+            get: ${getId ? getId.name : prop.scope.buildUndefinedNode()},
+            set: ${setId ? setId.name : prop.scope.buildUndefinedNode()}
+          }
+        `, prop);
+    }
+    const value = prop.node.value || prop.scope.buildUndefinedNode();
+    return inheritPropComments(_core.template.statement.ast`
+        var ${_core.types.cloneNode(id)} = {
+          // configurable is false by default
+          // enumerable is false by default
+          writable: true,
+          value: ${value}
+        };
+      `, prop);
+  };
+}
+function buildPrivateMethodInitLoose(ref, prop, privateNamesMap) {
+  const privateName = privateNamesMap.get(prop.node.key.id.name);
+  const {
+    methodId,
+    id,
+    getId,
+    setId,
+    initAdded
+  } = privateName;
+  if (initAdded) return;
+  if (methodId) {
+    return inheritPropComments(_core.template.statement.ast`
+        Object.defineProperty(${ref}, ${id}, {
+          // configurable is false by default
+          // enumerable is false by default
+          // writable is false by default
+          value: ${methodId.name}
+        });
+      `, prop);
+  }
+  const isGetterOrSetter = getId || setId;
+  if (isGetterOrSetter) {
+    privateNamesMap.set(prop.node.key.id.name, Object.assign({}, privateName, {
+      initAdded: true
+    }));
+    return inheritPropComments(_core.template.statement.ast`
+        Object.defineProperty(${ref}, ${id}, {
+          // configurable is false by default
+          // enumerable is false by default
+          // writable is false by default
+          get: ${getId ? getId.name : prop.scope.buildUndefinedNode()},
+          set: ${setId ? setId.name : prop.scope.buildUndefinedNode()}
+        });
+      `, prop);
+  }
+}
+function buildPrivateInstanceMethodInitSpec(ref, prop, privateNamesMap, state) {
+  const privateName = privateNamesMap.get(prop.node.key.id.name);
+  if (privateName.initAdded) return;
+  if (!newHelpers(state)) {
+    const isGetterOrSetter = privateName.getId || privateName.setId;
+    if (isGetterOrSetter) {
+      return buildPrivateAccessorInitialization(ref, prop, privateNamesMap, state);
+    }
+  }
+  return buildPrivateInstanceMethodInitialization(ref, prop, privateNamesMap, state);
+}
+function buildPrivateAccessorInitialization(ref, prop, privateNamesMap, state) {
+  const privateName = privateNamesMap.get(prop.node.key.id.name);
+  const {
+    id,
+    getId,
+    setId
+  } = privateName;
+  privateNamesMap.set(prop.node.key.id.name, Object.assign({}, privateName, {
+    initAdded: true
+  }));
+  {
+    if (!state.availableHelper("classPrivateFieldInitSpec")) {
+      return inheritPropComments(_core.template.statement.ast`
+          ${id}.set(${ref}, {
+            get: ${getId ? getId.name : prop.scope.buildUndefinedNode()},
+            set: ${setId ? setId.name : prop.scope.buildUndefinedNode()}
+          });
+        `, prop);
+    }
+  }
+  const helper = state.addHelper("classPrivateFieldInitSpec");
+  return inheritLoc(inheritPropComments(_core.template.statement.ast`${helper}(
+      ${_core.types.thisExpression()},
+      ${_core.types.cloneNode(id)},
+      {
+        get: ${getId ? getId.name : prop.scope.buildUndefinedNode()},
+        set: ${setId ? setId.name : prop.scope.buildUndefinedNode()}
+      },
+    )`, prop), prop.node);
+}
+function buildPrivateInstanceMethodInitialization(ref, prop, privateNamesMap, state) {
+  const privateName = privateNamesMap.get(prop.node.key.id.name);
+  const {
+    id
+  } = privateName;
+  {
+    if (!state.availableHelper("classPrivateMethodInitSpec")) {
+      return inheritPropComments(_core.template.statement.ast`${id}.add(${ref})`, prop);
+    }
+  }
+  const helper = state.addHelper("classPrivateMethodInitSpec");
+  return inheritPropComments(_core.template.statement.ast`${helper}(
+      ${_core.types.thisExpression()},
+      ${_core.types.cloneNode(id)}
+    )`, prop);
+}
+function buildPublicFieldInitLoose(ref, prop) {
+  const {
+    key,
+    computed
+  } = prop.node;
+  const value = prop.node.value || prop.scope.buildUndefinedNode();
+  return inheritPropComments(_core.types.expressionStatement(_core.types.assignmentExpression("=", _core.types.memberExpression(ref, key, computed || _core.types.isLiteral(key)), value)), prop);
+}
+function buildPublicFieldInitSpec(ref, prop, state) {
+  const {
+    key,
+    computed
+  } = prop.node;
+  const value = prop.node.value || prop.scope.buildUndefinedNode();
+  return inheritPropComments(_core.types.expressionStatement(_core.types.callExpression(state.addHelper("defineProperty"), [ref, computed || _core.types.isLiteral(key) ? key : _core.types.stringLiteral(key.name), value])), prop);
+}
+function buildPrivateStaticMethodInitLoose(ref, prop, state, privateNamesMap) {
+  const privateName = privateNamesMap.get(prop.node.key.id.name);
+  const {
+    id,
+    methodId,
+    getId,
+    setId,
+    initAdded
+  } = privateName;
+  if (initAdded) return;
+  const isGetterOrSetter = getId || setId;
+  if (isGetterOrSetter) {
+    privateNamesMap.set(prop.node.key.id.name, Object.assign({}, privateName, {
+      initAdded: true
+    }));
+    return inheritPropComments(_core.template.statement.ast`
+        Object.defineProperty(${ref}, ${id}, {
+          // configurable is false by default
+          // enumerable is false by default
+          // writable is false by default
+          get: ${getId ? getId.name : prop.scope.buildUndefinedNode()},
+          set: ${setId ? setId.name : prop.scope.buildUndefinedNode()}
+        })
+      `, prop);
+  }
+  return inheritPropComments(_core.template.statement.ast`
+      Object.defineProperty(${ref}, ${id}, {
+        // configurable is false by default
+        // enumerable is false by default
+        // writable is false by default
+        value: ${methodId.name}
+      });
+    `, prop);
+}
+function buildPrivateMethodDeclaration(file, prop, privateNamesMap, privateFieldsAsSymbolsOrProperties = false) {
+  const privateName = privateNamesMap.get(prop.node.key.id.name);
+  const {
+    id,
+    methodId,
+    getId,
+    setId,
+    getterDeclared,
+    setterDeclared,
+    static: isStatic
+  } = privateName;
+  const {
+    params,
+    body,
+    generator,
+    async
+  } = prop.node;
+  const isGetter = getId && params.length === 0;
+  const isSetter = setId && params.length > 0;
+  if (isGetter && getterDeclared || isSetter && setterDeclared) {
+    privateNamesMap.set(prop.node.key.id.name, Object.assign({}, privateName, {
+      initAdded: true
+    }));
+    return null;
+  }
+  if (newHelpers(file) && (isGetter || isSetter) && !privateFieldsAsSymbolsOrProperties) {
+    const scope = prop.get("body").scope;
+    const thisArg = scope.generateUidIdentifier("this");
+    const state = {
+      thisRef: thisArg,
+      argumentsPath: []
+    };
+    prop.traverse(thisContextVisitor, state);
+    if (state.argumentsPath.length) {
+      const argumentsId = scope.generateUidIdentifier("arguments");
+      scope.push({
+        id: argumentsId,
+        init: _core.template.expression.ast`[].slice.call(arguments, 1)`
+      });
+      for (const path of state.argumentsPath) {
+        path.replaceWith(_core.types.cloneNode(argumentsId));
+      }
+    }
+    params.unshift(_core.types.cloneNode(thisArg));
+  }
+  let declId = methodId;
+  if (isGetter) {
+    privateNamesMap.set(prop.node.key.id.name, Object.assign({}, privateName, {
+      getterDeclared: true,
+      initAdded: true
+    }));
+    declId = getId;
+  } else if (isSetter) {
+    privateNamesMap.set(prop.node.key.id.name, Object.assign({}, privateName, {
+      setterDeclared: true,
+      initAdded: true
+    }));
+    declId = setId;
+  } else if (isStatic && !privateFieldsAsSymbolsOrProperties) {
+    declId = id;
+  }
+  return inheritPropComments(_core.types.functionDeclaration(_core.types.cloneNode(declId), params, body, generator, async), prop);
+}
+const thisContextVisitor = _traverse.visitors.environmentVisitor({
+  Identifier(path, state) {
+    if (state.argumentsPath && path.node.name === "arguments") {
+      state.argumentsPath.push(path);
+    }
+  },
+  UnaryExpression(path) {
+    const {
+      node
+    } = path;
+    if (node.operator === "delete") {
+      const argument = (0, _helperSkipTransparentExpressionWrappers.skipTransparentExprWrapperNodes)(node.argument);
+      if (_core.types.isThisExpression(argument)) {
+        path.replaceWith(_core.types.booleanLiteral(true));
+      }
+    }
+  },
+  ThisExpression(path, state) {
+    state.needsClassRef = true;
+    path.replaceWith(_core.types.cloneNode(state.thisRef));
+  },
+  MetaProperty(path) {
+    const {
+      node,
+      scope
+    } = path;
+    if (node.meta.name === "new" && node.property.name === "target") {
+      path.replaceWith(scope.buildUndefinedNode());
+    }
+  }
+});
+const innerReferencesVisitor = {
+  ReferencedIdentifier(path, state) {
+    if (path.scope.bindingIdentifierEquals(path.node.name, state.innerBinding)) {
+      state.needsClassRef = true;
+      path.node.name = state.thisRef.name;
+    }
+  }
+};
+function replaceThisContext(path, ref, innerBindingRef) {
+  var _state$thisRef;
+  const state = {
+    thisRef: ref,
+    needsClassRef: false,
+    innerBinding: innerBindingRef
+  };
+  if (!path.isMethod()) {
+    path.traverse(thisContextVisitor, state);
+  }
+  if (innerBindingRef != null && (_state$thisRef = state.thisRef) != null && _state$thisRef.name && state.thisRef.name !== innerBindingRef.name) {
+    path.traverse(innerReferencesVisitor, state);
+  }
+  return state.needsClassRef;
+}
+function isNameOrLength({
+  key,
+  computed
+}) {
+  if (key.type === "Identifier") {
+    return !computed && (key.name === "name" || key.name === "length");
+  }
+  if (key.type === "StringLiteral") {
+    return key.value === "name" || key.value === "length";
+  }
+  return false;
+}
+function inheritPropComments(node, prop) {
+  _core.types.inheritLeadingComments(node, prop.node);
+  _core.types.inheritInnerComments(node, prop.node);
+  return node;
+}
+function inheritLoc(node, original) {
+  node.start = original.start;
+  node.end = original.end;
+  node.loc = original.loc;
+  return node;
+}
+function buildFieldsInitNodes(ref, superRef, props, privateNamesMap, file, setPublicClassFields, privateFieldsAsSymbolsOrProperties, noUninitializedPrivateFieldAccess, constantSuper, innerBindingRef) {
+  let classRefFlags = 0;
+  let injectSuperRef;
+  const staticNodes = [];
+  const instanceNodes = [];
+  let lastInstanceNodeReturnsThis = false;
+  const pureStaticNodes = [];
+  let classBindingNode = null;
+  const getSuperRef = _core.types.isIdentifier(superRef) ? () => superRef : () => {
+    injectSuperRef != null ? injectSuperRef : injectSuperRef = props[0].scope.generateUidIdentifierBasedOnNode(superRef);
+    return injectSuperRef;
+  };
+  const classRefForInnerBinding = ref != null ? ref : props[0].scope.generateUidIdentifier((innerBindingRef == null ? void 0 : innerBindingRef.name) || "Class");
+  ref != null ? ref : ref = _core.types.cloneNode(innerBindingRef);
+  for (const prop of props) {
+    if (prop.isClassProperty()) {
+      ts.assertFieldTransformed(prop);
+    }
+    const isStatic = !(_core.types.isStaticBlock != null && _core.types.isStaticBlock(prop.node)) && prop.node.static;
+    const isInstance = !isStatic;
+    const isPrivate = prop.isPrivate();
+    const isPublic = !isPrivate;
+    const isField = prop.isProperty();
+    const isMethod = !isField;
+    const isStaticBlock = prop.isStaticBlock == null ? void 0 : prop.isStaticBlock();
+    if (isStatic) classRefFlags |= 1;
+    if (isStatic || isMethod && isPrivate || isStaticBlock) {
+      new _helperReplaceSupers.default({
+        methodPath: prop,
+        constantSuper,
+        file: file,
+        refToPreserve: innerBindingRef,
+        getSuperRef,
+        getObjectRef() {
+          classRefFlags |= 2;
+          if (isStatic || isStaticBlock) {
+            return classRefForInnerBinding;
+          } else {
+            return _core.types.memberExpression(classRefForInnerBinding, _core.types.identifier("prototype"));
+          }
+        }
+      }).replace();
+      const replaced = replaceThisContext(prop, classRefForInnerBinding, innerBindingRef);
+      if (replaced) {
+        classRefFlags |= 2;
+      }
+    }
+    lastInstanceNodeReturnsThis = false;
+    switch (true) {
+      case isStaticBlock:
+        {
+          const blockBody = prop.node.body;
+          if (blockBody.length === 1 && _core.types.isExpressionStatement(blockBody[0])) {
+            staticNodes.push(inheritPropComments(blockBody[0], prop));
+          } else {
+            staticNodes.push(_core.types.inheritsComments(_core.template.statement.ast`(() => { ${blockBody} })()`, prop.node));
+          }
+          break;
+        }
+      case isStatic && isPrivate && isField && privateFieldsAsSymbolsOrProperties:
+        staticNodes.push(buildPrivateFieldInitLoose(_core.types.cloneNode(ref), prop, privateNamesMap));
+        break;
+      case isStatic && isPrivate && isField && !privateFieldsAsSymbolsOrProperties:
+        if (!newHelpers(file)) {
+          staticNodes.push(buildPrivateStaticFieldInitSpecOld(prop, privateNamesMap));
+        } else {
+          staticNodes.push(buildPrivateStaticFieldInitSpec(prop, privateNamesMap, noUninitializedPrivateFieldAccess));
+        }
+        break;
+      case isStatic && isPublic && isField && setPublicClassFields:
+        if (!isNameOrLength(prop.node)) {
+          staticNodes.push(buildPublicFieldInitLoose(_core.types.cloneNode(ref), prop));
+          break;
+        }
+      case isStatic && isPublic && isField && !setPublicClassFields:
+        staticNodes.push(buildPublicFieldInitSpec(_core.types.cloneNode(ref), prop, file));
+        break;
+      case isInstance && isPrivate && isField && privateFieldsAsSymbolsOrProperties:
+        instanceNodes.push(buildPrivateFieldInitLoose(_core.types.thisExpression(), prop, privateNamesMap));
+        break;
+      case isInstance && isPrivate && isField && !privateFieldsAsSymbolsOrProperties:
+        instanceNodes.push(buildPrivateInstanceFieldInitSpec(_core.types.thisExpression(), prop, privateNamesMap, file));
+        break;
+      case isInstance && isPrivate && isMethod && privateFieldsAsSymbolsOrProperties:
+        instanceNodes.unshift(buildPrivateMethodInitLoose(_core.types.thisExpression(), prop, privateNamesMap));
+        pureStaticNodes.push(buildPrivateMethodDeclaration(file, prop, privateNamesMap, privateFieldsAsSymbolsOrProperties));
+        break;
+      case isInstance && isPrivate && isMethod && !privateFieldsAsSymbolsOrProperties:
+        instanceNodes.unshift(buildPrivateInstanceMethodInitSpec(_core.types.thisExpression(), prop, privateNamesMap, file));
+        pureStaticNodes.push(buildPrivateMethodDeclaration(file, prop, privateNamesMap, privateFieldsAsSymbolsOrProperties));
+        break;
+      case isStatic && isPrivate && isMethod && !privateFieldsAsSymbolsOrProperties:
+        if (!newHelpers(file)) {
+          staticNodes.unshift(buildPrivateStaticFieldInitSpecOld(prop, privateNamesMap));
+        }
+        pureStaticNodes.push(buildPrivateMethodDeclaration(file, prop, privateNamesMap, privateFieldsAsSymbolsOrProperties));
+        break;
+      case isStatic && isPrivate && isMethod && privateFieldsAsSymbolsOrProperties:
+        staticNodes.unshift(buildPrivateStaticMethodInitLoose(_core.types.cloneNode(ref), prop, file, privateNamesMap));
+        pureStaticNodes.push(buildPrivateMethodDeclaration(file, prop, privateNamesMap, privateFieldsAsSymbolsOrProperties));
+        break;
+      case isInstance && isPublic && isField && setPublicClassFields:
+        instanceNodes.push(buildPublicFieldInitLoose(_core.types.thisExpression(), prop));
+        break;
+      case isInstance && isPublic && isField && !setPublicClassFields:
+        lastInstanceNodeReturnsThis = true;
+        instanceNodes.push(buildPublicFieldInitSpec(_core.types.thisExpression(), prop, file));
+        break;
+      default:
+        throw new Error("Unreachable.");
+    }
+  }
+  if (classRefFlags & 2 && innerBindingRef != null) {
+    classBindingNode = _core.types.expressionStatement(_core.types.assignmentExpression("=", _core.types.cloneNode(classRefForInnerBinding), _core.types.cloneNode(innerBindingRef)));
+  }
+  return {
+    staticNodes: staticNodes.filter(Boolean),
+    instanceNodes: instanceNodes.filter(Boolean),
+    lastInstanceNodeReturnsThis,
+    pureStaticNodes: pureStaticNodes.filter(Boolean),
+    classBindingNode,
+    wrapClass(path) {
+      for (const prop of props) {
+        prop.node.leadingComments = null;
+        prop.remove();
+      }
+      if (injectSuperRef) {
+        path.scope.push({
+          id: _core.types.cloneNode(injectSuperRef)
+        });
+        path.set("superClass", _core.types.assignmentExpression("=", injectSuperRef, path.node.superClass));
+      }
+      if (classRefFlags !== 0) {
+        if (path.isClassExpression()) {
+          path.scope.push({
+            id: ref
+          });
+          path.replaceWith(_core.types.assignmentExpression("=", _core.types.cloneNode(ref), path.node));
+        } else {
+          if (innerBindingRef == null) {
+            path.node.id = ref;
+          }
+          if (classBindingNode != null) {
+            path.scope.push({
+              id: classRefForInnerBinding
+            });
+          }
+        }
+      }
+      return path;
+    }
+  };
+}
+
+//# sourceMappingURL=fields.js.map

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
node_modules/@babel/helper-create-class-features-plugin/lib/fields.js.map


+ 249 - 0
node_modules/@babel/helper-create-class-features-plugin/lib/index.js

@@ -0,0 +1,249 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+Object.defineProperty(exports, "FEATURES", {
+  enumerable: true,
+  get: function () {
+    return _features.FEATURES;
+  }
+});
+Object.defineProperty(exports, "buildCheckInRHS", {
+  enumerable: true,
+  get: function () {
+    return _fields.buildCheckInRHS;
+  }
+});
+exports.createClassFeaturePlugin = createClassFeaturePlugin;
+Object.defineProperty(exports, "enableFeature", {
+  enumerable: true,
+  get: function () {
+    return _features.enableFeature;
+  }
+});
+Object.defineProperty(exports, "injectInitialization", {
+  enumerable: true,
+  get: function () {
+    return _misc.injectInitialization;
+  }
+});
+var _core = require("@babel/core");
+var _semver = require("semver");
+var _fields = require("./fields.js");
+var _decorators = require("./decorators.js");
+var _decorators2 = require("./decorators-2018-09.js");
+var _misc = require("./misc.js");
+var _features = require("./features.js");
+var _typescript = require("./typescript.js");
+const versionKey = "@babel/plugin-class-features/version";
+function createClassFeaturePlugin({
+  name,
+  feature,
+  loose,
+  manipulateOptions,
+  api,
+  inherits,
+  decoratorVersion
+}) {
+  var _api$assumption;
+  if (feature & _features.FEATURES.decorators) {
+    {
+      if (decoratorVersion === "2023-11" || decoratorVersion === "2023-05" || decoratorVersion === "2023-01" || decoratorVersion === "2022-03" || decoratorVersion === "2021-12") {
+        return (0, _decorators.default)(api, {
+          loose
+        }, decoratorVersion, inherits);
+      }
+    }
+  }
+  {
+    api != null ? api : api = {
+      assumption: () => void 0
+    };
+  }
+  const setPublicClassFields = api.assumption("setPublicClassFields");
+  const privateFieldsAsSymbols = api.assumption("privateFieldsAsSymbols");
+  const privateFieldsAsProperties = api.assumption("privateFieldsAsProperties");
+  const noUninitializedPrivateFieldAccess = (_api$assumption = api.assumption("noUninitializedPrivateFieldAccess")) != null ? _api$assumption : false;
+  const constantSuper = api.assumption("constantSuper");
+  const noDocumentAll = api.assumption("noDocumentAll");
+  if (privateFieldsAsProperties && privateFieldsAsSymbols) {
+    throw new Error(`Cannot enable both the "privateFieldsAsProperties" and ` + `"privateFieldsAsSymbols" assumptions as the same time.`);
+  }
+  const privateFieldsAsSymbolsOrProperties = privateFieldsAsProperties || privateFieldsAsSymbols;
+  if (loose === true) {
+    const explicit = [];
+    if (setPublicClassFields !== undefined) {
+      explicit.push(`"setPublicClassFields"`);
+    }
+    if (privateFieldsAsProperties !== undefined) {
+      explicit.push(`"privateFieldsAsProperties"`);
+    }
+    if (privateFieldsAsSymbols !== undefined) {
+      explicit.push(`"privateFieldsAsSymbols"`);
+    }
+    if (explicit.length !== 0) {
+      console.warn(`[${name}]: You are using the "loose: true" option and you are` + ` explicitly setting a value for the ${explicit.join(" and ")}` + ` assumption${explicit.length > 1 ? "s" : ""}. The "loose" option` + ` can cause incompatibilities with the other class features` + ` plugins, so it's recommended that you replace it with the` + ` following top-level option:\n` + `\t"assumptions": {\n` + `\t\t"setPublicClassFields": true,\n` + `\t\t"privateFieldsAsSymbols": true\n` + `\t}`);
+    }
+  }
+  return {
+    name,
+    manipulateOptions,
+    inherits,
+    pre(file) {
+      (0, _features.enableFeature)(file, feature, loose);
+      {
+        if (typeof file.get(versionKey) === "number") {
+          file.set(versionKey, "7.27.1");
+          return;
+        }
+      }
+      if (!file.get(versionKey) || _semver.lt(file.get(versionKey), "7.27.1")) {
+        file.set(versionKey, "7.27.1");
+      }
+    },
+    visitor: {
+      Class(path, {
+        file
+      }) {
+        if (file.get(versionKey) !== "7.27.1") return;
+        if (!(0, _features.shouldTransform)(path, file)) return;
+        const pathIsClassDeclaration = path.isClassDeclaration();
+        if (pathIsClassDeclaration) (0, _typescript.assertFieldTransformed)(path);
+        const loose = (0, _features.isLoose)(file, feature);
+        let constructor;
+        const isDecorated = (0, _decorators.hasDecorators)(path.node);
+        const props = [];
+        const elements = [];
+        const computedPaths = [];
+        const privateNames = new Set();
+        const body = path.get("body");
+        for (const path of body.get("body")) {
+          if ((path.isClassProperty() || path.isClassMethod()) && path.node.computed) {
+            computedPaths.push(path);
+          }
+          if (path.isPrivate()) {
+            const {
+              name
+            } = path.node.key.id;
+            const getName = `get ${name}`;
+            const setName = `set ${name}`;
+            if (path.isClassPrivateMethod()) {
+              if (path.node.kind === "get") {
+                if (privateNames.has(getName) || privateNames.has(name) && !privateNames.has(setName)) {
+                  throw path.buildCodeFrameError("Duplicate private field");
+                }
+                privateNames.add(getName).add(name);
+              } else if (path.node.kind === "set") {
+                if (privateNames.has(setName) || privateNames.has(name) && !privateNames.has(getName)) {
+                  throw path.buildCodeFrameError("Duplicate private field");
+                }
+                privateNames.add(setName).add(name);
+              }
+            } else {
+              if (privateNames.has(name) && !privateNames.has(getName) && !privateNames.has(setName) || privateNames.has(name) && (privateNames.has(getName) || privateNames.has(setName))) {
+                throw path.buildCodeFrameError("Duplicate private field");
+              }
+              privateNames.add(name);
+            }
+          }
+          if (path.isClassMethod({
+            kind: "constructor"
+          })) {
+            constructor = path;
+          } else {
+            elements.push(path);
+            if (path.isProperty() || path.isPrivate() || path.isStaticBlock != null && path.isStaticBlock()) {
+              props.push(path);
+            }
+          }
+        }
+        {
+          if (!props.length && !isDecorated) return;
+        }
+        const innerBinding = path.node.id;
+        let ref;
+        if (!innerBinding || !pathIsClassDeclaration) {
+          {
+            var _path$ensureFunctionN;
+            (_path$ensureFunctionN = path.ensureFunctionName) != null ? _path$ensureFunctionN : path.ensureFunctionName = require("@babel/traverse").NodePath.prototype.ensureFunctionName;
+          }
+          path.ensureFunctionName(false);
+          ref = path.scope.generateUidIdentifier((innerBinding == null ? void 0 : innerBinding.name) || "Class");
+        }
+        const classRefForDefine = ref != null ? ref : _core.types.cloneNode(innerBinding);
+        const privateNamesMap = (0, _fields.buildPrivateNamesMap)(classRefForDefine.name, privateFieldsAsSymbolsOrProperties != null ? privateFieldsAsSymbolsOrProperties : loose, props, file);
+        const privateNamesNodes = (0, _fields.buildPrivateNamesNodes)(privateNamesMap, privateFieldsAsProperties != null ? privateFieldsAsProperties : loose, privateFieldsAsSymbols != null ? privateFieldsAsSymbols : false, file);
+        (0, _fields.transformPrivateNamesUsage)(classRefForDefine, path, privateNamesMap, {
+          privateFieldsAsProperties: privateFieldsAsSymbolsOrProperties != null ? privateFieldsAsSymbolsOrProperties : loose,
+          noUninitializedPrivateFieldAccess,
+          noDocumentAll,
+          innerBinding
+        }, file);
+        let keysNodes, staticNodes, instanceNodes, lastInstanceNodeReturnsThis, pureStaticNodes, classBindingNode, wrapClass;
+        {
+          if (isDecorated) {
+            staticNodes = pureStaticNodes = keysNodes = [];
+            ({
+              instanceNodes,
+              wrapClass
+            } = (0, _decorators2.buildDecoratedClass)(classRefForDefine, path, elements, file));
+          } else {
+            keysNodes = (0, _misc.extractComputedKeys)(path, computedPaths, file);
+            ({
+              staticNodes,
+              pureStaticNodes,
+              instanceNodes,
+              lastInstanceNodeReturnsThis,
+              classBindingNode,
+              wrapClass
+            } = (0, _fields.buildFieldsInitNodes)(ref, path.node.superClass, props, privateNamesMap, file, setPublicClassFields != null ? setPublicClassFields : loose, privateFieldsAsSymbolsOrProperties != null ? privateFieldsAsSymbolsOrProperties : loose, noUninitializedPrivateFieldAccess, constantSuper != null ? constantSuper : loose, innerBinding));
+          }
+        }
+        if (instanceNodes.length > 0) {
+          (0, _misc.injectInitialization)(path, constructor, instanceNodes, (referenceVisitor, state) => {
+            {
+              if (isDecorated) return;
+            }
+            for (const prop of props) {
+              if (_core.types.isStaticBlock != null && _core.types.isStaticBlock(prop.node) || prop.node.static) continue;
+              prop.traverse(referenceVisitor, state);
+            }
+          }, lastInstanceNodeReturnsThis);
+        }
+        const wrappedPath = wrapClass(path);
+        wrappedPath.insertBefore([...privateNamesNodes, ...keysNodes]);
+        if (staticNodes.length > 0) {
+          wrappedPath.insertAfter(staticNodes);
+        }
+        if (pureStaticNodes.length > 0) {
+          wrappedPath.find(parent => parent.isStatement() || parent.isDeclaration()).insertAfter(pureStaticNodes);
+        }
+        if (classBindingNode != null && pathIsClassDeclaration) {
+          wrappedPath.insertAfter(classBindingNode);
+        }
+      },
+      ExportDefaultDeclaration(path, {
+        file
+      }) {
+        {
+          if (file.get(versionKey) !== "7.27.1") return;
+          const decl = path.get("declaration");
+          if (decl.isClassDeclaration() && (0, _decorators.hasDecorators)(decl.node)) {
+            if (decl.node.id) {
+              {
+                var _path$splitExportDecl;
+                (_path$splitExportDecl = path.splitExportDeclaration) != null ? _path$splitExportDecl : path.splitExportDeclaration = require("@babel/traverse").NodePath.prototype.splitExportDeclaration;
+              }
+              path.splitExportDeclaration();
+            } else {
+              decl.node.type = "ClassExpression";
+            }
+          }
+        }
+      }
+    }
+  };
+}
+
+//# sourceMappingURL=index.js.map

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
node_modules/@babel/helper-create-class-features-plugin/lib/index.js.map


+ 136 - 0
node_modules/@babel/helper-create-class-features-plugin/lib/misc.js

@@ -0,0 +1,136 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.extractComputedKeys = extractComputedKeys;
+exports.injectInitialization = injectInitialization;
+exports.memoiseComputedKey = memoiseComputedKey;
+var _core = require("@babel/core");
+var _traverse = require("@babel/traverse");
+const findBareSupers = _traverse.visitors.environmentVisitor({
+  Super(path) {
+    const {
+      node,
+      parentPath
+    } = path;
+    if (parentPath.isCallExpression({
+      callee: node
+    })) {
+      this.push(parentPath);
+    }
+  }
+});
+const referenceVisitor = {
+  "TSTypeAnnotation|TypeAnnotation"(path) {
+    path.skip();
+  },
+  ReferencedIdentifier(path, {
+    scope
+  }) {
+    if (scope.hasOwnBinding(path.node.name)) {
+      scope.rename(path.node.name);
+      path.skip();
+    }
+  }
+};
+function handleClassTDZ(path, state) {
+  if (state.classBinding && state.classBinding === path.scope.getBinding(path.node.name)) {
+    const classNameTDZError = state.file.addHelper("classNameTDZError");
+    const throwNode = _core.types.callExpression(classNameTDZError, [_core.types.stringLiteral(path.node.name)]);
+    path.replaceWith(_core.types.sequenceExpression([throwNode, path.node]));
+    path.skip();
+  }
+}
+const classFieldDefinitionEvaluationTDZVisitor = {
+  ReferencedIdentifier: handleClassTDZ,
+  "TSTypeAnnotation|TypeAnnotation"(path) {
+    path.skip();
+  }
+};
+function injectInitialization(path, constructor, nodes, renamer, lastReturnsThis) {
+  if (!nodes.length) return;
+  const isDerived = !!path.node.superClass;
+  if (!constructor) {
+    const newConstructor = _core.types.classMethod("constructor", _core.types.identifier("constructor"), [], _core.types.blockStatement([]));
+    if (isDerived) {
+      newConstructor.params = [_core.types.restElement(_core.types.identifier("args"))];
+      newConstructor.body.body.push(_core.template.statement.ast`super(...args)`);
+    }
+    [constructor] = path.get("body").unshiftContainer("body", newConstructor);
+  }
+  if (renamer) {
+    renamer(referenceVisitor, {
+      scope: constructor.scope
+    });
+  }
+  if (isDerived) {
+    const bareSupers = [];
+    constructor.traverse(findBareSupers, bareSupers);
+    let isFirst = true;
+    for (const bareSuper of bareSupers) {
+      if (isFirst) {
+        isFirst = false;
+      } else {
+        nodes = nodes.map(n => _core.types.cloneNode(n));
+      }
+      if (!bareSuper.parentPath.isExpressionStatement()) {
+        const allNodes = [bareSuper.node, ...nodes.map(n => _core.types.toExpression(n))];
+        if (!lastReturnsThis) allNodes.push(_core.types.thisExpression());
+        bareSuper.replaceWith(_core.types.sequenceExpression(allNodes));
+      } else {
+        bareSuper.insertAfter(nodes);
+      }
+    }
+  } else {
+    constructor.get("body").unshiftContainer("body", nodes);
+  }
+}
+function memoiseComputedKey(keyNode, scope, hint) {
+  const isUidReference = _core.types.isIdentifier(keyNode) && scope.hasUid(keyNode.name);
+  if (isUidReference) {
+    return;
+  }
+  const isMemoiseAssignment = _core.types.isAssignmentExpression(keyNode, {
+    operator: "="
+  }) && _core.types.isIdentifier(keyNode.left) && scope.hasUid(keyNode.left.name);
+  if (isMemoiseAssignment) {
+    return _core.types.cloneNode(keyNode);
+  } else {
+    const ident = _core.types.identifier(hint);
+    scope.push({
+      id: ident,
+      kind: "let"
+    });
+    return _core.types.assignmentExpression("=", _core.types.cloneNode(ident), keyNode);
+  }
+}
+function extractComputedKeys(path, computedPaths, file) {
+  const {
+    scope
+  } = path;
+  const declarations = [];
+  const state = {
+    classBinding: path.node.id && scope.getBinding(path.node.id.name),
+    file
+  };
+  for (const computedPath of computedPaths) {
+    const computedKey = computedPath.get("key");
+    if (computedKey.isReferencedIdentifier()) {
+      handleClassTDZ(computedKey, state);
+    } else {
+      computedKey.traverse(classFieldDefinitionEvaluationTDZVisitor, state);
+    }
+    const computedNode = computedPath.node;
+    if (!computedKey.isConstantExpression()) {
+      const assignment = memoiseComputedKey(computedKey.node, scope, scope.generateUidBasedOnNode(computedKey.node));
+      if (assignment) {
+        declarations.push(_core.types.expressionStatement(assignment));
+        computedNode.key = _core.types.cloneNode(assignment.left);
+      }
+    }
+  }
+  return declarations;
+}
+
+//# sourceMappingURL=misc.js.map

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
node_modules/@babel/helper-create-class-features-plugin/lib/misc.js.map


+ 13 - 0
node_modules/@babel/helper-create-class-features-plugin/lib/typescript.js

@@ -0,0 +1,13 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.assertFieldTransformed = assertFieldTransformed;
+function assertFieldTransformed(path) {
+  if (path.node.declare || false) {
+    throw path.buildCodeFrameError(`TypeScript 'declare' fields must first be transformed by ` + `@babel/plugin-transform-typescript.\n` + `If you have already enabled that plugin (or '@babel/preset-typescript'), make sure ` + `that it runs before any plugin related to additional class features:\n` + ` - @babel/plugin-transform-class-properties\n` + ` - @babel/plugin-transform-private-methods\n` + ` - @babel/plugin-proposal-decorators`);
+  }
+}
+
+//# sourceMappingURL=typescript.js.map

+ 1 - 0
node_modules/@babel/helper-create-class-features-plugin/lib/typescript.js.map

@@ -0,0 +1 @@
+{"version":3,"names":["assertFieldTransformed","path","node","declare","buildCodeFrameError"],"sources":["../src/typescript.ts"],"sourcesContent":["import type { NodePath, types as t } from \"@babel/core\";\n\nexport function assertFieldTransformed(\n  path: NodePath<t.ClassProperty | t.ClassDeclaration>,\n) {\n  if (\n    path.node.declare ||\n    (process.env.BABEL_8_BREAKING\n      ? path.isClassProperty({ definite: true })\n      : false)\n  ) {\n    throw path.buildCodeFrameError(\n      `TypeScript 'declare' fields must first be transformed by ` +\n        `@babel/plugin-transform-typescript.\\n` +\n        `If you have already enabled that plugin (or '@babel/preset-typescript'), make sure ` +\n        `that it runs before any plugin related to additional class features:\\n` +\n        ` - @babel/plugin-transform-class-properties\\n` +\n        ` - @babel/plugin-transform-private-methods\\n` +\n        ` - @babel/plugin-proposal-decorators`,\n    );\n  }\n}\n"],"mappings":";;;;;;AAEO,SAASA,sBAAsBA,CACpCC,IAAoD,EACpD;EACA,IACEA,IAAI,CAACC,IAAI,CAACC,OAAO,IAGb,KAAM,EACV;IACA,MAAMF,IAAI,CAACG,mBAAmB,CAC5B,2DAA2D,GACzD,uCAAuC,GACvC,qFAAqF,GACrF,wEAAwE,GACxE,+CAA+C,GAC/C,8CAA8C,GAC9C,sCACJ,CAAC;EACH;AACF","ignoreList":[]}

+ 16 - 0
node_modules/@babel/helper-create-class-features-plugin/node_modules/.bin/semver

@@ -0,0 +1,16 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+    *CYGWIN*|*MINGW*|*MSYS*)
+        if command -v cygpath > /dev/null 2>&1; then
+            basedir=`cygpath -w "$basedir"`
+        fi
+    ;;
+esac
+
+if [ -x "$basedir/node" ]; then
+  exec "$basedir/node"  "$basedir/../semver/bin/semver.js" "$@"
+else 
+  exec node  "$basedir/../semver/bin/semver.js" "$@"
+fi

+ 17 - 0
node_modules/@babel/helper-create-class-features-plugin/node_modules/.bin/semver.cmd

@@ -0,0 +1,17 @@
+@ECHO off
+GOTO start
+:find_dp0
+SET dp0=%~dp0
+EXIT /b
+:start
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+  SET "_prog=%dp0%\node.exe"
+) ELSE (
+  SET "_prog=node"
+  SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\semver\bin\semver.js" %*

+ 28 - 0
node_modules/@babel/helper-create-class-features-plugin/node_modules/.bin/semver.ps1

@@ -0,0 +1,28 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+  # Fix case when both the Windows and Linux builds of Node
+  # are installed in the same directory
+  $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+  # Support pipeline input
+  if ($MyInvocation.ExpectingInput) {
+    $input | & "$basedir/node$exe"  "$basedir/../semver/bin/semver.js" $args
+  } else {
+    & "$basedir/node$exe"  "$basedir/../semver/bin/semver.js" $args
+  }
+  $ret=$LASTEXITCODE
+} else {
+  # Support pipeline input
+  if ($MyInvocation.ExpectingInput) {
+    $input | & "node$exe"  "$basedir/../semver/bin/semver.js" $args
+  } else {
+    & "node$exe"  "$basedir/../semver/bin/semver.js" $args
+  }
+  $ret=$LASTEXITCODE
+}
+exit $ret

+ 15 - 0
node_modules/@babel/helper-create-class-features-plugin/node_modules/semver/LICENSE

@@ -0,0 +1,15 @@
+The ISC License
+
+Copyright (c) Isaac Z. Schlueter and Contributors
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
+IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

+ 443 - 0
node_modules/@babel/helper-create-class-features-plugin/node_modules/semver/README.md

@@ -0,0 +1,443 @@
+semver(1) -- The semantic versioner for npm
+===========================================
+
+## Install
+
+```bash
+npm install semver
+````
+
+## Usage
+
+As a node module:
+
+```js
+const semver = require('semver')
+
+semver.valid('1.2.3') // '1.2.3'
+semver.valid('a.b.c') // null
+semver.clean('  =v1.2.3   ') // '1.2.3'
+semver.satisfies('1.2.3', '1.x || >=2.5.0 || 5.0.0 - 7.2.3') // true
+semver.gt('1.2.3', '9.8.7') // false
+semver.lt('1.2.3', '9.8.7') // true
+semver.minVersion('>=1.0.0') // '1.0.0'
+semver.valid(semver.coerce('v2')) // '2.0.0'
+semver.valid(semver.coerce('42.6.7.9.3-alpha')) // '42.6.7'
+```
+
+As a command-line utility:
+
+```
+$ semver -h
+
+A JavaScript implementation of the https://semver.org/ specification
+Copyright Isaac Z. Schlueter
+
+Usage: semver [options] <version> [<version> [...]]
+Prints valid versions sorted by SemVer precedence
+
+Options:
+-r --range <range>
+        Print versions that match the specified range.
+
+-i --increment [<level>]
+        Increment a version by the specified level.  Level can
+        be one of: major, minor, patch, premajor, preminor,
+        prepatch, or prerelease.  Default level is 'patch'.
+        Only one version may be specified.
+
+--preid <identifier>
+        Identifier to be used to prefix premajor, preminor,
+        prepatch or prerelease version increments.
+
+-l --loose
+        Interpret versions and ranges loosely
+
+-p --include-prerelease
+        Always include prerelease versions in range matching
+
+-c --coerce
+        Coerce a string into SemVer if possible
+        (does not imply --loose)
+
+--rtl
+        Coerce version strings right to left
+
+--ltr
+        Coerce version strings left to right (default)
+
+Program exits successfully if any valid version satisfies
+all supplied ranges, and prints all satisfying versions.
+
+If no satisfying versions are found, then exits failure.
+
+Versions are printed in ascending order, so supplying
+multiple versions to the utility will just sort them.
+```
+
+## Versions
+
+A "version" is described by the `v2.0.0` specification found at
+<https://semver.org/>.
+
+A leading `"="` or `"v"` character is stripped off and ignored.
+
+## Ranges
+
+A `version range` is a set of `comparators` which specify versions
+that satisfy the range.
+
+A `comparator` is composed of an `operator` and a `version`.  The set
+of primitive `operators` is:
+
+* `<` Less than
+* `<=` Less than or equal to
+* `>` Greater than
+* `>=` Greater than or equal to
+* `=` Equal.  If no operator is specified, then equality is assumed,
+  so this operator is optional, but MAY be included.
+
+For example, the comparator `>=1.2.7` would match the versions
+`1.2.7`, `1.2.8`, `2.5.3`, and `1.3.9`, but not the versions `1.2.6`
+or `1.1.0`.
+
+Comparators can be joined by whitespace to form a `comparator set`,
+which is satisfied by the **intersection** of all of the comparators
+it includes.
+
+A range is composed of one or more comparator sets, joined by `||`.  A
+version matches a range if and only if every comparator in at least
+one of the `||`-separated comparator sets is satisfied by the version.
+
+For example, the range `>=1.2.7 <1.3.0` would match the versions
+`1.2.7`, `1.2.8`, and `1.2.99`, but not the versions `1.2.6`, `1.3.0`,
+or `1.1.0`.
+
+The range `1.2.7 || >=1.2.9 <2.0.0` would match the versions `1.2.7`,
+`1.2.9`, and `1.4.6`, but not the versions `1.2.8` or `2.0.0`.
+
+### Prerelease Tags
+
+If a version has a prerelease tag (for example, `1.2.3-alpha.3`) then
+it will only be allowed to satisfy comparator sets if at least one
+comparator with the same `[major, minor, patch]` tuple also has a
+prerelease tag.
+
+For example, the range `>1.2.3-alpha.3` would be allowed to match the
+version `1.2.3-alpha.7`, but it would *not* be satisfied by
+`3.4.5-alpha.9`, even though `3.4.5-alpha.9` is technically "greater
+than" `1.2.3-alpha.3` according to the SemVer sort rules.  The version
+range only accepts prerelease tags on the `1.2.3` version.  The
+version `3.4.5` *would* satisfy the range, because it does not have a
+prerelease flag, and `3.4.5` is greater than `1.2.3-alpha.7`.
+
+The purpose for this behavior is twofold.  First, prerelease versions
+frequently are updated very quickly, and contain many breaking changes
+that are (by the author's design) not yet fit for public consumption.
+Therefore, by default, they are excluded from range matching
+semantics.
+
+Second, a user who has opted into using a prerelease version has
+clearly indicated the intent to use *that specific* set of
+alpha/beta/rc versions.  By including a prerelease tag in the range,
+the user is indicating that they are aware of the risk.  However, it
+is still not appropriate to assume that they have opted into taking a
+similar risk on the *next* set of prerelease versions.
+
+Note that this behavior can be suppressed (treating all prerelease
+versions as if they were normal versions, for the purpose of range
+matching) by setting the `includePrerelease` flag on the options
+object to any
+[functions](https://github.com/npm/node-semver#functions) that do
+range matching.
+
+#### Prerelease Identifiers
+
+The method `.inc` takes an additional `identifier` string argument that
+will append the value of the string as a prerelease identifier:
+
+```javascript
+semver.inc('1.2.3', 'prerelease', 'beta')
+// '1.2.4-beta.0'
+```
+
+command-line example:
+
+```bash
+$ semver 1.2.3 -i prerelease --preid beta
+1.2.4-beta.0
+```
+
+Which then can be used to increment further:
+
+```bash
+$ semver 1.2.4-beta.0 -i prerelease
+1.2.4-beta.1
+```
+
+### Advanced Range Syntax
+
+Advanced range syntax desugars to primitive comparators in
+deterministic ways.
+
+Advanced ranges may be combined in the same way as primitive
+comparators using white space or `||`.
+
+#### Hyphen Ranges `X.Y.Z - A.B.C`
+
+Specifies an inclusive set.
+
+* `1.2.3 - 2.3.4` := `>=1.2.3 <=2.3.4`
+
+If a partial version is provided as the first version in the inclusive
+range, then the missing pieces are replaced with zeroes.
+
+* `1.2 - 2.3.4` := `>=1.2.0 <=2.3.4`
+
+If a partial version is provided as the second version in the
+inclusive range, then all versions that start with the supplied parts
+of the tuple are accepted, but nothing that would be greater than the
+provided tuple parts.
+
+* `1.2.3 - 2.3` := `>=1.2.3 <2.4.0`
+* `1.2.3 - 2` := `>=1.2.3 <3.0.0`
+
+#### X-Ranges `1.2.x` `1.X` `1.2.*` `*`
+
+Any of `X`, `x`, or `*` may be used to "stand in" for one of the
+numeric values in the `[major, minor, patch]` tuple.
+
+* `*` := `>=0.0.0` (Any version satisfies)
+* `1.x` := `>=1.0.0 <2.0.0` (Matching major version)
+* `1.2.x` := `>=1.2.0 <1.3.0` (Matching major and minor versions)
+
+A partial version range is treated as an X-Range, so the special
+character is in fact optional.
+
+* `""` (empty string) := `*` := `>=0.0.0`
+* `1` := `1.x.x` := `>=1.0.0 <2.0.0`
+* `1.2` := `1.2.x` := `>=1.2.0 <1.3.0`
+
+#### Tilde Ranges `~1.2.3` `~1.2` `~1`
+
+Allows patch-level changes if a minor version is specified on the
+comparator.  Allows minor-level changes if not.
+
+* `~1.2.3` := `>=1.2.3 <1.(2+1).0` := `>=1.2.3 <1.3.0`
+* `~1.2` := `>=1.2.0 <1.(2+1).0` := `>=1.2.0 <1.3.0` (Same as `1.2.x`)
+* `~1` := `>=1.0.0 <(1+1).0.0` := `>=1.0.0 <2.0.0` (Same as `1.x`)
+* `~0.2.3` := `>=0.2.3 <0.(2+1).0` := `>=0.2.3 <0.3.0`
+* `~0.2` := `>=0.2.0 <0.(2+1).0` := `>=0.2.0 <0.3.0` (Same as `0.2.x`)
+* `~0` := `>=0.0.0 <(0+1).0.0` := `>=0.0.0 <1.0.0` (Same as `0.x`)
+* `~1.2.3-beta.2` := `>=1.2.3-beta.2 <1.3.0` Note that prereleases in
+  the `1.2.3` version will be allowed, if they are greater than or
+  equal to `beta.2`.  So, `1.2.3-beta.4` would be allowed, but
+  `1.2.4-beta.2` would not, because it is a prerelease of a
+  different `[major, minor, patch]` tuple.
+
+#### Caret Ranges `^1.2.3` `^0.2.5` `^0.0.4`
+
+Allows changes that do not modify the left-most non-zero element in the
+`[major, minor, patch]` tuple.  In other words, this allows patch and
+minor updates for versions `1.0.0` and above, patch updates for
+versions `0.X >=0.1.0`, and *no* updates for versions `0.0.X`.
+
+Many authors treat a `0.x` version as if the `x` were the major
+"breaking-change" indicator.
+
+Caret ranges are ideal when an author may make breaking changes
+between `0.2.4` and `0.3.0` releases, which is a common practice.
+However, it presumes that there will *not* be breaking changes between
+`0.2.4` and `0.2.5`.  It allows for changes that are presumed to be
+additive (but non-breaking), according to commonly observed practices.
+
+* `^1.2.3` := `>=1.2.3 <2.0.0`
+* `^0.2.3` := `>=0.2.3 <0.3.0`
+* `^0.0.3` := `>=0.0.3 <0.0.4`
+* `^1.2.3-beta.2` := `>=1.2.3-beta.2 <2.0.0` Note that prereleases in
+  the `1.2.3` version will be allowed, if they are greater than or
+  equal to `beta.2`.  So, `1.2.3-beta.4` would be allowed, but
+  `1.2.4-beta.2` would not, because it is a prerelease of a
+  different `[major, minor, patch]` tuple.
+* `^0.0.3-beta` := `>=0.0.3-beta <0.0.4`  Note that prereleases in the
+  `0.0.3` version *only* will be allowed, if they are greater than or
+  equal to `beta`.  So, `0.0.3-pr.2` would be allowed.
+
+When parsing caret ranges, a missing `patch` value desugars to the
+number `0`, but will allow flexibility within that value, even if the
+major and minor versions are both `0`.
+
+* `^1.2.x` := `>=1.2.0 <2.0.0`
+* `^0.0.x` := `>=0.0.0 <0.1.0`
+* `^0.0` := `>=0.0.0 <0.1.0`
+
+A missing `minor` and `patch` values will desugar to zero, but also
+allow flexibility within those values, even if the major version is
+zero.
+
+* `^1.x` := `>=1.0.0 <2.0.0`
+* `^0.x` := `>=0.0.0 <1.0.0`
+
+### Range Grammar
+
+Putting all this together, here is a Backus-Naur grammar for ranges,
+for the benefit of parser authors:
+
+```bnf
+range-set  ::= range ( logical-or range ) *
+logical-or ::= ( ' ' ) * '||' ( ' ' ) *
+range      ::= hyphen | simple ( ' ' simple ) * | ''
+hyphen     ::= partial ' - ' partial
+simple     ::= primitive | partial | tilde | caret
+primitive  ::= ( '<' | '>' | '>=' | '<=' | '=' ) partial
+partial    ::= xr ( '.' xr ( '.' xr qualifier ? )? )?
+xr         ::= 'x' | 'X' | '*' | nr
+nr         ::= '0' | ['1'-'9'] ( ['0'-'9'] ) *
+tilde      ::= '~' partial
+caret      ::= '^' partial
+qualifier  ::= ( '-' pre )? ( '+' build )?
+pre        ::= parts
+build      ::= parts
+parts      ::= part ( '.' part ) *
+part       ::= nr | [-0-9A-Za-z]+
+```
+
+## Functions
+
+All methods and classes take a final `options` object argument.  All
+options in this object are `false` by default.  The options supported
+are:
+
+- `loose`  Be more forgiving about not-quite-valid semver strings.
+  (Any resulting output will always be 100% strict compliant, of
+  course.)  For backwards compatibility reasons, if the `options`
+  argument is a boolean value instead of an object, it is interpreted
+  to be the `loose` param.
+- `includePrerelease`  Set to suppress the [default
+  behavior](https://github.com/npm/node-semver#prerelease-tags) of
+  excluding prerelease tagged versions from ranges unless they are
+  explicitly opted into.
+
+Strict-mode Comparators and Ranges will be strict about the SemVer
+strings that they parse.
+
+* `valid(v)`: Return the parsed version, or null if it's not valid.
+* `inc(v, release)`: Return the version incremented by the release
+  type (`major`,   `premajor`, `minor`, `preminor`, `patch`,
+  `prepatch`, or `prerelease`), or null if it's not valid
+  * `premajor` in one call will bump the version up to the next major
+    version and down to a prerelease of that major version.
+    `preminor`, and `prepatch` work the same way.
+  * If called from a non-prerelease version, the `prerelease` will work the
+    same as `prepatch`. It increments the patch version, then makes a
+    prerelease. If the input version is already a prerelease it simply
+    increments it.
+* `prerelease(v)`: Returns an array of prerelease components, or null
+  if none exist. Example: `prerelease('1.2.3-alpha.1') -> ['alpha', 1]`
+* `major(v)`: Return the major version number.
+* `minor(v)`: Return the minor version number.
+* `patch(v)`: Return the patch version number.
+* `intersects(r1, r2, loose)`: Return true if the two supplied ranges
+  or comparators intersect.
+* `parse(v)`: Attempt to parse a string as a semantic version, returning either
+  a `SemVer` object or `null`.
+
+### Comparison
+
+* `gt(v1, v2)`: `v1 > v2`
+* `gte(v1, v2)`: `v1 >= v2`
+* `lt(v1, v2)`: `v1 < v2`
+* `lte(v1, v2)`: `v1 <= v2`
+* `eq(v1, v2)`: `v1 == v2` This is true if they're logically equivalent,
+  even if they're not the exact same string.  You already know how to
+  compare strings.
+* `neq(v1, v2)`: `v1 != v2` The opposite of `eq`.
+* `cmp(v1, comparator, v2)`: Pass in a comparison string, and it'll call
+  the corresponding function above.  `"==="` and `"!=="` do simple
+  string comparison, but are included for completeness.  Throws if an
+  invalid comparison string is provided.
+* `compare(v1, v2)`: Return `0` if `v1 == v2`, or `1` if `v1` is greater, or `-1` if
+  `v2` is greater.  Sorts in ascending order if passed to `Array.sort()`.
+* `rcompare(v1, v2)`: The reverse of compare.  Sorts an array of versions
+  in descending order when passed to `Array.sort()`.
+* `compareBuild(v1, v2)`: The same as `compare` but considers `build` when two versions
+  are equal.  Sorts in ascending order if passed to `Array.sort()`.
+  `v2` is greater.  Sorts in ascending order if passed to `Array.sort()`.
+* `diff(v1, v2)`: Returns difference between two versions by the release type
+  (`major`, `premajor`, `minor`, `preminor`, `patch`, `prepatch`, or `prerelease`),
+  or null if the versions are the same.
+
+### Comparators
+
+* `intersects(comparator)`: Return true if the comparators intersect
+
+### Ranges
+
+* `validRange(range)`: Return the valid range or null if it's not valid
+* `satisfies(version, range)`: Return true if the version satisfies the
+  range.
+* `maxSatisfying(versions, range)`: Return the highest version in the list
+  that satisfies the range, or `null` if none of them do.
+* `minSatisfying(versions, range)`: Return the lowest version in the list
+  that satisfies the range, or `null` if none of them do.
+* `minVersion(range)`: Return the lowest version that can possibly match
+  the given range.
+* `gtr(version, range)`: Return `true` if version is greater than all the
+  versions possible in the range.
+* `ltr(version, range)`: Return `true` if version is less than all the
+  versions possible in the range.
+* `outside(version, range, hilo)`: Return true if the version is outside
+  the bounds of the range in either the high or low direction.  The
+  `hilo` argument must be either the string `'>'` or `'<'`.  (This is
+  the function called by `gtr` and `ltr`.)
+* `intersects(range)`: Return true if any of the ranges comparators intersect
+
+Note that, since ranges may be non-contiguous, a version might not be
+greater than a range, less than a range, *or* satisfy a range!  For
+example, the range `1.2 <1.2.9 || >2.0.0` would have a hole from `1.2.9`
+until `2.0.0`, so the version `1.2.10` would not be greater than the
+range (because `2.0.1` satisfies, which is higher), nor less than the
+range (since `1.2.8` satisfies, which is lower), and it also does not
+satisfy the range.
+
+If you want to know if a version satisfies or does not satisfy a
+range, use the `satisfies(version, range)` function.
+
+### Coercion
+
+* `coerce(version, options)`: Coerces a string to semver if possible
+
+This aims to provide a very forgiving translation of a non-semver string to
+semver. It looks for the first digit in a string, and consumes all
+remaining characters which satisfy at least a partial semver (e.g., `1`,
+`1.2`, `1.2.3`) up to the max permitted length (256 characters).  Longer
+versions are simply truncated (`4.6.3.9.2-alpha2` becomes `4.6.3`).  All
+surrounding text is simply ignored (`v3.4 replaces v3.3.1` becomes
+`3.4.0`).  Only text which lacks digits will fail coercion (`version one`
+is not valid).  The maximum  length for any semver component considered for
+coercion is 16 characters; longer components will be ignored
+(`10000000000000000.4.7.4` becomes `4.7.4`).  The maximum value for any
+semver component is `Integer.MAX_SAFE_INTEGER || (2**53 - 1)`; higher value
+components are invalid (`9999999999999999.4.7.4` is likely invalid).
+
+If the `options.rtl` flag is set, then `coerce` will return the right-most
+coercible tuple that does not share an ending index with a longer coercible
+tuple.  For example, `1.2.3.4` will return `2.3.4` in rtl mode, not
+`4.0.0`.  `1.2.3/4` will return `4.0.0`, because the `4` is not a part of
+any other overlapping SemVer tuple.
+
+### Clean
+
+* `clean(version)`: Clean a string to be a valid semver if possible
+
+This will return a cleaned and trimmed semver version. If the provided version is not valid a null will be returned. This does not work for ranges. 
+
+ex.
+* `s.clean(' = v 2.1.5foo')`: `null`
+* `s.clean(' = v 2.1.5foo', { loose: true })`: `'2.1.5-foo'`
+* `s.clean(' = v 2.1.5-foo')`: `null`
+* `s.clean(' = v 2.1.5-foo', { loose: true })`: `'2.1.5-foo'`
+* `s.clean('=v2.1.5')`: `'2.1.5'`
+* `s.clean('  =v2.1.5')`: `2.1.5`
+* `s.clean('      2.1.5   ')`: `'2.1.5'`
+* `s.clean('~1.0.0')`: `null`

+ 174 - 0
node_modules/@babel/helper-create-class-features-plugin/node_modules/semver/bin/semver.js

@@ -0,0 +1,174 @@
+#!/usr/bin/env node
+// Standalone semver comparison program.
+// Exits successfully and prints matching version(s) if
+// any supplied version is valid and passes all tests.
+
+var argv = process.argv.slice(2)
+
+var versions = []
+
+var range = []
+
+var inc = null
+
+var version = require('../package.json').version
+
+var loose = false
+
+var includePrerelease = false
+
+var coerce = false
+
+var rtl = false
+
+var identifier
+
+var semver = require('../semver')
+
+var reverse = false
+
+var options = {}
+
+main()
+
+function main () {
+  if (!argv.length) return help()
+  while (argv.length) {
+    var a = argv.shift()
+    var indexOfEqualSign = a.indexOf('=')
+    if (indexOfEqualSign !== -1) {
+      a = a.slice(0, indexOfEqualSign)
+      argv.unshift(a.slice(indexOfEqualSign + 1))
+    }
+    switch (a) {
+      case '-rv': case '-rev': case '--rev': case '--reverse':
+        reverse = true
+        break
+      case '-l': case '--loose':
+        loose = true
+        break
+      case '-p': case '--include-prerelease':
+        includePrerelease = true
+        break
+      case '-v': case '--version':
+        versions.push(argv.shift())
+        break
+      case '-i': case '--inc': case '--increment':
+        switch (argv[0]) {
+          case 'major': case 'minor': case 'patch': case 'prerelease':
+          case 'premajor': case 'preminor': case 'prepatch':
+            inc = argv.shift()
+            break
+          default:
+            inc = 'patch'
+            break
+        }
+        break
+      case '--preid':
+        identifier = argv.shift()
+        break
+      case '-r': case '--range':
+        range.push(argv.shift())
+        break
+      case '-c': case '--coerce':
+        coerce = true
+        break
+      case '--rtl':
+        rtl = true
+        break
+      case '--ltr':
+        rtl = false
+        break
+      case '-h': case '--help': case '-?':
+        return help()
+      default:
+        versions.push(a)
+        break
+    }
+  }
+
+  var options = { loose: loose, includePrerelease: includePrerelease, rtl: rtl }
+
+  versions = versions.map(function (v) {
+    return coerce ? (semver.coerce(v, options) || { version: v }).version : v
+  }).filter(function (v) {
+    return semver.valid(v)
+  })
+  if (!versions.length) return fail()
+  if (inc && (versions.length !== 1 || range.length)) { return failInc() }
+
+  for (var i = 0, l = range.length; i < l; i++) {
+    versions = versions.filter(function (v) {
+      return semver.satisfies(v, range[i], options)
+    })
+    if (!versions.length) return fail()
+  }
+  return success(versions)
+}
+
+function failInc () {
+  console.error('--inc can only be used on a single version with no range')
+  fail()
+}
+
+function fail () { process.exit(1) }
+
+function success () {
+  var compare = reverse ? 'rcompare' : 'compare'
+  versions.sort(function (a, b) {
+    return semver[compare](a, b, options)
+  }).map(function (v) {
+    return semver.clean(v, options)
+  }).map(function (v) {
+    return inc ? semver.inc(v, inc, options, identifier) : v
+  }).forEach(function (v, i, _) { console.log(v) })
+}
+
+function help () {
+  console.log(['SemVer ' + version,
+    '',
+    'A JavaScript implementation of the https://semver.org/ specification',
+    'Copyright Isaac Z. Schlueter',
+    '',
+    'Usage: semver [options] <version> [<version> [...]]',
+    'Prints valid versions sorted by SemVer precedence',
+    '',
+    'Options:',
+    '-r --range <range>',
+    '        Print versions that match the specified range.',
+    '',
+    '-i --increment [<level>]',
+    '        Increment a version by the specified level.  Level can',
+    '        be one of: major, minor, patch, premajor, preminor,',
+    "        prepatch, or prerelease.  Default level is 'patch'.",
+    '        Only one version may be specified.',
+    '',
+    '--preid <identifier>',
+    '        Identifier to be used to prefix premajor, preminor,',
+    '        prepatch or prerelease version increments.',
+    '',
+    '-l --loose',
+    '        Interpret versions and ranges loosely',
+    '',
+    '-p --include-prerelease',
+    '        Always include prerelease versions in range matching',
+    '',
+    '-c --coerce',
+    '        Coerce a string into SemVer if possible',
+    '        (does not imply --loose)',
+    '',
+    '--rtl',
+    '        Coerce version strings right to left',
+    '',
+    '--ltr',
+    '        Coerce version strings left to right (default)',
+    '',
+    'Program exits successfully if any valid version satisfies',
+    'all supplied ranges, and prints all satisfying versions.',
+    '',
+    'If no satisfying versions are found, then exits failure.',
+    '',
+    'Versions are printed in ascending order, so supplying',
+    'multiple versions to the utility will just sort them.'
+  ].join('\n'))
+}

+ 38 - 0
node_modules/@babel/helper-create-class-features-plugin/node_modules/semver/package.json

@@ -0,0 +1,38 @@
+{
+  "name": "semver",
+  "version": "6.3.1",
+  "description": "The semantic version parser used by npm.",
+  "main": "semver.js",
+  "scripts": {
+    "test": "tap test/ --100 --timeout=30",
+    "lint": "echo linting disabled",
+    "postlint": "template-oss-check",
+    "template-oss-apply": "template-oss-apply --force",
+    "lintfix": "npm run lint -- --fix",
+    "snap": "tap test/ --100 --timeout=30",
+    "posttest": "npm run lint"
+  },
+  "devDependencies": {
+    "@npmcli/template-oss": "4.17.0",
+    "tap": "^12.7.0"
+  },
+  "license": "ISC",
+  "repository": {
+    "type": "git",
+    "url": "https://github.com/npm/node-semver.git"
+  },
+  "bin": {
+    "semver": "./bin/semver.js"
+  },
+  "files": [
+    "bin",
+    "range.bnf",
+    "semver.js"
+  ],
+  "author": "GitHub Inc.",
+  "templateOSS": {
+    "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
+    "content": "./scripts/template-oss",
+    "version": "4.17.0"
+  }
+}

+ 16 - 0
node_modules/@babel/helper-create-class-features-plugin/node_modules/semver/range.bnf

@@ -0,0 +1,16 @@
+range-set  ::= range ( logical-or range ) *
+logical-or ::= ( ' ' ) * '||' ( ' ' ) *
+range      ::= hyphen | simple ( ' ' simple ) * | ''
+hyphen     ::= partial ' - ' partial
+simple     ::= primitive | partial | tilde | caret
+primitive  ::= ( '<' | '>' | '>=' | '<=' | '=' ) partial
+partial    ::= xr ( '.' xr ( '.' xr qualifier ? )? )?
+xr         ::= 'x' | 'X' | '*' | nr
+nr         ::= '0' | [1-9] ( [0-9] ) *
+tilde      ::= '~' partial
+caret      ::= '^' partial
+qualifier  ::= ( '-' pre )? ( '+' build )?
+pre        ::= parts
+build      ::= parts
+parts      ::= part ( '.' part ) *
+part       ::= nr | [-0-9A-Za-z]+

+ 1643 - 0
node_modules/@babel/helper-create-class-features-plugin/node_modules/semver/semver.js

@@ -0,0 +1,1643 @@
+exports = module.exports = SemVer
+
+var debug
+/* istanbul ignore next */
+if (typeof process === 'object' &&
+    process.env &&
+    process.env.NODE_DEBUG &&
+    /\bsemver\b/i.test(process.env.NODE_DEBUG)) {
+  debug = function () {
+    var args = Array.prototype.slice.call(arguments, 0)
+    args.unshift('SEMVER')
+    console.log.apply(console, args)
+  }
+} else {
+  debug = function () {}
+}
+
+// Note: this is the semver.org version of the spec that it implements
+// Not necessarily the package version of this code.
+exports.SEMVER_SPEC_VERSION = '2.0.0'
+
+var MAX_LENGTH = 256
+var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||
+  /* istanbul ignore next */ 9007199254740991
+
+// Max safe segment length for coercion.
+var MAX_SAFE_COMPONENT_LENGTH = 16
+
+var MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6
+
+// The actual regexps go on exports.re
+var re = exports.re = []
+var safeRe = exports.safeRe = []
+var src = exports.src = []
+var t = exports.tokens = {}
+var R = 0
+
+function tok (n) {
+  t[n] = R++
+}
+
+var LETTERDASHNUMBER = '[a-zA-Z0-9-]'
+
+// Replace some greedy regex tokens to prevent regex dos issues. These regex are
+// used internally via the safeRe object since all inputs in this library get
+// normalized first to trim and collapse all extra whitespace. The original
+// regexes are exported for userland consumption and lower level usage. A
+// future breaking change could export the safer regex only with a note that
+// all input should have extra whitespace removed.
+var safeRegexReplacements = [
+  ['\\s', 1],
+  ['\\d', MAX_LENGTH],
+  [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],
+]
+
+function makeSafeRe (value) {
+  for (var i = 0; i < safeRegexReplacements.length; i++) {
+    var token = safeRegexReplacements[i][0]
+    var max = safeRegexReplacements[i][1]
+    value = value
+      .split(token + '*').join(token + '{0,' + max + '}')
+      .split(token + '+').join(token + '{1,' + max + '}')
+  }
+  return value
+}
+
+// The following Regular Expressions can be used for tokenizing,
+// validating, and parsing SemVer version strings.
+
+// ## Numeric Identifier
+// A single `0`, or a non-zero digit followed by zero or more digits.
+
+tok('NUMERICIDENTIFIER')
+src[t.NUMERICIDENTIFIER] = '0|[1-9]\\d*'
+tok('NUMERICIDENTIFIERLOOSE')
+src[t.NUMERICIDENTIFIERLOOSE] = '\\d+'
+
+// ## Non-numeric Identifier
+// Zero or more digits, followed by a letter or hyphen, and then zero or
+// more letters, digits, or hyphens.
+
+tok('NONNUMERICIDENTIFIER')
+src[t.NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-]' + LETTERDASHNUMBER + '*'
+
+// ## Main Version
+// Three dot-separated numeric identifiers.
+
+tok('MAINVERSION')
+src[t.MAINVERSION] = '(' + src[t.NUMERICIDENTIFIER] + ')\\.' +
+                   '(' + src[t.NUMERICIDENTIFIER] + ')\\.' +
+                   '(' + src[t.NUMERICIDENTIFIER] + ')'
+
+tok('MAINVERSIONLOOSE')
+src[t.MAINVERSIONLOOSE] = '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\.' +
+                        '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\.' +
+                        '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')'
+
+// ## Pre-release Version Identifier
+// A numeric identifier, or a non-numeric identifier.
+
+tok('PRERELEASEIDENTIFIER')
+src[t.PRERELEASEIDENTIFIER] = '(?:' + src[t.NUMERICIDENTIFIER] +
+                            '|' + src[t.NONNUMERICIDENTIFIER] + ')'
+
+tok('PRERELEASEIDENTIFIERLOOSE')
+src[t.PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[t.NUMERICIDENTIFIERLOOSE] +
+                                 '|' + src[t.NONNUMERICIDENTIFIER] + ')'
+
+// ## Pre-release Version
+// Hyphen, followed by one or more dot-separated pre-release version
+// identifiers.
+
+tok('PRERELEASE')
+src[t.PRERELEASE] = '(?:-(' + src[t.PRERELEASEIDENTIFIER] +
+                  '(?:\\.' + src[t.PRERELEASEIDENTIFIER] + ')*))'
+
+tok('PRERELEASELOOSE')
+src[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] +
+                       '(?:\\.' + src[t.PRERELEASEIDENTIFIERLOOSE] + ')*))'
+
+// ## Build Metadata Identifier
+// Any combination of digits, letters, or hyphens.
+
+tok('BUILDIDENTIFIER')
+src[t.BUILDIDENTIFIER] = LETTERDASHNUMBER + '+'
+
+// ## Build Metadata
+// Plus sign, followed by one or more period-separated build metadata
+// identifiers.
+
+tok('BUILD')
+src[t.BUILD] = '(?:\\+(' + src[t.BUILDIDENTIFIER] +
+             '(?:\\.' + src[t.BUILDIDENTIFIER] + ')*))'
+
+// ## Full Version String
+// A main version, followed optionally by a pre-release version and
+// build metadata.
+
+// Note that the only major, minor, patch, and pre-release sections of
+// the version string are capturing groups.  The build metadata is not a
+// capturing group, because it should not ever be used in version
+// comparison.
+
+tok('FULL')
+tok('FULLPLAIN')
+src[t.FULLPLAIN] = 'v?' + src[t.MAINVERSION] +
+                  src[t.PRERELEASE] + '?' +
+                  src[t.BUILD] + '?'
+
+src[t.FULL] = '^' + src[t.FULLPLAIN] + '$'
+
+// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.
+// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty
+// common in the npm registry.
+tok('LOOSEPLAIN')
+src[t.LOOSEPLAIN] = '[v=\\s]*' + src[t.MAINVERSIONLOOSE] +
+                  src[t.PRERELEASELOOSE] + '?' +
+                  src[t.BUILD] + '?'
+
+tok('LOOSE')
+src[t.LOOSE] = '^' + src[t.LOOSEPLAIN] + '$'
+
+tok('GTLT')
+src[t.GTLT] = '((?:<|>)?=?)'
+
+// Something like "2.*" or "1.2.x".
+// Note that "x.x" is a valid xRange identifer, meaning "any version"
+// Only the first item is strictly required.
+tok('XRANGEIDENTIFIERLOOSE')
+src[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + '|x|X|\\*'
+tok('XRANGEIDENTIFIER')
+src[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + '|x|X|\\*'
+
+tok('XRANGEPLAIN')
+src[t.XRANGEPLAIN] = '[v=\\s]*(' + src[t.XRANGEIDENTIFIER] + ')' +
+                   '(?:\\.(' + src[t.XRANGEIDENTIFIER] + ')' +
+                   '(?:\\.(' + src[t.XRANGEIDENTIFIER] + ')' +
+                   '(?:' + src[t.PRERELEASE] + ')?' +
+                   src[t.BUILD] + '?' +
+                   ')?)?'
+
+tok('XRANGEPLAINLOOSE')
+src[t.XRANGEPLAINLOOSE] = '[v=\\s]*(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +
+                        '(?:\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +
+                        '(?:\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +
+                        '(?:' + src[t.PRERELEASELOOSE] + ')?' +
+                        src[t.BUILD] + '?' +
+                        ')?)?'
+
+tok('XRANGE')
+src[t.XRANGE] = '^' + src[t.GTLT] + '\\s*' + src[t.XRANGEPLAIN] + '$'
+tok('XRANGELOOSE')
+src[t.XRANGELOOSE] = '^' + src[t.GTLT] + '\\s*' + src[t.XRANGEPLAINLOOSE] + '$'
+
+// Coercion.
+// Extract anything that could conceivably be a part of a valid semver
+tok('COERCE')
+src[t.COERCE] = '(^|[^\\d])' +
+              '(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +
+              '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +
+              '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +
+              '(?:$|[^\\d])'
+tok('COERCERTL')
+re[t.COERCERTL] = new RegExp(src[t.COERCE], 'g')
+safeRe[t.COERCERTL] = new RegExp(makeSafeRe(src[t.COERCE]), 'g')
+
+// Tilde ranges.
+// Meaning is "reasonably at or greater than"
+tok('LONETILDE')
+src[t.LONETILDE] = '(?:~>?)'
+
+tok('TILDETRIM')
+src[t.TILDETRIM] = '(\\s*)' + src[t.LONETILDE] + '\\s+'
+re[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g')
+safeRe[t.TILDETRIM] = new RegExp(makeSafeRe(src[t.TILDETRIM]), 'g')
+var tildeTrimReplace = '$1~'
+
+tok('TILDE')
+src[t.TILDE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAIN] + '$'
+tok('TILDELOOSE')
+src[t.TILDELOOSE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + '$'
+
+// Caret ranges.
+// Meaning is "at least and backwards compatible with"
+tok('LONECARET')
+src[t.LONECARET] = '(?:\\^)'
+
+tok('CARETTRIM')
+src[t.CARETTRIM] = '(\\s*)' + src[t.LONECARET] + '\\s+'
+re[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g')
+safeRe[t.CARETTRIM] = new RegExp(makeSafeRe(src[t.CARETTRIM]), 'g')
+var caretTrimReplace = '$1^'
+
+tok('CARET')
+src[t.CARET] = '^' + src[t.LONECARET] + src[t.XRANGEPLAIN] + '$'
+tok('CARETLOOSE')
+src[t.CARETLOOSE] = '^' + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + '$'
+
+// A simple gt/lt/eq thing, or just "" to indicate "any version"
+tok('COMPARATORLOOSE')
+src[t.COMPARATORLOOSE] = '^' + src[t.GTLT] + '\\s*(' + src[t.LOOSEPLAIN] + ')$|^$'
+tok('COMPARATOR')
+src[t.COMPARATOR] = '^' + src[t.GTLT] + '\\s*(' + src[t.FULLPLAIN] + ')$|^$'
+
+// An expression to strip any whitespace between the gtlt and the thing
+// it modifies, so that `> 1.2.3` ==> `>1.2.3`
+tok('COMPARATORTRIM')
+src[t.COMPARATORTRIM] = '(\\s*)' + src[t.GTLT] +
+                      '\\s*(' + src[t.LOOSEPLAIN] + '|' + src[t.XRANGEPLAIN] + ')'
+
+// this one has to use the /g flag
+re[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g')
+safeRe[t.COMPARATORTRIM] = new RegExp(makeSafeRe(src[t.COMPARATORTRIM]), 'g')
+var comparatorTrimReplace = '$1$2$3'
+
+// Something like `1.2.3 - 1.2.4`
+// Note that these all use the loose form, because they'll be
+// checked against either the strict or loose comparator form
+// later.
+tok('HYPHENRANGE')
+src[t.HYPHENRANGE] = '^\\s*(' + src[t.XRANGEPLAIN] + ')' +
+                   '\\s+-\\s+' +
+                   '(' + src[t.XRANGEPLAIN] + ')' +
+                   '\\s*$'
+
+tok('HYPHENRANGELOOSE')
+src[t.HYPHENRANGELOOSE] = '^\\s*(' + src[t.XRANGEPLAINLOOSE] + ')' +
+                        '\\s+-\\s+' +
+                        '(' + src[t.XRANGEPLAINLOOSE] + ')' +
+                        '\\s*$'
+
+// Star ranges basically just allow anything at all.
+tok('STAR')
+src[t.STAR] = '(<|>)?=?\\s*\\*'
+
+// Compile to actual regexp objects.
+// All are flag-free, unless they were created above with a flag.
+for (var i = 0; i < R; i++) {
+  debug(i, src[i])
+  if (!re[i]) {
+    re[i] = new RegExp(src[i])
+
+    // Replace all greedy whitespace to prevent regex dos issues. These regex are
+    // used internally via the safeRe object since all inputs in this library get
+    // normalized first to trim and collapse all extra whitespace. The original
+    // regexes are exported for userland consumption and lower level usage. A
+    // future breaking change could export the safer regex only with a note that
+    // all input should have extra whitespace removed.
+    safeRe[i] = new RegExp(makeSafeRe(src[i]))
+  }
+}
+
+exports.parse = parse
+function parse (version, options) {
+  if (!options || typeof options !== 'object') {
+    options = {
+      loose: !!options,
+      includePrerelease: false
+    }
+  }
+
+  if (version instanceof SemVer) {
+    return version
+  }
+
+  if (typeof version !== 'string') {
+    return null
+  }
+
+  if (version.length > MAX_LENGTH) {
+    return null
+  }
+
+  var r = options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]
+  if (!r.test(version)) {
+    return null
+  }
+
+  try {
+    return new SemVer(version, options)
+  } catch (er) {
+    return null
+  }
+}
+
+exports.valid = valid
+function valid (version, options) {
+  var v = parse(version, options)
+  return v ? v.version : null
+}
+
+exports.clean = clean
+function clean (version, options) {
+  var s = parse(version.trim().replace(/^[=v]+/, ''), options)
+  return s ? s.version : null
+}
+
+exports.SemVer = SemVer
+
+function SemVer (version, options) {
+  if (!options || typeof options !== 'object') {
+    options = {
+      loose: !!options,
+      includePrerelease: false
+    }
+  }
+  if (version instanceof SemVer) {
+    if (version.loose === options.loose) {
+      return version
+    } else {
+      version = version.version
+    }
+  } else if (typeof version !== 'string') {
+    throw new TypeError('Invalid Version: ' + version)
+  }
+
+  if (version.length > MAX_LENGTH) {
+    throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')
+  }
+
+  if (!(this instanceof SemVer)) {
+    return new SemVer(version, options)
+  }
+
+  debug('SemVer', version, options)
+  this.options = options
+  this.loose = !!options.loose
+
+  var m = version.trim().match(options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL])
+
+  if (!m) {
+    throw new TypeError('Invalid Version: ' + version)
+  }
+
+  this.raw = version
+
+  // these are actually numbers
+  this.major = +m[1]
+  this.minor = +m[2]
+  this.patch = +m[3]
+
+  if (this.major > MAX_SAFE_INTEGER || this.major < 0) {
+    throw new TypeError('Invalid major version')
+  }
+
+  if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {
+    throw new TypeError('Invalid minor version')
+  }
+
+  if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {
+    throw new TypeError('Invalid patch version')
+  }
+
+  // numberify any prerelease numeric ids
+  if (!m[4]) {
+    this.prerelease = []
+  } else {
+    this.prerelease = m[4].split('.').map(function (id) {
+      if (/^[0-9]+$/.test(id)) {
+        var num = +id
+        if (num >= 0 && num < MAX_SAFE_INTEGER) {
+          return num
+        }
+      }
+      return id
+    })
+  }
+
+  this.build = m[5] ? m[5].split('.') : []
+  this.format()
+}
+
+SemVer.prototype.format = function () {
+  this.version = this.major + '.' + this.minor + '.' + this.patch
+  if (this.prerelease.length) {
+    this.version += '-' + this.prerelease.join('.')
+  }
+  return this.version
+}
+
+SemVer.prototype.toString = function () {
+  return this.version
+}
+
+SemVer.prototype.compare = function (other) {
+  debug('SemVer.compare', this.version, this.options, other)
+  if (!(other instanceof SemVer)) {
+    other = new SemVer(other, this.options)
+  }
+
+  return this.compareMain(other) || this.comparePre(other)
+}
+
+SemVer.prototype.compareMain = function (other) {
+  if (!(other instanceof SemVer)) {
+    other = new SemVer(other, this.options)
+  }
+
+  return compareIdentifiers(this.major, other.major) ||
+         compareIdentifiers(this.minor, other.minor) ||
+         compareIdentifiers(this.patch, other.patch)
+}
+
+SemVer.prototype.comparePre = function (other) {
+  if (!(other instanceof SemVer)) {
+    other = new SemVer(other, this.options)
+  }
+
+  // NOT having a prerelease is > having one
+  if (this.prerelease.length && !other.prerelease.length) {
+    return -1
+  } else if (!this.prerelease.length && other.prerelease.length) {
+    return 1
+  } else if (!this.prerelease.length && !other.prerelease.length) {
+    return 0
+  }
+
+  var i = 0
+  do {
+    var a = this.prerelease[i]
+    var b = other.prerelease[i]
+    debug('prerelease compare', i, a, b)
+    if (a === undefined && b === undefined) {
+      return 0
+    } else if (b === undefined) {
+      return 1
+    } else if (a === undefined) {
+      return -1
+    } else if (a === b) {
+      continue
+    } else {
+      return compareIdentifiers(a, b)
+    }
+  } while (++i)
+}
+
+SemVer.prototype.compareBuild = function (other) {
+  if (!(other instanceof SemVer)) {
+    other = new SemVer(other, this.options)
+  }
+
+  var i = 0
+  do {
+    var a = this.build[i]
+    var b = other.build[i]
+    debug('prerelease compare', i, a, b)
+    if (a === undefined && b === undefined) {
+      return 0
+    } else if (b === undefined) {
+      return 1
+    } else if (a === undefined) {
+      return -1
+    } else if (a === b) {
+      continue
+    } else {
+      return compareIdentifiers(a, b)
+    }
+  } while (++i)
+}
+
+// preminor will bump the version up to the next minor release, and immediately
+// down to pre-release. premajor and prepatch work the same way.
+SemVer.prototype.inc = function (release, identifier) {
+  switch (release) {
+    case 'premajor':
+      this.prerelease.length = 0
+      this.patch = 0
+      this.minor = 0
+      this.major++
+      this.inc('pre', identifier)
+      break
+    case 'preminor':
+      this.prerelease.length = 0
+      this.patch = 0
+      this.minor++
+      this.inc('pre', identifier)
+      break
+    case 'prepatch':
+      // If this is already a prerelease, it will bump to the next version
+      // drop any prereleases that might already exist, since they are not
+      // relevant at this point.
+      this.prerelease.length = 0
+      this.inc('patch', identifier)
+      this.inc('pre', identifier)
+      break
+    // If the input is a non-prerelease version, this acts the same as
+    // prepatch.
+    case 'prerelease':
+      if (this.prerelease.length === 0) {
+        this.inc('patch', identifier)
+      }
+      this.inc('pre', identifier)
+      break
+
+    case 'major':
+      // If this is a pre-major version, bump up to the same major version.
+      // Otherwise increment major.
+      // 1.0.0-5 bumps to 1.0.0
+      // 1.1.0 bumps to 2.0.0
+      if (this.minor !== 0 ||
+          this.patch !== 0 ||
+          this.prerelease.length === 0) {
+        this.major++
+      }
+      this.minor = 0
+      this.patch = 0
+      this.prerelease = []
+      break
+    case 'minor':
+      // If this is a pre-minor version, bump up to the same minor version.
+      // Otherwise increment minor.
+      // 1.2.0-5 bumps to 1.2.0
+      // 1.2.1 bumps to 1.3.0
+      if (this.patch !== 0 || this.prerelease.length === 0) {
+        this.minor++
+      }
+      this.patch = 0
+      this.prerelease = []
+      break
+    case 'patch':
+      // If this is not a pre-release version, it will increment the patch.
+      // If it is a pre-release it will bump up to the same patch version.
+      // 1.2.0-5 patches to 1.2.0
+      // 1.2.0 patches to 1.2.1
+      if (this.prerelease.length === 0) {
+        this.patch++
+      }
+      this.prerelease = []
+      break
+    // This probably shouldn't be used publicly.
+    // 1.0.0 "pre" would become 1.0.0-0 which is the wrong direction.
+    case 'pre':
+      if (this.prerelease.length === 0) {
+        this.prerelease = [0]
+      } else {
+        var i = this.prerelease.length
+        while (--i >= 0) {
+          if (typeof this.prerelease[i] === 'number') {
+            this.prerelease[i]++
+            i = -2
+          }
+        }
+        if (i === -1) {
+          // didn't increment anything
+          this.prerelease.push(0)
+        }
+      }
+      if (identifier) {
+        // 1.2.0-beta.1 bumps to 1.2.0-beta.2,
+        // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0
+        if (this.prerelease[0] === identifier) {
+          if (isNaN(this.prerelease[1])) {
+            this.prerelease = [identifier, 0]
+          }
+        } else {
+          this.prerelease = [identifier, 0]
+        }
+      }
+      break
+
+    default:
+      throw new Error('invalid increment argument: ' + release)
+  }
+  this.format()
+  this.raw = this.version
+  return this
+}
+
+exports.inc = inc
+function inc (version, release, loose, identifier) {
+  if (typeof (loose) === 'string') {
+    identifier = loose
+    loose = undefined
+  }
+
+  try {
+    return new SemVer(version, loose).inc(release, identifier).version
+  } catch (er) {
+    return null
+  }
+}
+
+exports.diff = diff
+function diff (version1, version2) {
+  if (eq(version1, version2)) {
+    return null
+  } else {
+    var v1 = parse(version1)
+    var v2 = parse(version2)
+    var prefix = ''
+    if (v1.prerelease.length || v2.prerelease.length) {
+      prefix = 'pre'
+      var defaultResult = 'prerelease'
+    }
+    for (var key in v1) {
+      if (key === 'major' || key === 'minor' || key === 'patch') {
+        if (v1[key] !== v2[key]) {
+          return prefix + key
+        }
+      }
+    }
+    return defaultResult // may be undefined
+  }
+}
+
+exports.compareIdentifiers = compareIdentifiers
+
+var numeric = /^[0-9]+$/
+function compareIdentifiers (a, b) {
+  var anum = numeric.test(a)
+  var bnum = numeric.test(b)
+
+  if (anum && bnum) {
+    a = +a
+    b = +b
+  }
+
+  return a === b ? 0
+    : (anum && !bnum) ? -1
+    : (bnum && !anum) ? 1
+    : a < b ? -1
+    : 1
+}
+
+exports.rcompareIdentifiers = rcompareIdentifiers
+function rcompareIdentifiers (a, b) {
+  return compareIdentifiers(b, a)
+}
+
+exports.major = major
+function major (a, loose) {
+  return new SemVer(a, loose).major
+}
+
+exports.minor = minor
+function minor (a, loose) {
+  return new SemVer(a, loose).minor
+}
+
+exports.patch = patch
+function patch (a, loose) {
+  return new SemVer(a, loose).patch
+}
+
+exports.compare = compare
+function compare (a, b, loose) {
+  return new SemVer(a, loose).compare(new SemVer(b, loose))
+}
+
+exports.compareLoose = compareLoose
+function compareLoose (a, b) {
+  return compare(a, b, true)
+}
+
+exports.compareBuild = compareBuild
+function compareBuild (a, b, loose) {
+  var versionA = new SemVer(a, loose)
+  var versionB = new SemVer(b, loose)
+  return versionA.compare(versionB) || versionA.compareBuild(versionB)
+}
+
+exports.rcompare = rcompare
+function rcompare (a, b, loose) {
+  return compare(b, a, loose)
+}
+
+exports.sort = sort
+function sort (list, loose) {
+  return list.sort(function (a, b) {
+    return exports.compareBuild(a, b, loose)
+  })
+}
+
+exports.rsort = rsort
+function rsort (list, loose) {
+  return list.sort(function (a, b) {
+    return exports.compareBuild(b, a, loose)
+  })
+}
+
+exports.gt = gt
+function gt (a, b, loose) {
+  return compare(a, b, loose) > 0
+}
+
+exports.lt = lt
+function lt (a, b, loose) {
+  return compare(a, b, loose) < 0
+}
+
+exports.eq = eq
+function eq (a, b, loose) {
+  return compare(a, b, loose) === 0
+}
+
+exports.neq = neq
+function neq (a, b, loose) {
+  return compare(a, b, loose) !== 0
+}
+
+exports.gte = gte
+function gte (a, b, loose) {
+  return compare(a, b, loose) >= 0
+}
+
+exports.lte = lte
+function lte (a, b, loose) {
+  return compare(a, b, loose) <= 0
+}
+
+exports.cmp = cmp
+function cmp (a, op, b, loose) {
+  switch (op) {
+    case '===':
+      if (typeof a === 'object')
+        a = a.version
+      if (typeof b === 'object')
+        b = b.version
+      return a === b
+
+    case '!==':
+      if (typeof a === 'object')
+        a = a.version
+      if (typeof b === 'object')
+        b = b.version
+      return a !== b
+
+    case '':
+    case '=':
+    case '==':
+      return eq(a, b, loose)
+
+    case '!=':
+      return neq(a, b, loose)
+
+    case '>':
+      return gt(a, b, loose)
+
+    case '>=':
+      return gte(a, b, loose)
+
+    case '<':
+      return lt(a, b, loose)
+
+    case '<=':
+      return lte(a, b, loose)
+
+    default:
+      throw new TypeError('Invalid operator: ' + op)
+  }
+}
+
+exports.Comparator = Comparator
+function Comparator (comp, options) {
+  if (!options || typeof options !== 'object') {
+    options = {
+      loose: !!options,
+      includePrerelease: false
+    }
+  }
+
+  if (comp instanceof Comparator) {
+    if (comp.loose === !!options.loose) {
+      return comp
+    } else {
+      comp = comp.value
+    }
+  }
+
+  if (!(this instanceof Comparator)) {
+    return new Comparator(comp, options)
+  }
+
+  comp = comp.trim().split(/\s+/).join(' ')
+  debug('comparator', comp, options)
+  this.options = options
+  this.loose = !!options.loose
+  this.parse(comp)
+
+  if (this.semver === ANY) {
+    this.value = ''
+  } else {
+    this.value = this.operator + this.semver.version
+  }
+
+  debug('comp', this)
+}
+
+var ANY = {}
+Comparator.prototype.parse = function (comp) {
+  var r = this.options.loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]
+  var m = comp.match(r)
+
+  if (!m) {
+    throw new TypeError('Invalid comparator: ' + comp)
+  }
+
+  this.operator = m[1] !== undefined ? m[1] : ''
+  if (this.operator === '=') {
+    this.operator = ''
+  }
+
+  // if it literally is just '>' or '' then allow anything.
+  if (!m[2]) {
+    this.semver = ANY
+  } else {
+    this.semver = new SemVer(m[2], this.options.loose)
+  }
+}
+
+Comparator.prototype.toString = function () {
+  return this.value
+}
+
+Comparator.prototype.test = function (version) {
+  debug('Comparator.test', version, this.options.loose)
+
+  if (this.semver === ANY || version === ANY) {
+    return true
+  }
+
+  if (typeof version === 'string') {
+    try {
+      version = new SemVer(version, this.options)
+    } catch (er) {
+      return false
+    }
+  }
+
+  return cmp(version, this.operator, this.semver, this.options)
+}
+
+Comparator.prototype.intersects = function (comp, options) {
+  if (!(comp instanceof Comparator)) {
+    throw new TypeError('a Comparator is required')
+  }
+
+  if (!options || typeof options !== 'object') {
+    options = {
+      loose: !!options,
+      includePrerelease: false
+    }
+  }
+
+  var rangeTmp
+
+  if (this.operator === '') {
+    if (this.value === '') {
+      return true
+    }
+    rangeTmp = new Range(comp.value, options)
+    return satisfies(this.value, rangeTmp, options)
+  } else if (comp.operator === '') {
+    if (comp.value === '') {
+      return true
+    }
+    rangeTmp = new Range(this.value, options)
+    return satisfies(comp.semver, rangeTmp, options)
+  }
+
+  var sameDirectionIncreasing =
+    (this.operator === '>=' || this.operator === '>') &&
+    (comp.operator === '>=' || comp.operator === '>')
+  var sameDirectionDecreasing =
+    (this.operator === '<=' || this.operator === '<') &&
+    (comp.operator === '<=' || comp.operator === '<')
+  var sameSemVer = this.semver.version === comp.semver.version
+  var differentDirectionsInclusive =
+    (this.operator === '>=' || this.operator === '<=') &&
+    (comp.operator === '>=' || comp.operator === '<=')
+  var oppositeDirectionsLessThan =
+    cmp(this.semver, '<', comp.semver, options) &&
+    ((this.operator === '>=' || this.operator === '>') &&
+    (comp.operator === '<=' || comp.operator === '<'))
+  var oppositeDirectionsGreaterThan =
+    cmp(this.semver, '>', comp.semver, options) &&
+    ((this.operator === '<=' || this.operator === '<') &&
+    (comp.operator === '>=' || comp.operator === '>'))
+
+  return sameDirectionIncreasing || sameDirectionDecreasing ||
+    (sameSemVer && differentDirectionsInclusive) ||
+    oppositeDirectionsLessThan || oppositeDirectionsGreaterThan
+}
+
+exports.Range = Range
+function Range (range, options) {
+  if (!options || typeof options !== 'object') {
+    options = {
+      loose: !!options,
+      includePrerelease: false
+    }
+  }
+
+  if (range instanceof Range) {
+    if (range.loose === !!options.loose &&
+        range.includePrerelease === !!options.includePrerelease) {
+      return range
+    } else {
+      return new Range(range.raw, options)
+    }
+  }
+
+  if (range instanceof Comparator) {
+    return new Range(range.value, options)
+  }
+
+  if (!(this instanceof Range)) {
+    return new Range(range, options)
+  }
+
+  this.options = options
+  this.loose = !!options.loose
+  this.includePrerelease = !!options.includePrerelease
+
+  // First reduce all whitespace as much as possible so we do not have to rely
+  // on potentially slow regexes like \s*. This is then stored and used for
+  // future error messages as well.
+  this.raw = range
+    .trim()
+    .split(/\s+/)
+    .join(' ')
+
+  // First, split based on boolean or ||
+  this.set = this.raw.split('||').map(function (range) {
+    return this.parseRange(range.trim())
+  }, this).filter(function (c) {
+    // throw out any that are not relevant for whatever reason
+    return c.length
+  })
+
+  if (!this.set.length) {
+    throw new TypeError('Invalid SemVer Range: ' + this.raw)
+  }
+
+  this.format()
+}
+
+Range.prototype.format = function () {
+  this.range = this.set.map(function (comps) {
+    return comps.join(' ').trim()
+  }).join('||').trim()
+  return this.range
+}
+
+Range.prototype.toString = function () {
+  return this.range
+}
+
+Range.prototype.parseRange = function (range) {
+  var loose = this.options.loose
+  // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`
+  var hr = loose ? safeRe[t.HYPHENRANGELOOSE] : safeRe[t.HYPHENRANGE]
+  range = range.replace(hr, hyphenReplace)
+  debug('hyphen replace', range)
+  // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`
+  range = range.replace(safeRe[t.COMPARATORTRIM], comparatorTrimReplace)
+  debug('comparator trim', range, safeRe[t.COMPARATORTRIM])
+
+  // `~ 1.2.3` => `~1.2.3`
+  range = range.replace(safeRe[t.TILDETRIM], tildeTrimReplace)
+
+  // `^ 1.2.3` => `^1.2.3`
+  range = range.replace(safeRe[t.CARETTRIM], caretTrimReplace)
+
+  // normalize spaces
+  range = range.split(/\s+/).join(' ')
+
+  // At this point, the range is completely trimmed and
+  // ready to be split into comparators.
+
+  var compRe = loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]
+  var set = range.split(' ').map(function (comp) {
+    return parseComparator(comp, this.options)
+  }, this).join(' ').split(/\s+/)
+  if (this.options.loose) {
+    // in loose mode, throw out any that are not valid comparators
+    set = set.filter(function (comp) {
+      return !!comp.match(compRe)
+    })
+  }
+  set = set.map(function (comp) {
+    return new Comparator(comp, this.options)
+  }, this)
+
+  return set
+}
+
+Range.prototype.intersects = function (range, options) {
+  if (!(range instanceof Range)) {
+    throw new TypeError('a Range is required')
+  }
+
+  return this.set.some(function (thisComparators) {
+    return (
+      isSatisfiable(thisComparators, options) &&
+      range.set.some(function (rangeComparators) {
+        return (
+          isSatisfiable(rangeComparators, options) &&
+          thisComparators.every(function (thisComparator) {
+            return rangeComparators.every(function (rangeComparator) {
+              return thisComparator.intersects(rangeComparator, options)
+            })
+          })
+        )
+      })
+    )
+  })
+}
+
+// take a set of comparators and determine whether there
+// exists a version which can satisfy it
+function isSatisfiable (comparators, options) {
+  var result = true
+  var remainingComparators = comparators.slice()
+  var testComparator = remainingComparators.pop()
+
+  while (result && remainingComparators.length) {
+    result = remainingComparators.every(function (otherComparator) {
+      return testComparator.intersects(otherComparator, options)
+    })
+
+    testComparator = remainingComparators.pop()
+  }
+
+  return result
+}
+
+// Mostly just for testing and legacy API reasons
+exports.toComparators = toComparators
+function toComparators (range, options) {
+  return new Range(range, options).set.map(function (comp) {
+    return comp.map(function (c) {
+      return c.value
+    }).join(' ').trim().split(' ')
+  })
+}
+
+// comprised of xranges, tildes, stars, and gtlt's at this point.
+// already replaced the hyphen ranges
+// turn into a set of JUST comparators.
+function parseComparator (comp, options) {
+  debug('comp', comp, options)
+  comp = replaceCarets(comp, options)
+  debug('caret', comp)
+  comp = replaceTildes(comp, options)
+  debug('tildes', comp)
+  comp = replaceXRanges(comp, options)
+  debug('xrange', comp)
+  comp = replaceStars(comp, options)
+  debug('stars', comp)
+  return comp
+}
+
+function isX (id) {
+  return !id || id.toLowerCase() === 'x' || id === '*'
+}
+
+// ~, ~> --> * (any, kinda silly)
+// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0
+// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0
+// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0
+// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0
+// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0
+function replaceTildes (comp, options) {
+  return comp.trim().split(/\s+/).map(function (comp) {
+    return replaceTilde(comp, options)
+  }).join(' ')
+}
+
+function replaceTilde (comp, options) {
+  var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE]
+  return comp.replace(r, function (_, M, m, p, pr) {
+    debug('tilde', comp, _, M, m, p, pr)
+    var ret
+
+    if (isX(M)) {
+      ret = ''
+    } else if (isX(m)) {
+      ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'
+    } else if (isX(p)) {
+      // ~1.2 == >=1.2.0 <1.3.0
+      ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'
+    } else if (pr) {
+      debug('replaceTilde pr', pr)
+      ret = '>=' + M + '.' + m + '.' + p + '-' + pr +
+            ' <' + M + '.' + (+m + 1) + '.0'
+    } else {
+      // ~1.2.3 == >=1.2.3 <1.3.0
+      ret = '>=' + M + '.' + m + '.' + p +
+            ' <' + M + '.' + (+m + 1) + '.0'
+    }
+
+    debug('tilde return', ret)
+    return ret
+  })
+}
+
+// ^ --> * (any, kinda silly)
+// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0
+// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0
+// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0
+// ^1.2.3 --> >=1.2.3 <2.0.0
+// ^1.2.0 --> >=1.2.0 <2.0.0
+function replaceCarets (comp, options) {
+  return comp.trim().split(/\s+/).map(function (comp) {
+    return replaceCaret(comp, options)
+  }).join(' ')
+}
+
+function replaceCaret (comp, options) {
+  debug('caret', comp, options)
+  var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET]
+  return comp.replace(r, function (_, M, m, p, pr) {
+    debug('caret', comp, _, M, m, p, pr)
+    var ret
+
+    if (isX(M)) {
+      ret = ''
+    } else if (isX(m)) {
+      ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'
+    } else if (isX(p)) {
+      if (M === '0') {
+        ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'
+      } else {
+        ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'
+      }
+    } else if (pr) {
+      debug('replaceCaret pr', pr)
+      if (M === '0') {
+        if (m === '0') {
+          ret = '>=' + M + '.' + m + '.' + p + '-' + pr +
+                ' <' + M + '.' + m + '.' + (+p + 1)
+        } else {
+          ret = '>=' + M + '.' + m + '.' + p + '-' + pr +
+                ' <' + M + '.' + (+m + 1) + '.0'
+        }
+      } else {
+        ret = '>=' + M + '.' + m + '.' + p + '-' + pr +
+              ' <' + (+M + 1) + '.0.0'
+      }
+    } else {
+      debug('no pr')
+      if (M === '0') {
+        if (m === '0') {
+          ret = '>=' + M + '.' + m + '.' + p +
+                ' <' + M + '.' + m + '.' + (+p + 1)
+        } else {
+          ret = '>=' + M + '.' + m + '.' + p +
+                ' <' + M + '.' + (+m + 1) + '.0'
+        }
+      } else {
+        ret = '>=' + M + '.' + m + '.' + p +
+              ' <' + (+M + 1) + '.0.0'
+      }
+    }
+
+    debug('caret return', ret)
+    return ret
+  })
+}
+
+function replaceXRanges (comp, options) {
+  debug('replaceXRanges', comp, options)
+  return comp.split(/\s+/).map(function (comp) {
+    return replaceXRange(comp, options)
+  }).join(' ')
+}
+
+function replaceXRange (comp, options) {
+  comp = comp.trim()
+  var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE]
+  return comp.replace(r, function (ret, gtlt, M, m, p, pr) {
+    debug('xRange', comp, ret, gtlt, M, m, p, pr)
+    var xM = isX(M)
+    var xm = xM || isX(m)
+    var xp = xm || isX(p)
+    var anyX = xp
+
+    if (gtlt === '=' && anyX) {
+      gtlt = ''
+    }
+
+    // if we're including prereleases in the match, then we need
+    // to fix this to -0, the lowest possible prerelease value
+    pr = options.includePrerelease ? '-0' : ''
+
+    if (xM) {
+      if (gtlt === '>' || gtlt === '<') {
+        // nothing is allowed
+        ret = '<0.0.0-0'
+      } else {
+        // nothing is forbidden
+        ret = '*'
+      }
+    } else if (gtlt && anyX) {
+      // we know patch is an x, because we have any x at all.
+      // replace X with 0
+      if (xm) {
+        m = 0
+      }
+      p = 0
+
+      if (gtlt === '>') {
+        // >1 => >=2.0.0
+        // >1.2 => >=1.3.0
+        // >1.2.3 => >= 1.2.4
+        gtlt = '>='
+        if (xm) {
+          M = +M + 1
+          m = 0
+          p = 0
+        } else {
+          m = +m + 1
+          p = 0
+        }
+      } else if (gtlt === '<=') {
+        // <=0.7.x is actually <0.8.0, since any 0.7.x should
+        // pass.  Similarly, <=7.x is actually <8.0.0, etc.
+        gtlt = '<'
+        if (xm) {
+          M = +M + 1
+        } else {
+          m = +m + 1
+        }
+      }
+
+      ret = gtlt + M + '.' + m + '.' + p + pr
+    } else if (xm) {
+      ret = '>=' + M + '.0.0' + pr + ' <' + (+M + 1) + '.0.0' + pr
+    } else if (xp) {
+      ret = '>=' + M + '.' + m + '.0' + pr +
+        ' <' + M + '.' + (+m + 1) + '.0' + pr
+    }
+
+    debug('xRange return', ret)
+
+    return ret
+  })
+}
+
+// Because * is AND-ed with everything else in the comparator,
+// and '' means "any version", just remove the *s entirely.
+function replaceStars (comp, options) {
+  debug('replaceStars', comp, options)
+  // Looseness is ignored here.  star is always as loose as it gets!
+  return comp.trim().replace(safeRe[t.STAR], '')
+}
+
+// This function is passed to string.replace(re[t.HYPHENRANGE])
+// M, m, patch, prerelease, build
+// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5
+// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do
+// 1.2 - 3.4 => >=1.2.0 <3.5.0
+function hyphenReplace ($0,
+  from, fM, fm, fp, fpr, fb,
+  to, tM, tm, tp, tpr, tb) {
+  if (isX(fM)) {
+    from = ''
+  } else if (isX(fm)) {
+    from = '>=' + fM + '.0.0'
+  } else if (isX(fp)) {
+    from = '>=' + fM + '.' + fm + '.0'
+  } else {
+    from = '>=' + from
+  }
+
+  if (isX(tM)) {
+    to = ''
+  } else if (isX(tm)) {
+    to = '<' + (+tM + 1) + '.0.0'
+  } else if (isX(tp)) {
+    to = '<' + tM + '.' + (+tm + 1) + '.0'
+  } else if (tpr) {
+    to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr
+  } else {
+    to = '<=' + to
+  }
+
+  return (from + ' ' + to).trim()
+}
+
+// if ANY of the sets match ALL of its comparators, then pass
+Range.prototype.test = function (version) {
+  if (!version) {
+    return false
+  }
+
+  if (typeof version === 'string') {
+    try {
+      version = new SemVer(version, this.options)
+    } catch (er) {
+      return false
+    }
+  }
+
+  for (var i = 0; i < this.set.length; i++) {
+    if (testSet(this.set[i], version, this.options)) {
+      return true
+    }
+  }
+  return false
+}
+
+function testSet (set, version, options) {
+  for (var i = 0; i < set.length; i++) {
+    if (!set[i].test(version)) {
+      return false
+    }
+  }
+
+  if (version.prerelease.length && !options.includePrerelease) {
+    // Find the set of versions that are allowed to have prereleases
+    // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0
+    // That should allow `1.2.3-pr.2` to pass.
+    // However, `1.2.4-alpha.notready` should NOT be allowed,
+    // even though it's within the range set by the comparators.
+    for (i = 0; i < set.length; i++) {
+      debug(set[i].semver)
+      if (set[i].semver === ANY) {
+        continue
+      }
+
+      if (set[i].semver.prerelease.length > 0) {
+        var allowed = set[i].semver
+        if (allowed.major === version.major &&
+            allowed.minor === version.minor &&
+            allowed.patch === version.patch) {
+          return true
+        }
+      }
+    }
+
+    // Version has a -pre, but it's not one of the ones we like.
+    return false
+  }
+
+  return true
+}
+
+exports.satisfies = satisfies
+function satisfies (version, range, options) {
+  try {
+    range = new Range(range, options)
+  } catch (er) {
+    return false
+  }
+  return range.test(version)
+}
+
+exports.maxSatisfying = maxSatisfying
+function maxSatisfying (versions, range, options) {
+  var max = null
+  var maxSV = null
+  try {
+    var rangeObj = new Range(range, options)
+  } catch (er) {
+    return null
+  }
+  versions.forEach(function (v) {
+    if (rangeObj.test(v)) {
+      // satisfies(v, range, options)
+      if (!max || maxSV.compare(v) === -1) {
+        // compare(max, v, true)
+        max = v
+        maxSV = new SemVer(max, options)
+      }
+    }
+  })
+  return max
+}
+
+exports.minSatisfying = minSatisfying
+function minSatisfying (versions, range, options) {
+  var min = null
+  var minSV = null
+  try {
+    var rangeObj = new Range(range, options)
+  } catch (er) {
+    return null
+  }
+  versions.forEach(function (v) {
+    if (rangeObj.test(v)) {
+      // satisfies(v, range, options)
+      if (!min || minSV.compare(v) === 1) {
+        // compare(min, v, true)
+        min = v
+        minSV = new SemVer(min, options)
+      }
+    }
+  })
+  return min
+}
+
+exports.minVersion = minVersion
+function minVersion (range, loose) {
+  range = new Range(range, loose)
+
+  var minver = new SemVer('0.0.0')
+  if (range.test(minver)) {
+    return minver
+  }
+
+  minver = new SemVer('0.0.0-0')
+  if (range.test(minver)) {
+    return minver
+  }
+
+  minver = null
+  for (var i = 0; i < range.set.length; ++i) {
+    var comparators = range.set[i]
+
+    comparators.forEach(function (comparator) {
+      // Clone to avoid manipulating the comparator's semver object.
+      var compver = new SemVer(comparator.semver.version)
+      switch (comparator.operator) {
+        case '>':
+          if (compver.prerelease.length === 0) {
+            compver.patch++
+          } else {
+            compver.prerelease.push(0)
+          }
+          compver.raw = compver.format()
+          /* fallthrough */
+        case '':
+        case '>=':
+          if (!minver || gt(minver, compver)) {
+            minver = compver
+          }
+          break
+        case '<':
+        case '<=':
+          /* Ignore maximum versions */
+          break
+        /* istanbul ignore next */
+        default:
+          throw new Error('Unexpected operation: ' + comparator.operator)
+      }
+    })
+  }
+
+  if (minver && range.test(minver)) {
+    return minver
+  }
+
+  return null
+}
+
+exports.validRange = validRange
+function validRange (range, options) {
+  try {
+    // Return '*' instead of '' so that truthiness works.
+    // This will throw if it's invalid anyway
+    return new Range(range, options).range || '*'
+  } catch (er) {
+    return null
+  }
+}
+
+// Determine if version is less than all the versions possible in the range
+exports.ltr = ltr
+function ltr (version, range, options) {
+  return outside(version, range, '<', options)
+}
+
+// Determine if version is greater than all the versions possible in the range.
+exports.gtr = gtr
+function gtr (version, range, options) {
+  return outside(version, range, '>', options)
+}
+
+exports.outside = outside
+function outside (version, range, hilo, options) {
+  version = new SemVer(version, options)
+  range = new Range(range, options)
+
+  var gtfn, ltefn, ltfn, comp, ecomp
+  switch (hilo) {
+    case '>':
+      gtfn = gt
+      ltefn = lte
+      ltfn = lt
+      comp = '>'
+      ecomp = '>='
+      break
+    case '<':
+      gtfn = lt
+      ltefn = gte
+      ltfn = gt
+      comp = '<'
+      ecomp = '<='
+      break
+    default:
+      throw new TypeError('Must provide a hilo val of "<" or ">"')
+  }
+
+  // If it satisifes the range it is not outside
+  if (satisfies(version, range, options)) {
+    return false
+  }
+
+  // From now on, variable terms are as if we're in "gtr" mode.
+  // but note that everything is flipped for the "ltr" function.
+
+  for (var i = 0; i < range.set.length; ++i) {
+    var comparators = range.set[i]
+
+    var high = null
+    var low = null
+
+    comparators.forEach(function (comparator) {
+      if (comparator.semver === ANY) {
+        comparator = new Comparator('>=0.0.0')
+      }
+      high = high || comparator
+      low = low || comparator
+      if (gtfn(comparator.semver, high.semver, options)) {
+        high = comparator
+      } else if (ltfn(comparator.semver, low.semver, options)) {
+        low = comparator
+      }
+    })
+
+    // If the edge version comparator has a operator then our version
+    // isn't outside it
+    if (high.operator === comp || high.operator === ecomp) {
+      return false
+    }
+
+    // If the lowest version comparator has an operator and our version
+    // is less than it then it isn't higher than the range
+    if ((!low.operator || low.operator === comp) &&
+        ltefn(version, low.semver)) {
+      return false
+    } else if (low.operator === ecomp && ltfn(version, low.semver)) {
+      return false
+    }
+  }
+  return true
+}
+
+exports.prerelease = prerelease
+function prerelease (version, options) {
+  var parsed = parse(version, options)
+  return (parsed && parsed.prerelease.length) ? parsed.prerelease : null
+}
+
+exports.intersects = intersects
+function intersects (r1, r2, options) {
+  r1 = new Range(r1, options)
+  r2 = new Range(r2, options)
+  return r1.intersects(r2)
+}
+
+exports.coerce = coerce
+function coerce (version, options) {
+  if (version instanceof SemVer) {
+    return version
+  }
+
+  if (typeof version === 'number') {
+    version = String(version)
+  }
+
+  if (typeof version !== 'string') {
+    return null
+  }
+
+  options = options || {}
+
+  var match = null
+  if (!options.rtl) {
+    match = version.match(safeRe[t.COERCE])
+  } else {
+    // Find the right-most coercible string that does not share
+    // a terminus with a more left-ward coercible string.
+    // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'
+    //
+    // Walk through the string checking with a /g regexp
+    // Manually set the index so as to pick up overlapping matches.
+    // Stop when we get a match that ends at the string end, since no
+    // coercible string can be more right-ward without the same terminus.
+    var next
+    while ((next = safeRe[t.COERCERTL].exec(version)) &&
+      (!match || match.index + match[0].length !== version.length)
+    ) {
+      if (!match ||
+          next.index + next[0].length !== match.index + match[0].length) {
+        match = next
+      }
+      safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length
+    }
+    // leave it in a clean state
+    safeRe[t.COERCERTL].lastIndex = -1
+  }
+
+  if (match === null) {
+    return null
+  }
+
+  return parse(match[2] +
+    '.' + (match[3] || '0') +
+    '.' + (match[4] || '0'), options)
+}

+ 43 - 0
node_modules/@babel/helper-create-class-features-plugin/package.json

@@ -0,0 +1,43 @@
+{
+  "name": "@babel/helper-create-class-features-plugin",
+  "version": "7.27.1",
+  "author": "The Babel Team (https://babel.dev/team)",
+  "license": "MIT",
+  "description": "Compile class public and private fields, private methods and decorators to ES6",
+  "repository": {
+    "type": "git",
+    "url": "https://github.com/babel/babel.git",
+    "directory": "packages/babel-helper-create-class-features-plugin"
+  },
+  "main": "./lib/index.js",
+  "publishConfig": {
+    "access": "public"
+  },
+  "keywords": [
+    "babel",
+    "babel-plugin"
+  ],
+  "dependencies": {
+    "@babel/helper-annotate-as-pure": "^7.27.1",
+    "@babel/helper-member-expression-to-functions": "^7.27.1",
+    "@babel/helper-optimise-call-expression": "^7.27.1",
+    "@babel/helper-replace-supers": "^7.27.1",
+    "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1",
+    "@babel/traverse": "^7.27.1",
+    "semver": "^6.3.1"
+  },
+  "peerDependencies": {
+    "@babel/core": "^7.0.0"
+  },
+  "devDependencies": {
+    "@babel/core": "^7.27.1",
+    "@babel/helper-plugin-test-runner": "^7.27.1",
+    "@babel/preset-env": "^7.27.1",
+    "@types/charcodes": "^0.2.0",
+    "charcodes": "^0.2.0"
+  },
+  "engines": {
+    "node": ">=6.9.0"
+  },
+  "type": "commonjs"
+}

+ 22 - 0
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.

+ 19 - 0
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
+```

+ 30 - 0
node_modules/@babel/helper-create-regexp-features-plugin/lib/features.js

@@ -0,0 +1,30 @@
+"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 = exports.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
+});
+const featuresKey = exports.featuresKey = "@babel/plugin-regexp-features/featuresKey";
+const runtimeKey = exports.runtimeKey = "@babel/plugin-regexp-features/runtimeKey";
+function enableFeature(features, feature) {
+  return features | feature;
+}
+function hasFeature(features, feature) {
+  return !!(features & feature);
+}
+
+//# sourceMappingURL=features.js.map

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
node_modules/@babel/helper-create-regexp-features-plugin/lib/features.js.map


+ 116 - 0
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-transform-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.27.1");
+          return;
+        }
+      }
+      if (!file.get(versionKey) || _semver.lt(file.get(versionKey), "7.27.1")) {
+        file.set(versionKey, "7.27.1");
+      }
+    },
+    visitor: {
+      RegExpLiteral(path) {
+        var _file$get2;
+        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 != 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

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
node_modules/@babel/helper-create-regexp-features-plugin/lib/index.js.map


+ 71 - 0
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 => {
+    return (0, _features.hasFeature)(toTransform, _features.FEATURES[name]) ? "transform" : false;
+  };
+  const featDuplicateNamedGroups = () => {
+    if (!feat("duplicateNamedCaptureGroups")) return false;
+    const regex = /\(\?<([^>]+)(>|$)/g;
+    const seen = new Set();
+    for (let match; (match = regex.exec(pattern)) && match[2]; seen.add(match[1])) {
+      if (seen.has(match[1])) return "transform";
+    }
+    return false;
+  };
+  return {
+    unicodeFlag: feat("unicodeFlag"),
+    unicodeSetsFlag: feat("unicodeSetsFlag"),
+    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" && /\\p\{/i.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

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
node_modules/@babel/helper-create-regexp-features-plugin/lib/util.js.map


+ 16 - 0
node_modules/@babel/helper-create-regexp-features-plugin/node_modules/.bin/semver

@@ -0,0 +1,16 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+    *CYGWIN*|*MINGW*|*MSYS*)
+        if command -v cygpath > /dev/null 2>&1; then
+            basedir=`cygpath -w "$basedir"`
+        fi
+    ;;
+esac
+
+if [ -x "$basedir/node" ]; then
+  exec "$basedir/node"  "$basedir/../semver/bin/semver.js" "$@"
+else 
+  exec node  "$basedir/../semver/bin/semver.js" "$@"
+fi

+ 17 - 0
node_modules/@babel/helper-create-regexp-features-plugin/node_modules/.bin/semver.cmd

@@ -0,0 +1,17 @@
+@ECHO off
+GOTO start
+:find_dp0
+SET dp0=%~dp0
+EXIT /b
+:start
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+  SET "_prog=%dp0%\node.exe"
+) ELSE (
+  SET "_prog=node"
+  SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\semver\bin\semver.js" %*

+ 28 - 0
node_modules/@babel/helper-create-regexp-features-plugin/node_modules/.bin/semver.ps1

@@ -0,0 +1,28 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+  # Fix case when both the Windows and Linux builds of Node
+  # are installed in the same directory
+  $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+  # Support pipeline input
+  if ($MyInvocation.ExpectingInput) {
+    $input | & "$basedir/node$exe"  "$basedir/../semver/bin/semver.js" $args
+  } else {
+    & "$basedir/node$exe"  "$basedir/../semver/bin/semver.js" $args
+  }
+  $ret=$LASTEXITCODE
+} else {
+  # Support pipeline input
+  if ($MyInvocation.ExpectingInput) {
+    $input | & "node$exe"  "$basedir/../semver/bin/semver.js" $args
+  } else {
+    & "node$exe"  "$basedir/../semver/bin/semver.js" $args
+  }
+  $ret=$LASTEXITCODE
+}
+exit $ret

+ 15 - 0
node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver/LICENSE

@@ -0,0 +1,15 @@
+The ISC License
+
+Copyright (c) Isaac Z. Schlueter and Contributors
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
+IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

+ 443 - 0
node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver/README.md

@@ -0,0 +1,443 @@
+semver(1) -- The semantic versioner for npm
+===========================================
+
+## Install
+
+```bash
+npm install semver
+````
+
+## Usage
+
+As a node module:
+
+```js
+const semver = require('semver')
+
+semver.valid('1.2.3') // '1.2.3'
+semver.valid('a.b.c') // null
+semver.clean('  =v1.2.3   ') // '1.2.3'
+semver.satisfies('1.2.3', '1.x || >=2.5.0 || 5.0.0 - 7.2.3') // true
+semver.gt('1.2.3', '9.8.7') // false
+semver.lt('1.2.3', '9.8.7') // true
+semver.minVersion('>=1.0.0') // '1.0.0'
+semver.valid(semver.coerce('v2')) // '2.0.0'
+semver.valid(semver.coerce('42.6.7.9.3-alpha')) // '42.6.7'
+```
+
+As a command-line utility:
+
+```
+$ semver -h
+
+A JavaScript implementation of the https://semver.org/ specification
+Copyright Isaac Z. Schlueter
+
+Usage: semver [options] <version> [<version> [...]]
+Prints valid versions sorted by SemVer precedence
+
+Options:
+-r --range <range>
+        Print versions that match the specified range.
+
+-i --increment [<level>]
+        Increment a version by the specified level.  Level can
+        be one of: major, minor, patch, premajor, preminor,
+        prepatch, or prerelease.  Default level is 'patch'.
+        Only one version may be specified.
+
+--preid <identifier>
+        Identifier to be used to prefix premajor, preminor,
+        prepatch or prerelease version increments.
+
+-l --loose
+        Interpret versions and ranges loosely
+
+-p --include-prerelease
+        Always include prerelease versions in range matching
+
+-c --coerce
+        Coerce a string into SemVer if possible
+        (does not imply --loose)
+
+--rtl
+        Coerce version strings right to left
+
+--ltr
+        Coerce version strings left to right (default)
+
+Program exits successfully if any valid version satisfies
+all supplied ranges, and prints all satisfying versions.
+
+If no satisfying versions are found, then exits failure.
+
+Versions are printed in ascending order, so supplying
+multiple versions to the utility will just sort them.
+```
+
+## Versions
+
+A "version" is described by the `v2.0.0` specification found at
+<https://semver.org/>.
+
+A leading `"="` or `"v"` character is stripped off and ignored.
+
+## Ranges
+
+A `version range` is a set of `comparators` which specify versions
+that satisfy the range.
+
+A `comparator` is composed of an `operator` and a `version`.  The set
+of primitive `operators` is:
+
+* `<` Less than
+* `<=` Less than or equal to
+* `>` Greater than
+* `>=` Greater than or equal to
+* `=` Equal.  If no operator is specified, then equality is assumed,
+  so this operator is optional, but MAY be included.
+
+For example, the comparator `>=1.2.7` would match the versions
+`1.2.7`, `1.2.8`, `2.5.3`, and `1.3.9`, but not the versions `1.2.6`
+or `1.1.0`.
+
+Comparators can be joined by whitespace to form a `comparator set`,
+which is satisfied by the **intersection** of all of the comparators
+it includes.
+
+A range is composed of one or more comparator sets, joined by `||`.  A
+version matches a range if and only if every comparator in at least
+one of the `||`-separated comparator sets is satisfied by the version.
+
+For example, the range `>=1.2.7 <1.3.0` would match the versions
+`1.2.7`, `1.2.8`, and `1.2.99`, but not the versions `1.2.6`, `1.3.0`,
+or `1.1.0`.
+
+The range `1.2.7 || >=1.2.9 <2.0.0` would match the versions `1.2.7`,
+`1.2.9`, and `1.4.6`, but not the versions `1.2.8` or `2.0.0`.
+
+### Prerelease Tags
+
+If a version has a prerelease tag (for example, `1.2.3-alpha.3`) then
+it will only be allowed to satisfy comparator sets if at least one
+comparator with the same `[major, minor, patch]` tuple also has a
+prerelease tag.
+
+For example, the range `>1.2.3-alpha.3` would be allowed to match the
+version `1.2.3-alpha.7`, but it would *not* be satisfied by
+`3.4.5-alpha.9`, even though `3.4.5-alpha.9` is technically "greater
+than" `1.2.3-alpha.3` according to the SemVer sort rules.  The version
+range only accepts prerelease tags on the `1.2.3` version.  The
+version `3.4.5` *would* satisfy the range, because it does not have a
+prerelease flag, and `3.4.5` is greater than `1.2.3-alpha.7`.
+
+The purpose for this behavior is twofold.  First, prerelease versions
+frequently are updated very quickly, and contain many breaking changes
+that are (by the author's design) not yet fit for public consumption.
+Therefore, by default, they are excluded from range matching
+semantics.
+
+Second, a user who has opted into using a prerelease version has
+clearly indicated the intent to use *that specific* set of
+alpha/beta/rc versions.  By including a prerelease tag in the range,
+the user is indicating that they are aware of the risk.  However, it
+is still not appropriate to assume that they have opted into taking a
+similar risk on the *next* set of prerelease versions.
+
+Note that this behavior can be suppressed (treating all prerelease
+versions as if they were normal versions, for the purpose of range
+matching) by setting the `includePrerelease` flag on the options
+object to any
+[functions](https://github.com/npm/node-semver#functions) that do
+range matching.
+
+#### Prerelease Identifiers
+
+The method `.inc` takes an additional `identifier` string argument that
+will append the value of the string as a prerelease identifier:
+
+```javascript
+semver.inc('1.2.3', 'prerelease', 'beta')
+// '1.2.4-beta.0'
+```
+
+command-line example:
+
+```bash
+$ semver 1.2.3 -i prerelease --preid beta
+1.2.4-beta.0
+```
+
+Which then can be used to increment further:
+
+```bash
+$ semver 1.2.4-beta.0 -i prerelease
+1.2.4-beta.1
+```
+
+### Advanced Range Syntax
+
+Advanced range syntax desugars to primitive comparators in
+deterministic ways.
+
+Advanced ranges may be combined in the same way as primitive
+comparators using white space or `||`.
+
+#### Hyphen Ranges `X.Y.Z - A.B.C`
+
+Specifies an inclusive set.
+
+* `1.2.3 - 2.3.4` := `>=1.2.3 <=2.3.4`
+
+If a partial version is provided as the first version in the inclusive
+range, then the missing pieces are replaced with zeroes.
+
+* `1.2 - 2.3.4` := `>=1.2.0 <=2.3.4`
+
+If a partial version is provided as the second version in the
+inclusive range, then all versions that start with the supplied parts
+of the tuple are accepted, but nothing that would be greater than the
+provided tuple parts.
+
+* `1.2.3 - 2.3` := `>=1.2.3 <2.4.0`
+* `1.2.3 - 2` := `>=1.2.3 <3.0.0`
+
+#### X-Ranges `1.2.x` `1.X` `1.2.*` `*`
+
+Any of `X`, `x`, or `*` may be used to "stand in" for one of the
+numeric values in the `[major, minor, patch]` tuple.
+
+* `*` := `>=0.0.0` (Any version satisfies)
+* `1.x` := `>=1.0.0 <2.0.0` (Matching major version)
+* `1.2.x` := `>=1.2.0 <1.3.0` (Matching major and minor versions)
+
+A partial version range is treated as an X-Range, so the special
+character is in fact optional.
+
+* `""` (empty string) := `*` := `>=0.0.0`
+* `1` := `1.x.x` := `>=1.0.0 <2.0.0`
+* `1.2` := `1.2.x` := `>=1.2.0 <1.3.0`
+
+#### Tilde Ranges `~1.2.3` `~1.2` `~1`
+
+Allows patch-level changes if a minor version is specified on the
+comparator.  Allows minor-level changes if not.
+
+* `~1.2.3` := `>=1.2.3 <1.(2+1).0` := `>=1.2.3 <1.3.0`
+* `~1.2` := `>=1.2.0 <1.(2+1).0` := `>=1.2.0 <1.3.0` (Same as `1.2.x`)
+* `~1` := `>=1.0.0 <(1+1).0.0` := `>=1.0.0 <2.0.0` (Same as `1.x`)
+* `~0.2.3` := `>=0.2.3 <0.(2+1).0` := `>=0.2.3 <0.3.0`
+* `~0.2` := `>=0.2.0 <0.(2+1).0` := `>=0.2.0 <0.3.0` (Same as `0.2.x`)
+* `~0` := `>=0.0.0 <(0+1).0.0` := `>=0.0.0 <1.0.0` (Same as `0.x`)
+* `~1.2.3-beta.2` := `>=1.2.3-beta.2 <1.3.0` Note that prereleases in
+  the `1.2.3` version will be allowed, if they are greater than or
+  equal to `beta.2`.  So, `1.2.3-beta.4` would be allowed, but
+  `1.2.4-beta.2` would not, because it is a prerelease of a
+  different `[major, minor, patch]` tuple.
+
+#### Caret Ranges `^1.2.3` `^0.2.5` `^0.0.4`
+
+Allows changes that do not modify the left-most non-zero element in the
+`[major, minor, patch]` tuple.  In other words, this allows patch and
+minor updates for versions `1.0.0` and above, patch updates for
+versions `0.X >=0.1.0`, and *no* updates for versions `0.0.X`.
+
+Many authors treat a `0.x` version as if the `x` were the major
+"breaking-change" indicator.
+
+Caret ranges are ideal when an author may make breaking changes
+between `0.2.4` and `0.3.0` releases, which is a common practice.
+However, it presumes that there will *not* be breaking changes between
+`0.2.4` and `0.2.5`.  It allows for changes that are presumed to be
+additive (but non-breaking), according to commonly observed practices.
+
+* `^1.2.3` := `>=1.2.3 <2.0.0`
+* `^0.2.3` := `>=0.2.3 <0.3.0`
+* `^0.0.3` := `>=0.0.3 <0.0.4`
+* `^1.2.3-beta.2` := `>=1.2.3-beta.2 <2.0.0` Note that prereleases in
+  the `1.2.3` version will be allowed, if they are greater than or
+  equal to `beta.2`.  So, `1.2.3-beta.4` would be allowed, but
+  `1.2.4-beta.2` would not, because it is a prerelease of a
+  different `[major, minor, patch]` tuple.
+* `^0.0.3-beta` := `>=0.0.3-beta <0.0.4`  Note that prereleases in the
+  `0.0.3` version *only* will be allowed, if they are greater than or
+  equal to `beta`.  So, `0.0.3-pr.2` would be allowed.
+
+When parsing caret ranges, a missing `patch` value desugars to the
+number `0`, but will allow flexibility within that value, even if the
+major and minor versions are both `0`.
+
+* `^1.2.x` := `>=1.2.0 <2.0.0`
+* `^0.0.x` := `>=0.0.0 <0.1.0`
+* `^0.0` := `>=0.0.0 <0.1.0`
+
+A missing `minor` and `patch` values will desugar to zero, but also
+allow flexibility within those values, even if the major version is
+zero.
+
+* `^1.x` := `>=1.0.0 <2.0.0`
+* `^0.x` := `>=0.0.0 <1.0.0`
+
+### Range Grammar
+
+Putting all this together, here is a Backus-Naur grammar for ranges,
+for the benefit of parser authors:
+
+```bnf
+range-set  ::= range ( logical-or range ) *
+logical-or ::= ( ' ' ) * '||' ( ' ' ) *
+range      ::= hyphen | simple ( ' ' simple ) * | ''
+hyphen     ::= partial ' - ' partial
+simple     ::= primitive | partial | tilde | caret
+primitive  ::= ( '<' | '>' | '>=' | '<=' | '=' ) partial
+partial    ::= xr ( '.' xr ( '.' xr qualifier ? )? )?
+xr         ::= 'x' | 'X' | '*' | nr
+nr         ::= '0' | ['1'-'9'] ( ['0'-'9'] ) *
+tilde      ::= '~' partial
+caret      ::= '^' partial
+qualifier  ::= ( '-' pre )? ( '+' build )?
+pre        ::= parts
+build      ::= parts
+parts      ::= part ( '.' part ) *
+part       ::= nr | [-0-9A-Za-z]+
+```
+
+## Functions
+
+All methods and classes take a final `options` object argument.  All
+options in this object are `false` by default.  The options supported
+are:
+
+- `loose`  Be more forgiving about not-quite-valid semver strings.
+  (Any resulting output will always be 100% strict compliant, of
+  course.)  For backwards compatibility reasons, if the `options`
+  argument is a boolean value instead of an object, it is interpreted
+  to be the `loose` param.
+- `includePrerelease`  Set to suppress the [default
+  behavior](https://github.com/npm/node-semver#prerelease-tags) of
+  excluding prerelease tagged versions from ranges unless they are
+  explicitly opted into.
+
+Strict-mode Comparators and Ranges will be strict about the SemVer
+strings that they parse.
+
+* `valid(v)`: Return the parsed version, or null if it's not valid.
+* `inc(v, release)`: Return the version incremented by the release
+  type (`major`,   `premajor`, `minor`, `preminor`, `patch`,
+  `prepatch`, or `prerelease`), or null if it's not valid
+  * `premajor` in one call will bump the version up to the next major
+    version and down to a prerelease of that major version.
+    `preminor`, and `prepatch` work the same way.
+  * If called from a non-prerelease version, the `prerelease` will work the
+    same as `prepatch`. It increments the patch version, then makes a
+    prerelease. If the input version is already a prerelease it simply
+    increments it.
+* `prerelease(v)`: Returns an array of prerelease components, or null
+  if none exist. Example: `prerelease('1.2.3-alpha.1') -> ['alpha', 1]`
+* `major(v)`: Return the major version number.
+* `minor(v)`: Return the minor version number.
+* `patch(v)`: Return the patch version number.
+* `intersects(r1, r2, loose)`: Return true if the two supplied ranges
+  or comparators intersect.
+* `parse(v)`: Attempt to parse a string as a semantic version, returning either
+  a `SemVer` object or `null`.
+
+### Comparison
+
+* `gt(v1, v2)`: `v1 > v2`
+* `gte(v1, v2)`: `v1 >= v2`
+* `lt(v1, v2)`: `v1 < v2`
+* `lte(v1, v2)`: `v1 <= v2`
+* `eq(v1, v2)`: `v1 == v2` This is true if they're logically equivalent,
+  even if they're not the exact same string.  You already know how to
+  compare strings.
+* `neq(v1, v2)`: `v1 != v2` The opposite of `eq`.
+* `cmp(v1, comparator, v2)`: Pass in a comparison string, and it'll call
+  the corresponding function above.  `"==="` and `"!=="` do simple
+  string comparison, but are included for completeness.  Throws if an
+  invalid comparison string is provided.
+* `compare(v1, v2)`: Return `0` if `v1 == v2`, or `1` if `v1` is greater, or `-1` if
+  `v2` is greater.  Sorts in ascending order if passed to `Array.sort()`.
+* `rcompare(v1, v2)`: The reverse of compare.  Sorts an array of versions
+  in descending order when passed to `Array.sort()`.
+* `compareBuild(v1, v2)`: The same as `compare` but considers `build` when two versions
+  are equal.  Sorts in ascending order if passed to `Array.sort()`.
+  `v2` is greater.  Sorts in ascending order if passed to `Array.sort()`.
+* `diff(v1, v2)`: Returns difference between two versions by the release type
+  (`major`, `premajor`, `minor`, `preminor`, `patch`, `prepatch`, or `prerelease`),
+  or null if the versions are the same.
+
+### Comparators
+
+* `intersects(comparator)`: Return true if the comparators intersect
+
+### Ranges
+
+* `validRange(range)`: Return the valid range or null if it's not valid
+* `satisfies(version, range)`: Return true if the version satisfies the
+  range.
+* `maxSatisfying(versions, range)`: Return the highest version in the list
+  that satisfies the range, or `null` if none of them do.
+* `minSatisfying(versions, range)`: Return the lowest version in the list
+  that satisfies the range, or `null` if none of them do.
+* `minVersion(range)`: Return the lowest version that can possibly match
+  the given range.
+* `gtr(version, range)`: Return `true` if version is greater than all the
+  versions possible in the range.
+* `ltr(version, range)`: Return `true` if version is less than all the
+  versions possible in the range.
+* `outside(version, range, hilo)`: Return true if the version is outside
+  the bounds of the range in either the high or low direction.  The
+  `hilo` argument must be either the string `'>'` or `'<'`.  (This is
+  the function called by `gtr` and `ltr`.)
+* `intersects(range)`: Return true if any of the ranges comparators intersect
+
+Note that, since ranges may be non-contiguous, a version might not be
+greater than a range, less than a range, *or* satisfy a range!  For
+example, the range `1.2 <1.2.9 || >2.0.0` would have a hole from `1.2.9`
+until `2.0.0`, so the version `1.2.10` would not be greater than the
+range (because `2.0.1` satisfies, which is higher), nor less than the
+range (since `1.2.8` satisfies, which is lower), and it also does not
+satisfy the range.
+
+If you want to know if a version satisfies or does not satisfy a
+range, use the `satisfies(version, range)` function.
+
+### Coercion
+
+* `coerce(version, options)`: Coerces a string to semver if possible
+
+This aims to provide a very forgiving translation of a non-semver string to
+semver. It looks for the first digit in a string, and consumes all
+remaining characters which satisfy at least a partial semver (e.g., `1`,
+`1.2`, `1.2.3`) up to the max permitted length (256 characters).  Longer
+versions are simply truncated (`4.6.3.9.2-alpha2` becomes `4.6.3`).  All
+surrounding text is simply ignored (`v3.4 replaces v3.3.1` becomes
+`3.4.0`).  Only text which lacks digits will fail coercion (`version one`
+is not valid).  The maximum  length for any semver component considered for
+coercion is 16 characters; longer components will be ignored
+(`10000000000000000.4.7.4` becomes `4.7.4`).  The maximum value for any
+semver component is `Integer.MAX_SAFE_INTEGER || (2**53 - 1)`; higher value
+components are invalid (`9999999999999999.4.7.4` is likely invalid).
+
+If the `options.rtl` flag is set, then `coerce` will return the right-most
+coercible tuple that does not share an ending index with a longer coercible
+tuple.  For example, `1.2.3.4` will return `2.3.4` in rtl mode, not
+`4.0.0`.  `1.2.3/4` will return `4.0.0`, because the `4` is not a part of
+any other overlapping SemVer tuple.
+
+### Clean
+
+* `clean(version)`: Clean a string to be a valid semver if possible
+
+This will return a cleaned and trimmed semver version. If the provided version is not valid a null will be returned. This does not work for ranges. 
+
+ex.
+* `s.clean(' = v 2.1.5foo')`: `null`
+* `s.clean(' = v 2.1.5foo', { loose: true })`: `'2.1.5-foo'`
+* `s.clean(' = v 2.1.5-foo')`: `null`
+* `s.clean(' = v 2.1.5-foo', { loose: true })`: `'2.1.5-foo'`
+* `s.clean('=v2.1.5')`: `'2.1.5'`
+* `s.clean('  =v2.1.5')`: `2.1.5`
+* `s.clean('      2.1.5   ')`: `'2.1.5'`
+* `s.clean('~1.0.0')`: `null`

+ 174 - 0
node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver/bin/semver.js

@@ -0,0 +1,174 @@
+#!/usr/bin/env node
+// Standalone semver comparison program.
+// Exits successfully and prints matching version(s) if
+// any supplied version is valid and passes all tests.
+
+var argv = process.argv.slice(2)
+
+var versions = []
+
+var range = []
+
+var inc = null
+
+var version = require('../package.json').version
+
+var loose = false
+
+var includePrerelease = false
+
+var coerce = false
+
+var rtl = false
+
+var identifier
+
+var semver = require('../semver')
+
+var reverse = false
+
+var options = {}
+
+main()
+
+function main () {
+  if (!argv.length) return help()
+  while (argv.length) {
+    var a = argv.shift()
+    var indexOfEqualSign = a.indexOf('=')
+    if (indexOfEqualSign !== -1) {
+      a = a.slice(0, indexOfEqualSign)
+      argv.unshift(a.slice(indexOfEqualSign + 1))
+    }
+    switch (a) {
+      case '-rv': case '-rev': case '--rev': case '--reverse':
+        reverse = true
+        break
+      case '-l': case '--loose':
+        loose = true
+        break
+      case '-p': case '--include-prerelease':
+        includePrerelease = true
+        break
+      case '-v': case '--version':
+        versions.push(argv.shift())
+        break
+      case '-i': case '--inc': case '--increment':
+        switch (argv[0]) {
+          case 'major': case 'minor': case 'patch': case 'prerelease':
+          case 'premajor': case 'preminor': case 'prepatch':
+            inc = argv.shift()
+            break
+          default:
+            inc = 'patch'
+            break
+        }
+        break
+      case '--preid':
+        identifier = argv.shift()
+        break
+      case '-r': case '--range':
+        range.push(argv.shift())
+        break
+      case '-c': case '--coerce':
+        coerce = true
+        break
+      case '--rtl':
+        rtl = true
+        break
+      case '--ltr':
+        rtl = false
+        break
+      case '-h': case '--help': case '-?':
+        return help()
+      default:
+        versions.push(a)
+        break
+    }
+  }
+
+  var options = { loose: loose, includePrerelease: includePrerelease, rtl: rtl }
+
+  versions = versions.map(function (v) {
+    return coerce ? (semver.coerce(v, options) || { version: v }).version : v
+  }).filter(function (v) {
+    return semver.valid(v)
+  })
+  if (!versions.length) return fail()
+  if (inc && (versions.length !== 1 || range.length)) { return failInc() }
+
+  for (var i = 0, l = range.length; i < l; i++) {
+    versions = versions.filter(function (v) {
+      return semver.satisfies(v, range[i], options)
+    })
+    if (!versions.length) return fail()
+  }
+  return success(versions)
+}
+
+function failInc () {
+  console.error('--inc can only be used on a single version with no range')
+  fail()
+}
+
+function fail () { process.exit(1) }
+
+function success () {
+  var compare = reverse ? 'rcompare' : 'compare'
+  versions.sort(function (a, b) {
+    return semver[compare](a, b, options)
+  }).map(function (v) {
+    return semver.clean(v, options)
+  }).map(function (v) {
+    return inc ? semver.inc(v, inc, options, identifier) : v
+  }).forEach(function (v, i, _) { console.log(v) })
+}
+
+function help () {
+  console.log(['SemVer ' + version,
+    '',
+    'A JavaScript implementation of the https://semver.org/ specification',
+    'Copyright Isaac Z. Schlueter',
+    '',
+    'Usage: semver [options] <version> [<version> [...]]',
+    'Prints valid versions sorted by SemVer precedence',
+    '',
+    'Options:',
+    '-r --range <range>',
+    '        Print versions that match the specified range.',
+    '',
+    '-i --increment [<level>]',
+    '        Increment a version by the specified level.  Level can',
+    '        be one of: major, minor, patch, premajor, preminor,',
+    "        prepatch, or prerelease.  Default level is 'patch'.",
+    '        Only one version may be specified.',
+    '',
+    '--preid <identifier>',
+    '        Identifier to be used to prefix premajor, preminor,',
+    '        prepatch or prerelease version increments.',
+    '',
+    '-l --loose',
+    '        Interpret versions and ranges loosely',
+    '',
+    '-p --include-prerelease',
+    '        Always include prerelease versions in range matching',
+    '',
+    '-c --coerce',
+    '        Coerce a string into SemVer if possible',
+    '        (does not imply --loose)',
+    '',
+    '--rtl',
+    '        Coerce version strings right to left',
+    '',
+    '--ltr',
+    '        Coerce version strings left to right (default)',
+    '',
+    'Program exits successfully if any valid version satisfies',
+    'all supplied ranges, and prints all satisfying versions.',
+    '',
+    'If no satisfying versions are found, then exits failure.',
+    '',
+    'Versions are printed in ascending order, so supplying',
+    'multiple versions to the utility will just sort them.'
+  ].join('\n'))
+}

+ 38 - 0
node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver/package.json

@@ -0,0 +1,38 @@
+{
+  "name": "semver",
+  "version": "6.3.1",
+  "description": "The semantic version parser used by npm.",
+  "main": "semver.js",
+  "scripts": {
+    "test": "tap test/ --100 --timeout=30",
+    "lint": "echo linting disabled",
+    "postlint": "template-oss-check",
+    "template-oss-apply": "template-oss-apply --force",
+    "lintfix": "npm run lint -- --fix",
+    "snap": "tap test/ --100 --timeout=30",
+    "posttest": "npm run lint"
+  },
+  "devDependencies": {
+    "@npmcli/template-oss": "4.17.0",
+    "tap": "^12.7.0"
+  },
+  "license": "ISC",
+  "repository": {
+    "type": "git",
+    "url": "https://github.com/npm/node-semver.git"
+  },
+  "bin": {
+    "semver": "./bin/semver.js"
+  },
+  "files": [
+    "bin",
+    "range.bnf",
+    "semver.js"
+  ],
+  "author": "GitHub Inc.",
+  "templateOSS": {
+    "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
+    "content": "./scripts/template-oss",
+    "version": "4.17.0"
+  }
+}

+ 16 - 0
node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver/range.bnf

@@ -0,0 +1,16 @@
+range-set  ::= range ( logical-or range ) *
+logical-or ::= ( ' ' ) * '||' ( ' ' ) *
+range      ::= hyphen | simple ( ' ' simple ) * | ''
+hyphen     ::= partial ' - ' partial
+simple     ::= primitive | partial | tilde | caret
+primitive  ::= ( '<' | '>' | '>=' | '<=' | '=' ) partial
+partial    ::= xr ( '.' xr ( '.' xr qualifier ? )? )?
+xr         ::= 'x' | 'X' | '*' | nr
+nr         ::= '0' | [1-9] ( [0-9] ) *
+tilde      ::= '~' partial
+caret      ::= '^' partial
+qualifier  ::= ( '-' pre )? ( '+' build )?
+pre        ::= parts
+build      ::= parts
+parts      ::= part ( '.' part ) *
+part       ::= nr | [-0-9A-Za-z]+

+ 1643 - 0
node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver/semver.js

@@ -0,0 +1,1643 @@
+exports = module.exports = SemVer
+
+var debug
+/* istanbul ignore next */
+if (typeof process === 'object' &&
+    process.env &&
+    process.env.NODE_DEBUG &&
+    /\bsemver\b/i.test(process.env.NODE_DEBUG)) {
+  debug = function () {
+    var args = Array.prototype.slice.call(arguments, 0)
+    args.unshift('SEMVER')
+    console.log.apply(console, args)
+  }
+} else {
+  debug = function () {}
+}
+
+// Note: this is the semver.org version of the spec that it implements
+// Not necessarily the package version of this code.
+exports.SEMVER_SPEC_VERSION = '2.0.0'
+
+var MAX_LENGTH = 256
+var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||
+  /* istanbul ignore next */ 9007199254740991
+
+// Max safe segment length for coercion.
+var MAX_SAFE_COMPONENT_LENGTH = 16
+
+var MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6
+
+// The actual regexps go on exports.re
+var re = exports.re = []
+var safeRe = exports.safeRe = []
+var src = exports.src = []
+var t = exports.tokens = {}
+var R = 0
+
+function tok (n) {
+  t[n] = R++
+}
+
+var LETTERDASHNUMBER = '[a-zA-Z0-9-]'
+
+// Replace some greedy regex tokens to prevent regex dos issues. These regex are
+// used internally via the safeRe object since all inputs in this library get
+// normalized first to trim and collapse all extra whitespace. The original
+// regexes are exported for userland consumption and lower level usage. A
+// future breaking change could export the safer regex only with a note that
+// all input should have extra whitespace removed.
+var safeRegexReplacements = [
+  ['\\s', 1],
+  ['\\d', MAX_LENGTH],
+  [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],
+]
+
+function makeSafeRe (value) {
+  for (var i = 0; i < safeRegexReplacements.length; i++) {
+    var token = safeRegexReplacements[i][0]
+    var max = safeRegexReplacements[i][1]
+    value = value
+      .split(token + '*').join(token + '{0,' + max + '}')
+      .split(token + '+').join(token + '{1,' + max + '}')
+  }
+  return value
+}
+
+// The following Regular Expressions can be used for tokenizing,
+// validating, and parsing SemVer version strings.
+
+// ## Numeric Identifier
+// A single `0`, or a non-zero digit followed by zero or more digits.
+
+tok('NUMERICIDENTIFIER')
+src[t.NUMERICIDENTIFIER] = '0|[1-9]\\d*'
+tok('NUMERICIDENTIFIERLOOSE')
+src[t.NUMERICIDENTIFIERLOOSE] = '\\d+'
+
+// ## Non-numeric Identifier
+// Zero or more digits, followed by a letter or hyphen, and then zero or
+// more letters, digits, or hyphens.
+
+tok('NONNUMERICIDENTIFIER')
+src[t.NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-]' + LETTERDASHNUMBER + '*'
+
+// ## Main Version
+// Three dot-separated numeric identifiers.
+
+tok('MAINVERSION')
+src[t.MAINVERSION] = '(' + src[t.NUMERICIDENTIFIER] + ')\\.' +
+                   '(' + src[t.NUMERICIDENTIFIER] + ')\\.' +
+                   '(' + src[t.NUMERICIDENTIFIER] + ')'
+
+tok('MAINVERSIONLOOSE')
+src[t.MAINVERSIONLOOSE] = '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\.' +
+                        '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\.' +
+                        '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')'
+
+// ## Pre-release Version Identifier
+// A numeric identifier, or a non-numeric identifier.
+
+tok('PRERELEASEIDENTIFIER')
+src[t.PRERELEASEIDENTIFIER] = '(?:' + src[t.NUMERICIDENTIFIER] +
+                            '|' + src[t.NONNUMERICIDENTIFIER] + ')'
+
+tok('PRERELEASEIDENTIFIERLOOSE')
+src[t.PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[t.NUMERICIDENTIFIERLOOSE] +
+                                 '|' + src[t.NONNUMERICIDENTIFIER] + ')'
+
+// ## Pre-release Version
+// Hyphen, followed by one or more dot-separated pre-release version
+// identifiers.
+
+tok('PRERELEASE')
+src[t.PRERELEASE] = '(?:-(' + src[t.PRERELEASEIDENTIFIER] +
+                  '(?:\\.' + src[t.PRERELEASEIDENTIFIER] + ')*))'
+
+tok('PRERELEASELOOSE')
+src[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] +
+                       '(?:\\.' + src[t.PRERELEASEIDENTIFIERLOOSE] + ')*))'
+
+// ## Build Metadata Identifier
+// Any combination of digits, letters, or hyphens.
+
+tok('BUILDIDENTIFIER')
+src[t.BUILDIDENTIFIER] = LETTERDASHNUMBER + '+'
+
+// ## Build Metadata
+// Plus sign, followed by one or more period-separated build metadata
+// identifiers.
+
+tok('BUILD')
+src[t.BUILD] = '(?:\\+(' + src[t.BUILDIDENTIFIER] +
+             '(?:\\.' + src[t.BUILDIDENTIFIER] + ')*))'
+
+// ## Full Version String
+// A main version, followed optionally by a pre-release version and
+// build metadata.
+
+// Note that the only major, minor, patch, and pre-release sections of
+// the version string are capturing groups.  The build metadata is not a
+// capturing group, because it should not ever be used in version
+// comparison.
+
+tok('FULL')
+tok('FULLPLAIN')
+src[t.FULLPLAIN] = 'v?' + src[t.MAINVERSION] +
+                  src[t.PRERELEASE] + '?' +
+                  src[t.BUILD] + '?'
+
+src[t.FULL] = '^' + src[t.FULLPLAIN] + '$'
+
+// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.
+// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty
+// common in the npm registry.
+tok('LOOSEPLAIN')
+src[t.LOOSEPLAIN] = '[v=\\s]*' + src[t.MAINVERSIONLOOSE] +
+                  src[t.PRERELEASELOOSE] + '?' +
+                  src[t.BUILD] + '?'
+
+tok('LOOSE')
+src[t.LOOSE] = '^' + src[t.LOOSEPLAIN] + '$'
+
+tok('GTLT')
+src[t.GTLT] = '((?:<|>)?=?)'
+
+// Something like "2.*" or "1.2.x".
+// Note that "x.x" is a valid xRange identifer, meaning "any version"
+// Only the first item is strictly required.
+tok('XRANGEIDENTIFIERLOOSE')
+src[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + '|x|X|\\*'
+tok('XRANGEIDENTIFIER')
+src[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + '|x|X|\\*'
+
+tok('XRANGEPLAIN')
+src[t.XRANGEPLAIN] = '[v=\\s]*(' + src[t.XRANGEIDENTIFIER] + ')' +
+                   '(?:\\.(' + src[t.XRANGEIDENTIFIER] + ')' +
+                   '(?:\\.(' + src[t.XRANGEIDENTIFIER] + ')' +
+                   '(?:' + src[t.PRERELEASE] + ')?' +
+                   src[t.BUILD] + '?' +
+                   ')?)?'
+
+tok('XRANGEPLAINLOOSE')
+src[t.XRANGEPLAINLOOSE] = '[v=\\s]*(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +
+                        '(?:\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +
+                        '(?:\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +
+                        '(?:' + src[t.PRERELEASELOOSE] + ')?' +
+                        src[t.BUILD] + '?' +
+                        ')?)?'
+
+tok('XRANGE')
+src[t.XRANGE] = '^' + src[t.GTLT] + '\\s*' + src[t.XRANGEPLAIN] + '$'
+tok('XRANGELOOSE')
+src[t.XRANGELOOSE] = '^' + src[t.GTLT] + '\\s*' + src[t.XRANGEPLAINLOOSE] + '$'
+
+// Coercion.
+// Extract anything that could conceivably be a part of a valid semver
+tok('COERCE')
+src[t.COERCE] = '(^|[^\\d])' +
+              '(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +
+              '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +
+              '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +
+              '(?:$|[^\\d])'
+tok('COERCERTL')
+re[t.COERCERTL] = new RegExp(src[t.COERCE], 'g')
+safeRe[t.COERCERTL] = new RegExp(makeSafeRe(src[t.COERCE]), 'g')
+
+// Tilde ranges.
+// Meaning is "reasonably at or greater than"
+tok('LONETILDE')
+src[t.LONETILDE] = '(?:~>?)'
+
+tok('TILDETRIM')
+src[t.TILDETRIM] = '(\\s*)' + src[t.LONETILDE] + '\\s+'
+re[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g')
+safeRe[t.TILDETRIM] = new RegExp(makeSafeRe(src[t.TILDETRIM]), 'g')
+var tildeTrimReplace = '$1~'
+
+tok('TILDE')
+src[t.TILDE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAIN] + '$'
+tok('TILDELOOSE')
+src[t.TILDELOOSE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + '$'
+
+// Caret ranges.
+// Meaning is "at least and backwards compatible with"
+tok('LONECARET')
+src[t.LONECARET] = '(?:\\^)'
+
+tok('CARETTRIM')
+src[t.CARETTRIM] = '(\\s*)' + src[t.LONECARET] + '\\s+'
+re[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g')
+safeRe[t.CARETTRIM] = new RegExp(makeSafeRe(src[t.CARETTRIM]), 'g')
+var caretTrimReplace = '$1^'
+
+tok('CARET')
+src[t.CARET] = '^' + src[t.LONECARET] + src[t.XRANGEPLAIN] + '$'
+tok('CARETLOOSE')
+src[t.CARETLOOSE] = '^' + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + '$'
+
+// A simple gt/lt/eq thing, or just "" to indicate "any version"
+tok('COMPARATORLOOSE')
+src[t.COMPARATORLOOSE] = '^' + src[t.GTLT] + '\\s*(' + src[t.LOOSEPLAIN] + ')$|^$'
+tok('COMPARATOR')
+src[t.COMPARATOR] = '^' + src[t.GTLT] + '\\s*(' + src[t.FULLPLAIN] + ')$|^$'
+
+// An expression to strip any whitespace between the gtlt and the thing
+// it modifies, so that `> 1.2.3` ==> `>1.2.3`
+tok('COMPARATORTRIM')
+src[t.COMPARATORTRIM] = '(\\s*)' + src[t.GTLT] +
+                      '\\s*(' + src[t.LOOSEPLAIN] + '|' + src[t.XRANGEPLAIN] + ')'
+
+// this one has to use the /g flag
+re[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g')
+safeRe[t.COMPARATORTRIM] = new RegExp(makeSafeRe(src[t.COMPARATORTRIM]), 'g')
+var comparatorTrimReplace = '$1$2$3'
+
+// Something like `1.2.3 - 1.2.4`
+// Note that these all use the loose form, because they'll be
+// checked against either the strict or loose comparator form
+// later.
+tok('HYPHENRANGE')
+src[t.HYPHENRANGE] = '^\\s*(' + src[t.XRANGEPLAIN] + ')' +
+                   '\\s+-\\s+' +
+                   '(' + src[t.XRANGEPLAIN] + ')' +
+                   '\\s*$'
+
+tok('HYPHENRANGELOOSE')
+src[t.HYPHENRANGELOOSE] = '^\\s*(' + src[t.XRANGEPLAINLOOSE] + ')' +
+                        '\\s+-\\s+' +
+                        '(' + src[t.XRANGEPLAINLOOSE] + ')' +
+                        '\\s*$'
+
+// Star ranges basically just allow anything at all.
+tok('STAR')
+src[t.STAR] = '(<|>)?=?\\s*\\*'
+
+// Compile to actual regexp objects.
+// All are flag-free, unless they were created above with a flag.
+for (var i = 0; i < R; i++) {
+  debug(i, src[i])
+  if (!re[i]) {
+    re[i] = new RegExp(src[i])
+
+    // Replace all greedy whitespace to prevent regex dos issues. These regex are
+    // used internally via the safeRe object since all inputs in this library get
+    // normalized first to trim and collapse all extra whitespace. The original
+    // regexes are exported for userland consumption and lower level usage. A
+    // future breaking change could export the safer regex only with a note that
+    // all input should have extra whitespace removed.
+    safeRe[i] = new RegExp(makeSafeRe(src[i]))
+  }
+}
+
+exports.parse = parse
+function parse (version, options) {
+  if (!options || typeof options !== 'object') {
+    options = {
+      loose: !!options,
+      includePrerelease: false
+    }
+  }
+
+  if (version instanceof SemVer) {
+    return version
+  }
+
+  if (typeof version !== 'string') {
+    return null
+  }
+
+  if (version.length > MAX_LENGTH) {
+    return null
+  }
+
+  var r = options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]
+  if (!r.test(version)) {
+    return null
+  }
+
+  try {
+    return new SemVer(version, options)
+  } catch (er) {
+    return null
+  }
+}
+
+exports.valid = valid
+function valid (version, options) {
+  var v = parse(version, options)
+  return v ? v.version : null
+}
+
+exports.clean = clean
+function clean (version, options) {
+  var s = parse(version.trim().replace(/^[=v]+/, ''), options)
+  return s ? s.version : null
+}
+
+exports.SemVer = SemVer
+
+function SemVer (version, options) {
+  if (!options || typeof options !== 'object') {
+    options = {
+      loose: !!options,
+      includePrerelease: false
+    }
+  }
+  if (version instanceof SemVer) {
+    if (version.loose === options.loose) {
+      return version
+    } else {
+      version = version.version
+    }
+  } else if (typeof version !== 'string') {
+    throw new TypeError('Invalid Version: ' + version)
+  }
+
+  if (version.length > MAX_LENGTH) {
+    throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')
+  }
+
+  if (!(this instanceof SemVer)) {
+    return new SemVer(version, options)
+  }
+
+  debug('SemVer', version, options)
+  this.options = options
+  this.loose = !!options.loose
+
+  var m = version.trim().match(options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL])
+
+  if (!m) {
+    throw new TypeError('Invalid Version: ' + version)
+  }
+
+  this.raw = version
+
+  // these are actually numbers
+  this.major = +m[1]
+  this.minor = +m[2]
+  this.patch = +m[3]
+
+  if (this.major > MAX_SAFE_INTEGER || this.major < 0) {
+    throw new TypeError('Invalid major version')
+  }
+
+  if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {
+    throw new TypeError('Invalid minor version')
+  }
+
+  if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {
+    throw new TypeError('Invalid patch version')
+  }
+
+  // numberify any prerelease numeric ids
+  if (!m[4]) {
+    this.prerelease = []
+  } else {
+    this.prerelease = m[4].split('.').map(function (id) {
+      if (/^[0-9]+$/.test(id)) {
+        var num = +id
+        if (num >= 0 && num < MAX_SAFE_INTEGER) {
+          return num
+        }
+      }
+      return id
+    })
+  }
+
+  this.build = m[5] ? m[5].split('.') : []
+  this.format()
+}
+
+SemVer.prototype.format = function () {
+  this.version = this.major + '.' + this.minor + '.' + this.patch
+  if (this.prerelease.length) {
+    this.version += '-' + this.prerelease.join('.')
+  }
+  return this.version
+}
+
+SemVer.prototype.toString = function () {
+  return this.version
+}
+
+SemVer.prototype.compare = function (other) {
+  debug('SemVer.compare', this.version, this.options, other)
+  if (!(other instanceof SemVer)) {
+    other = new SemVer(other, this.options)
+  }
+
+  return this.compareMain(other) || this.comparePre(other)
+}
+
+SemVer.prototype.compareMain = function (other) {
+  if (!(other instanceof SemVer)) {
+    other = new SemVer(other, this.options)
+  }
+
+  return compareIdentifiers(this.major, other.major) ||
+         compareIdentifiers(this.minor, other.minor) ||
+         compareIdentifiers(this.patch, other.patch)
+}
+
+SemVer.prototype.comparePre = function (other) {
+  if (!(other instanceof SemVer)) {
+    other = new SemVer(other, this.options)
+  }
+
+  // NOT having a prerelease is > having one
+  if (this.prerelease.length && !other.prerelease.length) {
+    return -1
+  } else if (!this.prerelease.length && other.prerelease.length) {
+    return 1
+  } else if (!this.prerelease.length && !other.prerelease.length) {
+    return 0
+  }
+
+  var i = 0
+  do {
+    var a = this.prerelease[i]
+    var b = other.prerelease[i]
+    debug('prerelease compare', i, a, b)
+    if (a === undefined && b === undefined) {
+      return 0
+    } else if (b === undefined) {
+      return 1
+    } else if (a === undefined) {
+      return -1
+    } else if (a === b) {
+      continue
+    } else {
+      return compareIdentifiers(a, b)
+    }
+  } while (++i)
+}
+
+SemVer.prototype.compareBuild = function (other) {
+  if (!(other instanceof SemVer)) {
+    other = new SemVer(other, this.options)
+  }
+
+  var i = 0
+  do {
+    var a = this.build[i]
+    var b = other.build[i]
+    debug('prerelease compare', i, a, b)
+    if (a === undefined && b === undefined) {
+      return 0
+    } else if (b === undefined) {
+      return 1
+    } else if (a === undefined) {
+      return -1
+    } else if (a === b) {
+      continue
+    } else {
+      return compareIdentifiers(a, b)
+    }
+  } while (++i)
+}
+
+// preminor will bump the version up to the next minor release, and immediately
+// down to pre-release. premajor and prepatch work the same way.
+SemVer.prototype.inc = function (release, identifier) {
+  switch (release) {
+    case 'premajor':
+      this.prerelease.length = 0
+      this.patch = 0
+      this.minor = 0
+      this.major++
+      this.inc('pre', identifier)
+      break
+    case 'preminor':
+      this.prerelease.length = 0
+      this.patch = 0
+      this.minor++
+      this.inc('pre', identifier)
+      break
+    case 'prepatch':
+      // If this is already a prerelease, it will bump to the next version
+      // drop any prereleases that might already exist, since they are not
+      // relevant at this point.
+      this.prerelease.length = 0
+      this.inc('patch', identifier)
+      this.inc('pre', identifier)
+      break
+    // If the input is a non-prerelease version, this acts the same as
+    // prepatch.
+    case 'prerelease':
+      if (this.prerelease.length === 0) {
+        this.inc('patch', identifier)
+      }
+      this.inc('pre', identifier)
+      break
+
+    case 'major':
+      // If this is a pre-major version, bump up to the same major version.
+      // Otherwise increment major.
+      // 1.0.0-5 bumps to 1.0.0
+      // 1.1.0 bumps to 2.0.0
+      if (this.minor !== 0 ||
+          this.patch !== 0 ||
+          this.prerelease.length === 0) {
+        this.major++
+      }
+      this.minor = 0
+      this.patch = 0
+      this.prerelease = []
+      break
+    case 'minor':
+      // If this is a pre-minor version, bump up to the same minor version.
+      // Otherwise increment minor.
+      // 1.2.0-5 bumps to 1.2.0
+      // 1.2.1 bumps to 1.3.0
+      if (this.patch !== 0 || this.prerelease.length === 0) {
+        this.minor++
+      }
+      this.patch = 0
+      this.prerelease = []
+      break
+    case 'patch':
+      // If this is not a pre-release version, it will increment the patch.
+      // If it is a pre-release it will bump up to the same patch version.
+      // 1.2.0-5 patches to 1.2.0
+      // 1.2.0 patches to 1.2.1
+      if (this.prerelease.length === 0) {
+        this.patch++
+      }
+      this.prerelease = []
+      break
+    // This probably shouldn't be used publicly.
+    // 1.0.0 "pre" would become 1.0.0-0 which is the wrong direction.
+    case 'pre':
+      if (this.prerelease.length === 0) {
+        this.prerelease = [0]
+      } else {
+        var i = this.prerelease.length
+        while (--i >= 0) {
+          if (typeof this.prerelease[i] === 'number') {
+            this.prerelease[i]++
+            i = -2
+          }
+        }
+        if (i === -1) {
+          // didn't increment anything
+          this.prerelease.push(0)
+        }
+      }
+      if (identifier) {
+        // 1.2.0-beta.1 bumps to 1.2.0-beta.2,
+        // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0
+        if (this.prerelease[0] === identifier) {
+          if (isNaN(this.prerelease[1])) {
+            this.prerelease = [identifier, 0]
+          }
+        } else {
+          this.prerelease = [identifier, 0]
+        }
+      }
+      break
+
+    default:
+      throw new Error('invalid increment argument: ' + release)
+  }
+  this.format()
+  this.raw = this.version
+  return this
+}
+
+exports.inc = inc
+function inc (version, release, loose, identifier) {
+  if (typeof (loose) === 'string') {
+    identifier = loose
+    loose = undefined
+  }
+
+  try {
+    return new SemVer(version, loose).inc(release, identifier).version
+  } catch (er) {
+    return null
+  }
+}
+
+exports.diff = diff
+function diff (version1, version2) {
+  if (eq(version1, version2)) {
+    return null
+  } else {
+    var v1 = parse(version1)
+    var v2 = parse(version2)
+    var prefix = ''
+    if (v1.prerelease.length || v2.prerelease.length) {
+      prefix = 'pre'
+      var defaultResult = 'prerelease'
+    }
+    for (var key in v1) {
+      if (key === 'major' || key === 'minor' || key === 'patch') {
+        if (v1[key] !== v2[key]) {
+          return prefix + key
+        }
+      }
+    }
+    return defaultResult // may be undefined
+  }
+}
+
+exports.compareIdentifiers = compareIdentifiers
+
+var numeric = /^[0-9]+$/
+function compareIdentifiers (a, b) {
+  var anum = numeric.test(a)
+  var bnum = numeric.test(b)
+
+  if (anum && bnum) {
+    a = +a
+    b = +b
+  }
+
+  return a === b ? 0
+    : (anum && !bnum) ? -1
+    : (bnum && !anum) ? 1
+    : a < b ? -1
+    : 1
+}
+
+exports.rcompareIdentifiers = rcompareIdentifiers
+function rcompareIdentifiers (a, b) {
+  return compareIdentifiers(b, a)
+}
+
+exports.major = major
+function major (a, loose) {
+  return new SemVer(a, loose).major
+}
+
+exports.minor = minor
+function minor (a, loose) {
+  return new SemVer(a, loose).minor
+}
+
+exports.patch = patch
+function patch (a, loose) {
+  return new SemVer(a, loose).patch
+}
+
+exports.compare = compare
+function compare (a, b, loose) {
+  return new SemVer(a, loose).compare(new SemVer(b, loose))
+}
+
+exports.compareLoose = compareLoose
+function compareLoose (a, b) {
+  return compare(a, b, true)
+}
+
+exports.compareBuild = compareBuild
+function compareBuild (a, b, loose) {
+  var versionA = new SemVer(a, loose)
+  var versionB = new SemVer(b, loose)
+  return versionA.compare(versionB) || versionA.compareBuild(versionB)
+}
+
+exports.rcompare = rcompare
+function rcompare (a, b, loose) {
+  return compare(b, a, loose)
+}
+
+exports.sort = sort
+function sort (list, loose) {
+  return list.sort(function (a, b) {
+    return exports.compareBuild(a, b, loose)
+  })
+}
+
+exports.rsort = rsort
+function rsort (list, loose) {
+  return list.sort(function (a, b) {
+    return exports.compareBuild(b, a, loose)
+  })
+}
+
+exports.gt = gt
+function gt (a, b, loose) {
+  return compare(a, b, loose) > 0
+}
+
+exports.lt = lt
+function lt (a, b, loose) {
+  return compare(a, b, loose) < 0
+}
+
+exports.eq = eq
+function eq (a, b, loose) {
+  return compare(a, b, loose) === 0
+}
+
+exports.neq = neq
+function neq (a, b, loose) {
+  return compare(a, b, loose) !== 0
+}
+
+exports.gte = gte
+function gte (a, b, loose) {
+  return compare(a, b, loose) >= 0
+}
+
+exports.lte = lte
+function lte (a, b, loose) {
+  return compare(a, b, loose) <= 0
+}
+
+exports.cmp = cmp
+function cmp (a, op, b, loose) {
+  switch (op) {
+    case '===':
+      if (typeof a === 'object')
+        a = a.version
+      if (typeof b === 'object')
+        b = b.version
+      return a === b
+
+    case '!==':
+      if (typeof a === 'object')
+        a = a.version
+      if (typeof b === 'object')
+        b = b.version
+      return a !== b
+
+    case '':
+    case '=':
+    case '==':
+      return eq(a, b, loose)
+
+    case '!=':
+      return neq(a, b, loose)
+
+    case '>':
+      return gt(a, b, loose)
+
+    case '>=':
+      return gte(a, b, loose)
+
+    case '<':
+      return lt(a, b, loose)
+
+    case '<=':
+      return lte(a, b, loose)
+
+    default:
+      throw new TypeError('Invalid operator: ' + op)
+  }
+}
+
+exports.Comparator = Comparator
+function Comparator (comp, options) {
+  if (!options || typeof options !== 'object') {
+    options = {
+      loose: !!options,
+      includePrerelease: false
+    }
+  }
+
+  if (comp instanceof Comparator) {
+    if (comp.loose === !!options.loose) {
+      return comp
+    } else {
+      comp = comp.value
+    }
+  }
+
+  if (!(this instanceof Comparator)) {
+    return new Comparator(comp, options)
+  }
+
+  comp = comp.trim().split(/\s+/).join(' ')
+  debug('comparator', comp, options)
+  this.options = options
+  this.loose = !!options.loose
+  this.parse(comp)
+
+  if (this.semver === ANY) {
+    this.value = ''
+  } else {
+    this.value = this.operator + this.semver.version
+  }
+
+  debug('comp', this)
+}
+
+var ANY = {}
+Comparator.prototype.parse = function (comp) {
+  var r = this.options.loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]
+  var m = comp.match(r)
+
+  if (!m) {
+    throw new TypeError('Invalid comparator: ' + comp)
+  }
+
+  this.operator = m[1] !== undefined ? m[1] : ''
+  if (this.operator === '=') {
+    this.operator = ''
+  }
+
+  // if it literally is just '>' or '' then allow anything.
+  if (!m[2]) {
+    this.semver = ANY
+  } else {
+    this.semver = new SemVer(m[2], this.options.loose)
+  }
+}
+
+Comparator.prototype.toString = function () {
+  return this.value
+}
+
+Comparator.prototype.test = function (version) {
+  debug('Comparator.test', version, this.options.loose)
+
+  if (this.semver === ANY || version === ANY) {
+    return true
+  }
+
+  if (typeof version === 'string') {
+    try {
+      version = new SemVer(version, this.options)
+    } catch (er) {
+      return false
+    }
+  }
+
+  return cmp(version, this.operator, this.semver, this.options)
+}
+
+Comparator.prototype.intersects = function (comp, options) {
+  if (!(comp instanceof Comparator)) {
+    throw new TypeError('a Comparator is required')
+  }
+
+  if (!options || typeof options !== 'object') {
+    options = {
+      loose: !!options,
+      includePrerelease: false
+    }
+  }
+
+  var rangeTmp
+
+  if (this.operator === '') {
+    if (this.value === '') {
+      return true
+    }
+    rangeTmp = new Range(comp.value, options)
+    return satisfies(this.value, rangeTmp, options)
+  } else if (comp.operator === '') {
+    if (comp.value === '') {
+      return true
+    }
+    rangeTmp = new Range(this.value, options)
+    return satisfies(comp.semver, rangeTmp, options)
+  }
+
+  var sameDirectionIncreasing =
+    (this.operator === '>=' || this.operator === '>') &&
+    (comp.operator === '>=' || comp.operator === '>')
+  var sameDirectionDecreasing =
+    (this.operator === '<=' || this.operator === '<') &&
+    (comp.operator === '<=' || comp.operator === '<')
+  var sameSemVer = this.semver.version === comp.semver.version
+  var differentDirectionsInclusive =
+    (this.operator === '>=' || this.operator === '<=') &&
+    (comp.operator === '>=' || comp.operator === '<=')
+  var oppositeDirectionsLessThan =
+    cmp(this.semver, '<', comp.semver, options) &&
+    ((this.operator === '>=' || this.operator === '>') &&
+    (comp.operator === '<=' || comp.operator === '<'))
+  var oppositeDirectionsGreaterThan =
+    cmp(this.semver, '>', comp.semver, options) &&
+    ((this.operator === '<=' || this.operator === '<') &&
+    (comp.operator === '>=' || comp.operator === '>'))
+
+  return sameDirectionIncreasing || sameDirectionDecreasing ||
+    (sameSemVer && differentDirectionsInclusive) ||
+    oppositeDirectionsLessThan || oppositeDirectionsGreaterThan
+}
+
+exports.Range = Range
+function Range (range, options) {
+  if (!options || typeof options !== 'object') {
+    options = {
+      loose: !!options,
+      includePrerelease: false
+    }
+  }
+
+  if (range instanceof Range) {
+    if (range.loose === !!options.loose &&
+        range.includePrerelease === !!options.includePrerelease) {
+      return range
+    } else {
+      return new Range(range.raw, options)
+    }
+  }
+
+  if (range instanceof Comparator) {
+    return new Range(range.value, options)
+  }
+
+  if (!(this instanceof Range)) {
+    return new Range(range, options)
+  }
+
+  this.options = options
+  this.loose = !!options.loose
+  this.includePrerelease = !!options.includePrerelease
+
+  // First reduce all whitespace as much as possible so we do not have to rely
+  // on potentially slow regexes like \s*. This is then stored and used for
+  // future error messages as well.
+  this.raw = range
+    .trim()
+    .split(/\s+/)
+    .join(' ')
+
+  // First, split based on boolean or ||
+  this.set = this.raw.split('||').map(function (range) {
+    return this.parseRange(range.trim())
+  }, this).filter(function (c) {
+    // throw out any that are not relevant for whatever reason
+    return c.length
+  })
+
+  if (!this.set.length) {
+    throw new TypeError('Invalid SemVer Range: ' + this.raw)
+  }
+
+  this.format()
+}
+
+Range.prototype.format = function () {
+  this.range = this.set.map(function (comps) {
+    return comps.join(' ').trim()
+  }).join('||').trim()
+  return this.range
+}
+
+Range.prototype.toString = function () {
+  return this.range
+}
+
+Range.prototype.parseRange = function (range) {
+  var loose = this.options.loose
+  // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`
+  var hr = loose ? safeRe[t.HYPHENRANGELOOSE] : safeRe[t.HYPHENRANGE]
+  range = range.replace(hr, hyphenReplace)
+  debug('hyphen replace', range)
+  // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`
+  range = range.replace(safeRe[t.COMPARATORTRIM], comparatorTrimReplace)
+  debug('comparator trim', range, safeRe[t.COMPARATORTRIM])
+
+  // `~ 1.2.3` => `~1.2.3`
+  range = range.replace(safeRe[t.TILDETRIM], tildeTrimReplace)
+
+  // `^ 1.2.3` => `^1.2.3`
+  range = range.replace(safeRe[t.CARETTRIM], caretTrimReplace)
+
+  // normalize spaces
+  range = range.split(/\s+/).join(' ')
+
+  // At this point, the range is completely trimmed and
+  // ready to be split into comparators.
+
+  var compRe = loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]
+  var set = range.split(' ').map(function (comp) {
+    return parseComparator(comp, this.options)
+  }, this).join(' ').split(/\s+/)
+  if (this.options.loose) {
+    // in loose mode, throw out any that are not valid comparators
+    set = set.filter(function (comp) {
+      return !!comp.match(compRe)
+    })
+  }
+  set = set.map(function (comp) {
+    return new Comparator(comp, this.options)
+  }, this)
+
+  return set
+}
+
+Range.prototype.intersects = function (range, options) {
+  if (!(range instanceof Range)) {
+    throw new TypeError('a Range is required')
+  }
+
+  return this.set.some(function (thisComparators) {
+    return (
+      isSatisfiable(thisComparators, options) &&
+      range.set.some(function (rangeComparators) {
+        return (
+          isSatisfiable(rangeComparators, options) &&
+          thisComparators.every(function (thisComparator) {
+            return rangeComparators.every(function (rangeComparator) {
+              return thisComparator.intersects(rangeComparator, options)
+            })
+          })
+        )
+      })
+    )
+  })
+}
+
+// take a set of comparators and determine whether there
+// exists a version which can satisfy it
+function isSatisfiable (comparators, options) {
+  var result = true
+  var remainingComparators = comparators.slice()
+  var testComparator = remainingComparators.pop()
+
+  while (result && remainingComparators.length) {
+    result = remainingComparators.every(function (otherComparator) {
+      return testComparator.intersects(otherComparator, options)
+    })
+
+    testComparator = remainingComparators.pop()
+  }
+
+  return result
+}
+
+// Mostly just for testing and legacy API reasons
+exports.toComparators = toComparators
+function toComparators (range, options) {
+  return new Range(range, options).set.map(function (comp) {
+    return comp.map(function (c) {
+      return c.value
+    }).join(' ').trim().split(' ')
+  })
+}
+
+// comprised of xranges, tildes, stars, and gtlt's at this point.
+// already replaced the hyphen ranges
+// turn into a set of JUST comparators.
+function parseComparator (comp, options) {
+  debug('comp', comp, options)
+  comp = replaceCarets(comp, options)
+  debug('caret', comp)
+  comp = replaceTildes(comp, options)
+  debug('tildes', comp)
+  comp = replaceXRanges(comp, options)
+  debug('xrange', comp)
+  comp = replaceStars(comp, options)
+  debug('stars', comp)
+  return comp
+}
+
+function isX (id) {
+  return !id || id.toLowerCase() === 'x' || id === '*'
+}
+
+// ~, ~> --> * (any, kinda silly)
+// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0
+// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0
+// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0
+// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0
+// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0
+function replaceTildes (comp, options) {
+  return comp.trim().split(/\s+/).map(function (comp) {
+    return replaceTilde(comp, options)
+  }).join(' ')
+}
+
+function replaceTilde (comp, options) {
+  var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE]
+  return comp.replace(r, function (_, M, m, p, pr) {
+    debug('tilde', comp, _, M, m, p, pr)
+    var ret
+
+    if (isX(M)) {
+      ret = ''
+    } else if (isX(m)) {
+      ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'
+    } else if (isX(p)) {
+      // ~1.2 == >=1.2.0 <1.3.0
+      ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'
+    } else if (pr) {
+      debug('replaceTilde pr', pr)
+      ret = '>=' + M + '.' + m + '.' + p + '-' + pr +
+            ' <' + M + '.' + (+m + 1) + '.0'
+    } else {
+      // ~1.2.3 == >=1.2.3 <1.3.0
+      ret = '>=' + M + '.' + m + '.' + p +
+            ' <' + M + '.' + (+m + 1) + '.0'
+    }
+
+    debug('tilde return', ret)
+    return ret
+  })
+}
+
+// ^ --> * (any, kinda silly)
+// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0
+// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0
+// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0
+// ^1.2.3 --> >=1.2.3 <2.0.0
+// ^1.2.0 --> >=1.2.0 <2.0.0
+function replaceCarets (comp, options) {
+  return comp.trim().split(/\s+/).map(function (comp) {
+    return replaceCaret(comp, options)
+  }).join(' ')
+}
+
+function replaceCaret (comp, options) {
+  debug('caret', comp, options)
+  var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET]
+  return comp.replace(r, function (_, M, m, p, pr) {
+    debug('caret', comp, _, M, m, p, pr)
+    var ret
+
+    if (isX(M)) {
+      ret = ''
+    } else if (isX(m)) {
+      ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'
+    } else if (isX(p)) {
+      if (M === '0') {
+        ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'
+      } else {
+        ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'
+      }
+    } else if (pr) {
+      debug('replaceCaret pr', pr)
+      if (M === '0') {
+        if (m === '0') {
+          ret = '>=' + M + '.' + m + '.' + p + '-' + pr +
+                ' <' + M + '.' + m + '.' + (+p + 1)
+        } else {
+          ret = '>=' + M + '.' + m + '.' + p + '-' + pr +
+                ' <' + M + '.' + (+m + 1) + '.0'
+        }
+      } else {
+        ret = '>=' + M + '.' + m + '.' + p + '-' + pr +
+              ' <' + (+M + 1) + '.0.0'
+      }
+    } else {
+      debug('no pr')
+      if (M === '0') {
+        if (m === '0') {
+          ret = '>=' + M + '.' + m + '.' + p +
+                ' <' + M + '.' + m + '.' + (+p + 1)
+        } else {
+          ret = '>=' + M + '.' + m + '.' + p +
+                ' <' + M + '.' + (+m + 1) + '.0'
+        }
+      } else {
+        ret = '>=' + M + '.' + m + '.' + p +
+              ' <' + (+M + 1) + '.0.0'
+      }
+    }
+
+    debug('caret return', ret)
+    return ret
+  })
+}
+
+function replaceXRanges (comp, options) {
+  debug('replaceXRanges', comp, options)
+  return comp.split(/\s+/).map(function (comp) {
+    return replaceXRange(comp, options)
+  }).join(' ')
+}
+
+function replaceXRange (comp, options) {
+  comp = comp.trim()
+  var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE]
+  return comp.replace(r, function (ret, gtlt, M, m, p, pr) {
+    debug('xRange', comp, ret, gtlt, M, m, p, pr)
+    var xM = isX(M)
+    var xm = xM || isX(m)
+    var xp = xm || isX(p)
+    var anyX = xp
+
+    if (gtlt === '=' && anyX) {
+      gtlt = ''
+    }
+
+    // if we're including prereleases in the match, then we need
+    // to fix this to -0, the lowest possible prerelease value
+    pr = options.includePrerelease ? '-0' : ''
+
+    if (xM) {
+      if (gtlt === '>' || gtlt === '<') {
+        // nothing is allowed
+        ret = '<0.0.0-0'
+      } else {
+        // nothing is forbidden
+        ret = '*'
+      }
+    } else if (gtlt && anyX) {
+      // we know patch is an x, because we have any x at all.
+      // replace X with 0
+      if (xm) {
+        m = 0
+      }
+      p = 0
+
+      if (gtlt === '>') {
+        // >1 => >=2.0.0
+        // >1.2 => >=1.3.0
+        // >1.2.3 => >= 1.2.4
+        gtlt = '>='
+        if (xm) {
+          M = +M + 1
+          m = 0
+          p = 0
+        } else {
+          m = +m + 1
+          p = 0
+        }
+      } else if (gtlt === '<=') {
+        // <=0.7.x is actually <0.8.0, since any 0.7.x should
+        // pass.  Similarly, <=7.x is actually <8.0.0, etc.
+        gtlt = '<'
+        if (xm) {
+          M = +M + 1
+        } else {
+          m = +m + 1
+        }
+      }
+
+      ret = gtlt + M + '.' + m + '.' + p + pr
+    } else if (xm) {
+      ret = '>=' + M + '.0.0' + pr + ' <' + (+M + 1) + '.0.0' + pr
+    } else if (xp) {
+      ret = '>=' + M + '.' + m + '.0' + pr +
+        ' <' + M + '.' + (+m + 1) + '.0' + pr
+    }
+
+    debug('xRange return', ret)
+
+    return ret
+  })
+}
+
+// Because * is AND-ed with everything else in the comparator,
+// and '' means "any version", just remove the *s entirely.
+function replaceStars (comp, options) {
+  debug('replaceStars', comp, options)
+  // Looseness is ignored here.  star is always as loose as it gets!
+  return comp.trim().replace(safeRe[t.STAR], '')
+}
+
+// This function is passed to string.replace(re[t.HYPHENRANGE])
+// M, m, patch, prerelease, build
+// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5
+// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do
+// 1.2 - 3.4 => >=1.2.0 <3.5.0
+function hyphenReplace ($0,
+  from, fM, fm, fp, fpr, fb,
+  to, tM, tm, tp, tpr, tb) {
+  if (isX(fM)) {
+    from = ''
+  } else if (isX(fm)) {
+    from = '>=' + fM + '.0.0'
+  } else if (isX(fp)) {
+    from = '>=' + fM + '.' + fm + '.0'
+  } else {
+    from = '>=' + from
+  }
+
+  if (isX(tM)) {
+    to = ''
+  } else if (isX(tm)) {
+    to = '<' + (+tM + 1) + '.0.0'
+  } else if (isX(tp)) {
+    to = '<' + tM + '.' + (+tm + 1) + '.0'
+  } else if (tpr) {
+    to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr
+  } else {
+    to = '<=' + to
+  }
+
+  return (from + ' ' + to).trim()
+}
+
+// if ANY of the sets match ALL of its comparators, then pass
+Range.prototype.test = function (version) {
+  if (!version) {
+    return false
+  }
+
+  if (typeof version === 'string') {
+    try {
+      version = new SemVer(version, this.options)
+    } catch (er) {
+      return false
+    }
+  }
+
+  for (var i = 0; i < this.set.length; i++) {
+    if (testSet(this.set[i], version, this.options)) {
+      return true
+    }
+  }
+  return false
+}
+
+function testSet (set, version, options) {
+  for (var i = 0; i < set.length; i++) {
+    if (!set[i].test(version)) {
+      return false
+    }
+  }
+
+  if (version.prerelease.length && !options.includePrerelease) {
+    // Find the set of versions that are allowed to have prereleases
+    // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0
+    // That should allow `1.2.3-pr.2` to pass.
+    // However, `1.2.4-alpha.notready` should NOT be allowed,
+    // even though it's within the range set by the comparators.
+    for (i = 0; i < set.length; i++) {
+      debug(set[i].semver)
+      if (set[i].semver === ANY) {
+        continue
+      }
+
+      if (set[i].semver.prerelease.length > 0) {
+        var allowed = set[i].semver
+        if (allowed.major === version.major &&
+            allowed.minor === version.minor &&
+            allowed.patch === version.patch) {
+          return true
+        }
+      }
+    }
+
+    // Version has a -pre, but it's not one of the ones we like.
+    return false
+  }
+
+  return true
+}
+
+exports.satisfies = satisfies
+function satisfies (version, range, options) {
+  try {
+    range = new Range(range, options)
+  } catch (er) {
+    return false
+  }
+  return range.test(version)
+}
+
+exports.maxSatisfying = maxSatisfying
+function maxSatisfying (versions, range, options) {
+  var max = null
+  var maxSV = null
+  try {
+    var rangeObj = new Range(range, options)
+  } catch (er) {
+    return null
+  }
+  versions.forEach(function (v) {
+    if (rangeObj.test(v)) {
+      // satisfies(v, range, options)
+      if (!max || maxSV.compare(v) === -1) {
+        // compare(max, v, true)
+        max = v
+        maxSV = new SemVer(max, options)
+      }
+    }
+  })
+  return max
+}
+
+exports.minSatisfying = minSatisfying
+function minSatisfying (versions, range, options) {
+  var min = null
+  var minSV = null
+  try {
+    var rangeObj = new Range(range, options)
+  } catch (er) {
+    return null
+  }
+  versions.forEach(function (v) {
+    if (rangeObj.test(v)) {
+      // satisfies(v, range, options)
+      if (!min || minSV.compare(v) === 1) {
+        // compare(min, v, true)
+        min = v
+        minSV = new SemVer(min, options)
+      }
+    }
+  })
+  return min
+}
+
+exports.minVersion = minVersion
+function minVersion (range, loose) {
+  range = new Range(range, loose)
+
+  var minver = new SemVer('0.0.0')
+  if (range.test(minver)) {
+    return minver
+  }
+
+  minver = new SemVer('0.0.0-0')
+  if (range.test(minver)) {
+    return minver
+  }
+
+  minver = null
+  for (var i = 0; i < range.set.length; ++i) {
+    var comparators = range.set[i]
+
+    comparators.forEach(function (comparator) {
+      // Clone to avoid manipulating the comparator's semver object.
+      var compver = new SemVer(comparator.semver.version)
+      switch (comparator.operator) {
+        case '>':
+          if (compver.prerelease.length === 0) {
+            compver.patch++
+          } else {
+            compver.prerelease.push(0)
+          }
+          compver.raw = compver.format()
+          /* fallthrough */
+        case '':
+        case '>=':
+          if (!minver || gt(minver, compver)) {
+            minver = compver
+          }
+          break
+        case '<':
+        case '<=':
+          /* Ignore maximum versions */
+          break
+        /* istanbul ignore next */
+        default:
+          throw new Error('Unexpected operation: ' + comparator.operator)
+      }
+    })
+  }
+
+  if (minver && range.test(minver)) {
+    return minver
+  }
+
+  return null
+}
+
+exports.validRange = validRange
+function validRange (range, options) {
+  try {
+    // Return '*' instead of '' so that truthiness works.
+    // This will throw if it's invalid anyway
+    return new Range(range, options).range || '*'
+  } catch (er) {
+    return null
+  }
+}
+
+// Determine if version is less than all the versions possible in the range
+exports.ltr = ltr
+function ltr (version, range, options) {
+  return outside(version, range, '<', options)
+}
+
+// Determine if version is greater than all the versions possible in the range.
+exports.gtr = gtr
+function gtr (version, range, options) {
+  return outside(version, range, '>', options)
+}
+
+exports.outside = outside
+function outside (version, range, hilo, options) {
+  version = new SemVer(version, options)
+  range = new Range(range, options)
+
+  var gtfn, ltefn, ltfn, comp, ecomp
+  switch (hilo) {
+    case '>':
+      gtfn = gt
+      ltefn = lte
+      ltfn = lt
+      comp = '>'
+      ecomp = '>='
+      break
+    case '<':
+      gtfn = lt
+      ltefn = gte
+      ltfn = gt
+      comp = '<'
+      ecomp = '<='
+      break
+    default:
+      throw new TypeError('Must provide a hilo val of "<" or ">"')
+  }
+
+  // If it satisifes the range it is not outside
+  if (satisfies(version, range, options)) {
+    return false
+  }
+
+  // From now on, variable terms are as if we're in "gtr" mode.
+  // but note that everything is flipped for the "ltr" function.
+
+  for (var i = 0; i < range.set.length; ++i) {
+    var comparators = range.set[i]
+
+    var high = null
+    var low = null
+
+    comparators.forEach(function (comparator) {
+      if (comparator.semver === ANY) {
+        comparator = new Comparator('>=0.0.0')
+      }
+      high = high || comparator
+      low = low || comparator
+      if (gtfn(comparator.semver, high.semver, options)) {
+        high = comparator
+      } else if (ltfn(comparator.semver, low.semver, options)) {
+        low = comparator
+      }
+    })
+
+    // If the edge version comparator has a operator then our version
+    // isn't outside it
+    if (high.operator === comp || high.operator === ecomp) {
+      return false
+    }
+
+    // If the lowest version comparator has an operator and our version
+    // is less than it then it isn't higher than the range
+    if ((!low.operator || low.operator === comp) &&
+        ltefn(version, low.semver)) {
+      return false
+    } else if (low.operator === ecomp && ltfn(version, low.semver)) {
+      return false
+    }
+  }
+  return true
+}
+
+exports.prerelease = prerelease
+function prerelease (version, options) {
+  var parsed = parse(version, options)
+  return (parsed && parsed.prerelease.length) ? parsed.prerelease : null
+}
+
+exports.intersects = intersects
+function intersects (r1, r2, options) {
+  r1 = new Range(r1, options)
+  r2 = new Range(r2, options)
+  return r1.intersects(r2)
+}
+
+exports.coerce = coerce
+function coerce (version, options) {
+  if (version instanceof SemVer) {
+    return version
+  }
+
+  if (typeof version === 'number') {
+    version = String(version)
+  }
+
+  if (typeof version !== 'string') {
+    return null
+  }
+
+  options = options || {}
+
+  var match = null
+  if (!options.rtl) {
+    match = version.match(safeRe[t.COERCE])
+  } else {
+    // Find the right-most coercible string that does not share
+    // a terminus with a more left-ward coercible string.
+    // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'
+    //
+    // Walk through the string checking with a /g regexp
+    // Manually set the index so as to pick up overlapping matches.
+    // Stop when we get a match that ends at the string end, since no
+    // coercible string can be more right-ward without the same terminus.
+    var next
+    while ((next = safeRe[t.COERCERTL].exec(version)) &&
+      (!match || match.index + match[0].length !== version.length)
+    ) {
+      if (!match ||
+          next.index + next[0].length !== match.index + match[0].length) {
+        match = next
+      }
+      safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length
+    }
+    // leave it in a clean state
+    safeRe[t.COERCERTL].lastIndex = -1
+  }
+
+  if (match === null) {
+    return null
+  }
+
+  return parse(match[2] +
+    '.' + (match[3] || '0') +
+    '.' + (match[4] || '0'), options)
+}

+ 36 - 0
node_modules/@babel/helper-create-regexp-features-plugin/package.json

@@ -0,0 +1,36 @@
+{
+  "name": "@babel/helper-create-regexp-features-plugin",
+  "version": "7.27.1",
+  "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.27.1",
+    "regexpu-core": "^6.2.0",
+    "semver": "^6.3.1"
+  },
+  "peerDependencies": {
+    "@babel/core": "^7.0.0"
+  },
+  "devDependencies": {
+    "@babel/core": "^7.27.1",
+    "@babel/helper-plugin-test-runner": "^7.27.1"
+  },
+  "engines": {
+    "node": ">=6.9.0"
+  },
+  "type": "commonjs"
+}

+ 22 - 0
node_modules/@babel/helper-define-polyfill-provider/LICENSE

@@ -0,0 +1,22 @@
+MIT License
+
+Copyright (c) 2014-present Nicolò Ribaudo 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.

+ 15 - 0
node_modules/@babel/helper-define-polyfill-provider/README.md

@@ -0,0 +1,15 @@
+# @babel/helper-define-polyfill-provider
+
+## Install
+
+Using npm:
+
+```sh
+npm install --save-dev @babel/helper-define-polyfill-provider
+```
+
+or using yarn:
+
+```sh
+yarn add @babel/helper-define-polyfill-provider --dev
+```

+ 835 - 0
node_modules/@babel/helper-define-polyfill-provider/esm/index.browser.mjs

@@ -0,0 +1,835 @@
+import { declare } from '@babel/helper-plugin-utils';
+import _getTargets, { prettifyTargets, getInclusionReasons, isRequired } from '@babel/helper-compilation-targets';
+import * as _babel from '@babel/core';
+
+const {
+  types: t$1,
+  template: template
+} = _babel.default || _babel;
+function intersection(a, b) {
+  const result = new Set();
+  a.forEach(v => b.has(v) && result.add(v));
+  return result;
+}
+function has$1(object, key) {
+  return Object.prototype.hasOwnProperty.call(object, key);
+}
+function resolve$1(path, resolved = new Set()) {
+  if (resolved.has(path)) return;
+  resolved.add(path);
+  if (path.isVariableDeclarator()) {
+    if (path.get("id").isIdentifier()) {
+      return resolve$1(path.get("init"), resolved);
+    }
+  } else if (path.isReferencedIdentifier()) {
+    const binding = path.scope.getBinding(path.node.name);
+    if (!binding) return path;
+    if (!binding.constant) return;
+    return resolve$1(binding.path, resolved);
+  }
+  return path;
+}
+function resolveId(path) {
+  if (path.isIdentifier() && !path.scope.hasBinding(path.node.name, /* noGlobals */true)) {
+    return path.node.name;
+  }
+  const resolved = resolve$1(path);
+  if (resolved != null && resolved.isIdentifier()) {
+    return resolved.node.name;
+  }
+}
+function resolveKey(path, computed = false) {
+  const {
+    scope
+  } = path;
+  if (path.isStringLiteral()) return path.node.value;
+  const isIdentifier = path.isIdentifier();
+  if (isIdentifier && !(computed || path.parent.computed)) {
+    return path.node.name;
+  }
+  if (computed && path.isMemberExpression() && path.get("object").isIdentifier({
+    name: "Symbol"
+  }) && !scope.hasBinding("Symbol", /* noGlobals */true)) {
+    const sym = resolveKey(path.get("property"), path.node.computed);
+    if (sym) return "Symbol." + sym;
+  }
+  if (isIdentifier ? scope.hasBinding(path.node.name, /* noGlobals */true) : path.isPure()) {
+    const {
+      value
+    } = path.evaluate();
+    if (typeof value === "string") return value;
+  }
+}
+function resolveSource(obj) {
+  if (obj.isMemberExpression() && obj.get("property").isIdentifier({
+    name: "prototype"
+  })) {
+    const id = resolveId(obj.get("object"));
+    if (id) {
+      return {
+        id,
+        placement: "prototype"
+      };
+    }
+    return {
+      id: null,
+      placement: null
+    };
+  }
+  const id = resolveId(obj);
+  if (id) {
+    return {
+      id,
+      placement: "static"
+    };
+  }
+  const path = resolve$1(obj);
+  switch (path == null ? void 0 : path.type) {
+    case "RegExpLiteral":
+      return {
+        id: "RegExp",
+        placement: "prototype"
+      };
+    case "FunctionExpression":
+      return {
+        id: "Function",
+        placement: "prototype"
+      };
+    case "StringLiteral":
+      return {
+        id: "String",
+        placement: "prototype"
+      };
+    case "NumberLiteral":
+      return {
+        id: "Number",
+        placement: "prototype"
+      };
+    case "BooleanLiteral":
+      return {
+        id: "Boolean",
+        placement: "prototype"
+      };
+    case "ObjectExpression":
+      return {
+        id: "Object",
+        placement: "prototype"
+      };
+    case "ArrayExpression":
+      return {
+        id: "Array",
+        placement: "prototype"
+      };
+  }
+  return {
+    id: null,
+    placement: null
+  };
+}
+function getImportSource({
+  node
+}) {
+  if (node.specifiers.length === 0) return node.source.value;
+}
+function getRequireSource({
+  node
+}) {
+  if (!t$1.isExpressionStatement(node)) return;
+  const {
+    expression
+  } = node;
+  if (t$1.isCallExpression(expression) && t$1.isIdentifier(expression.callee) && expression.callee.name === "require" && expression.arguments.length === 1 && t$1.isStringLiteral(expression.arguments[0])) {
+    return expression.arguments[0].value;
+  }
+}
+function hoist(node) {
+  // @ts-expect-error
+  node._blockHoist = 3;
+  return node;
+}
+function createUtilsGetter(cache) {
+  return path => {
+    const prog = path.findParent(p => p.isProgram());
+    return {
+      injectGlobalImport(url, moduleName) {
+        cache.storeAnonymous(prog, url, moduleName, (isScript, source) => {
+          return isScript ? template.statement.ast`require(${source})` : t$1.importDeclaration([], source);
+        });
+      },
+      injectNamedImport(url, name, hint = name, moduleName) {
+        return cache.storeNamed(prog, url, name, moduleName, (isScript, source, name) => {
+          const id = prog.scope.generateUidIdentifier(hint);
+          return {
+            node: isScript ? hoist(template.statement.ast`
+                  var ${id} = require(${source}).${name}
+                `) : t$1.importDeclaration([t$1.importSpecifier(id, name)], source),
+            name: id.name
+          };
+        });
+      },
+      injectDefaultImport(url, hint = url, moduleName) {
+        return cache.storeNamed(prog, url, "default", moduleName, (isScript, source) => {
+          const id = prog.scope.generateUidIdentifier(hint);
+          return {
+            node: isScript ? hoist(template.statement.ast`var ${id} = require(${source})`) : t$1.importDeclaration([t$1.importDefaultSpecifier(id)], source),
+            name: id.name
+          };
+        });
+      }
+    };
+  };
+}
+
+const {
+  types: t
+} = _babel.default || _babel;
+class ImportsCachedInjector {
+  constructor(resolver, getPreferredIndex) {
+    this._imports = new WeakMap();
+    this._anonymousImports = new WeakMap();
+    this._lastImports = new WeakMap();
+    this._resolver = resolver;
+    this._getPreferredIndex = getPreferredIndex;
+  }
+  storeAnonymous(programPath, url, moduleName, getVal) {
+    const key = this._normalizeKey(programPath, url);
+    const imports = this._ensure(this._anonymousImports, programPath, Set);
+    if (imports.has(key)) return;
+    const node = getVal(programPath.node.sourceType === "script", t.stringLiteral(this._resolver(url)));
+    imports.add(key);
+    this._injectImport(programPath, node, moduleName);
+  }
+  storeNamed(programPath, url, name, moduleName, getVal) {
+    const key = this._normalizeKey(programPath, url, name);
+    const imports = this._ensure(this._imports, programPath, Map);
+    if (!imports.has(key)) {
+      const {
+        node,
+        name: id
+      } = getVal(programPath.node.sourceType === "script", t.stringLiteral(this._resolver(url)), t.identifier(name));
+      imports.set(key, id);
+      this._injectImport(programPath, node, moduleName);
+    }
+    return t.identifier(imports.get(key));
+  }
+  _injectImport(programPath, node, moduleName) {
+    var _this$_lastImports$ge;
+    const newIndex = this._getPreferredIndex(moduleName);
+    const lastImports = (_this$_lastImports$ge = this._lastImports.get(programPath)) != null ? _this$_lastImports$ge : [];
+    const isPathStillValid = path => path.node &&
+    // Sometimes the AST is modified and the "last import"
+    // we have has been replaced
+    path.parent === programPath.node && path.container === programPath.node.body;
+    let last;
+    if (newIndex === Infinity) {
+      // Fast path: we can always just insert at the end if newIndex is `Infinity`
+      if (lastImports.length > 0) {
+        last = lastImports[lastImports.length - 1].path;
+        if (!isPathStillValid(last)) last = undefined;
+      }
+    } else {
+      for (const [i, data] of lastImports.entries()) {
+        const {
+          path,
+          index
+        } = data;
+        if (isPathStillValid(path)) {
+          if (newIndex < index) {
+            const [newPath] = path.insertBefore(node);
+            lastImports.splice(i, 0, {
+              path: newPath,
+              index: newIndex
+            });
+            return;
+          }
+          last = path;
+        }
+      }
+    }
+    if (last) {
+      const [newPath] = last.insertAfter(node);
+      lastImports.push({
+        path: newPath,
+        index: newIndex
+      });
+    } else {
+      const [newPath] = programPath.unshiftContainer("body", node);
+      this._lastImports.set(programPath, [{
+        path: newPath,
+        index: newIndex
+      }]);
+    }
+  }
+  _ensure(map, programPath, Collection) {
+    let collection = map.get(programPath);
+    if (!collection) {
+      collection = new Collection();
+      map.set(programPath, collection);
+    }
+    return collection;
+  }
+  _normalizeKey(programPath, url, name = "") {
+    const {
+      sourceType
+    } = programPath.node;
+
+    // If we rely on the imported binding (the "name" parameter), we also need to cache
+    // based on the sourceType. This is because the module transforms change the names
+    // of the import variables.
+    return `${name && sourceType}::${url}::${name}`;
+  }
+}
+
+const presetEnvSilentDebugHeader = "#__secret_key__@babel/preset-env__don't_log_debug_header_and_resolved_targets";
+function stringifyTargetsMultiline(targets) {
+  return JSON.stringify(prettifyTargets(targets), null, 2);
+}
+
+function patternToRegExp(pattern) {
+  if (pattern instanceof RegExp) return pattern;
+  try {
+    return new RegExp(`^${pattern}$`);
+  } catch {
+    return null;
+  }
+}
+function buildUnusedError(label, unused) {
+  if (!unused.length) return "";
+  return `  - The following "${label}" patterns didn't match any polyfill:\n` + unused.map(original => `    ${String(original)}\n`).join("");
+}
+function buldDuplicatesError(duplicates) {
+  if (!duplicates.size) return "";
+  return `  - The following polyfills were matched both by "include" and "exclude" patterns:\n` + Array.from(duplicates, name => `    ${name}\n`).join("");
+}
+function validateIncludeExclude(provider, polyfills, includePatterns, excludePatterns) {
+  let current;
+  const filter = pattern => {
+    const regexp = patternToRegExp(pattern);
+    if (!regexp) return false;
+    let matched = false;
+    for (const polyfill of polyfills.keys()) {
+      if (regexp.test(polyfill)) {
+        matched = true;
+        current.add(polyfill);
+      }
+    }
+    return !matched;
+  };
+
+  // prettier-ignore
+  const include = current = new Set();
+  const unusedInclude = Array.from(includePatterns).filter(filter);
+
+  // prettier-ignore
+  const exclude = current = new Set();
+  const unusedExclude = Array.from(excludePatterns).filter(filter);
+  const duplicates = intersection(include, exclude);
+  if (duplicates.size > 0 || unusedInclude.length > 0 || unusedExclude.length > 0) {
+    throw new Error(`Error while validating the "${provider}" provider options:\n` + buildUnusedError("include", unusedInclude) + buildUnusedError("exclude", unusedExclude) + buldDuplicatesError(duplicates));
+  }
+  return {
+    include,
+    exclude
+  };
+}
+function applyMissingDependenciesDefaults(options, babelApi) {
+  const {
+    missingDependencies = {}
+  } = options;
+  if (missingDependencies === false) return false;
+  const caller = babelApi.caller(caller => caller == null ? void 0 : caller.name);
+  const {
+    log = "deferred",
+    inject = caller === "rollup-plugin-babel" ? "throw" : "import",
+    all = false
+  } = missingDependencies;
+  return {
+    log,
+    inject,
+    all
+  };
+}
+
+function isRemoved(path) {
+  if (path.removed) return true;
+  if (!path.parentPath) return false;
+  if (path.listKey) {
+    var _path$parentPath$node;
+    if (!((_path$parentPath$node = path.parentPath.node) != null && (_path$parentPath$node = _path$parentPath$node[path.listKey]) != null && _path$parentPath$node.includes(path.node))) return true;
+  } else {
+    if (path.parentPath.node[path.key] !== path.node) return true;
+  }
+  return isRemoved(path.parentPath);
+}
+var usage = (callProvider => {
+  function property(object, key, placement, path) {
+    return callProvider({
+      kind: "property",
+      object,
+      key,
+      placement
+    }, path);
+  }
+  function handleReferencedIdentifier(path) {
+    const {
+      node: {
+        name
+      },
+      scope
+    } = path;
+    if (scope.getBindingIdentifier(name)) return;
+    callProvider({
+      kind: "global",
+      name
+    }, path);
+  }
+  function analyzeMemberExpression(path) {
+    const key = resolveKey(path.get("property"), path.node.computed);
+    return {
+      key,
+      handleAsMemberExpression: !!key && key !== "prototype"
+    };
+  }
+  return {
+    // Symbol(), new Promise
+    ReferencedIdentifier(path) {
+      const {
+        parentPath
+      } = path;
+      if (parentPath.isMemberExpression({
+        object: path.node
+      }) && analyzeMemberExpression(parentPath).handleAsMemberExpression) {
+        return;
+      }
+      handleReferencedIdentifier(path);
+    },
+    "MemberExpression|OptionalMemberExpression"(path) {
+      const {
+        key,
+        handleAsMemberExpression
+      } = analyzeMemberExpression(path);
+      if (!handleAsMemberExpression) return;
+      const object = path.get("object");
+      let objectIsGlobalIdentifier = object.isIdentifier();
+      if (objectIsGlobalIdentifier) {
+        const binding = object.scope.getBinding(object.node.name);
+        if (binding) {
+          if (binding.path.isImportNamespaceSpecifier()) return;
+          objectIsGlobalIdentifier = false;
+        }
+      }
+      const source = resolveSource(object);
+      let skipObject = property(source.id, key, source.placement, path);
+      skipObject || (skipObject = !objectIsGlobalIdentifier || path.shouldSkip || object.shouldSkip || isRemoved(object));
+      if (!skipObject) handleReferencedIdentifier(object);
+    },
+    ObjectPattern(path) {
+      const {
+        parentPath,
+        parent
+      } = path;
+      let obj;
+
+      // const { keys, values } = Object
+      if (parentPath.isVariableDeclarator()) {
+        obj = parentPath.get("init");
+        // ({ keys, values } = Object)
+      } else if (parentPath.isAssignmentExpression()) {
+        obj = parentPath.get("right");
+        // !function ({ keys, values }) {...} (Object)
+        // resolution does not work after properties transform :-(
+      } else if (parentPath.isFunction()) {
+        const grand = parentPath.parentPath;
+        if (grand.isCallExpression() || grand.isNewExpression()) {
+          if (grand.node.callee === parent) {
+            obj = grand.get("arguments")[path.key];
+          }
+        }
+      }
+      let id = null;
+      let placement = null;
+      if (obj) ({
+        id,
+        placement
+      } = resolveSource(obj));
+      for (const prop of path.get("properties")) {
+        if (prop.isObjectProperty()) {
+          const key = resolveKey(prop.get("key"));
+          if (key) property(id, key, placement, prop);
+        }
+      }
+    },
+    BinaryExpression(path) {
+      if (path.node.operator !== "in") return;
+      const source = resolveSource(path.get("right"));
+      const key = resolveKey(path.get("left"), true);
+      if (!key) return;
+      callProvider({
+        kind: "in",
+        object: source.id,
+        key,
+        placement: source.placement
+      }, path);
+    }
+  };
+});
+
+var entry = (callProvider => ({
+  ImportDeclaration(path) {
+    const source = getImportSource(path);
+    if (!source) return;
+    callProvider({
+      kind: "import",
+      source
+    }, path);
+  },
+  Program(path) {
+    path.get("body").forEach(bodyPath => {
+      const source = getRequireSource(bodyPath);
+      if (!source) return;
+      callProvider({
+        kind: "import",
+        source
+      }, bodyPath);
+    });
+  }
+}));
+
+function resolve(dirname, moduleName, absoluteImports) {
+  if (absoluteImports === false) return moduleName;
+  throw new Error(`"absoluteImports" is not supported in bundles prepared for the browser.`);
+}
+
+// eslint-disable-next-line @typescript-eslint/no-unused-vars
+function has(basedir, name) {
+  return true;
+}
+
+// eslint-disable-next-line @typescript-eslint/no-unused-vars
+function logMissing(missingDeps) {}
+
+// eslint-disable-next-line @typescript-eslint/no-unused-vars
+function laterLogMissing(missingDeps) {}
+
+const PossibleGlobalObjects = new Set(["global", "globalThis", "self", "window"]);
+function createMetaResolver(polyfills) {
+  const {
+    static: staticP,
+    instance: instanceP,
+    global: globalP
+  } = polyfills;
+  return meta => {
+    if (meta.kind === "global" && globalP && has$1(globalP, meta.name)) {
+      return {
+        kind: "global",
+        desc: globalP[meta.name],
+        name: meta.name
+      };
+    }
+    if (meta.kind === "property" || meta.kind === "in") {
+      const {
+        placement,
+        object,
+        key
+      } = meta;
+      if (object && placement === "static") {
+        if (globalP && PossibleGlobalObjects.has(object) && has$1(globalP, key)) {
+          return {
+            kind: "global",
+            desc: globalP[key],
+            name: key
+          };
+        }
+        if (staticP && has$1(staticP, object) && has$1(staticP[object], key)) {
+          return {
+            kind: "static",
+            desc: staticP[object][key],
+            name: `${object}$${key}`
+          };
+        }
+      }
+      if (instanceP && has$1(instanceP, key)) {
+        return {
+          kind: "instance",
+          desc: instanceP[key],
+          name: `${key}`
+        };
+      }
+    }
+  };
+}
+
+const getTargets = _getTargets.default || _getTargets;
+function resolveOptions(options, babelApi) {
+  const {
+    method,
+    targets: targetsOption,
+    ignoreBrowserslistConfig,
+    configPath,
+    debug,
+    shouldInjectPolyfill,
+    absoluteImports,
+    ...providerOptions
+  } = options;
+  if (isEmpty(options)) {
+    throw new Error(`\
+This plugin requires options, for example:
+    {
+      "plugins": [
+        ["<plugin name>", { method: "usage-pure" }]
+      ]
+    }
+
+See more options at https://github.com/babel/babel-polyfills/blob/main/docs/usage.md`);
+  }
+  let methodName;
+  if (method === "usage-global") methodName = "usageGlobal";else if (method === "entry-global") methodName = "entryGlobal";else if (method === "usage-pure") methodName = "usagePure";else if (typeof method !== "string") {
+    throw new Error(".method must be a string");
+  } else {
+    throw new Error(`.method must be one of "entry-global", "usage-global"` + ` or "usage-pure" (received ${JSON.stringify(method)})`);
+  }
+  if (typeof shouldInjectPolyfill === "function") {
+    if (options.include || options.exclude) {
+      throw new Error(`.include and .exclude are not supported when using the` + ` .shouldInjectPolyfill function.`);
+    }
+  } else if (shouldInjectPolyfill != null) {
+    throw new Error(`.shouldInjectPolyfill must be a function, or undefined` + ` (received ${JSON.stringify(shouldInjectPolyfill)})`);
+  }
+  if (absoluteImports != null && typeof absoluteImports !== "boolean" && typeof absoluteImports !== "string") {
+    throw new Error(`.absoluteImports must be a boolean, a string, or undefined` + ` (received ${JSON.stringify(absoluteImports)})`);
+  }
+  let targets;
+  if (
+  // If any browserslist-related option is specified, fallback to the old
+  // behavior of not using the targets specified in the top-level options.
+  targetsOption || configPath || ignoreBrowserslistConfig) {
+    const targetsObj = typeof targetsOption === "string" || Array.isArray(targetsOption) ? {
+      browsers: targetsOption
+    } : targetsOption;
+    targets = getTargets(targetsObj, {
+      ignoreBrowserslistConfig,
+      configPath
+    });
+  } else {
+    targets = babelApi.targets();
+  }
+  return {
+    method,
+    methodName,
+    targets,
+    absoluteImports: absoluteImports != null ? absoluteImports : false,
+    shouldInjectPolyfill,
+    debug: !!debug,
+    providerOptions: providerOptions
+  };
+}
+function instantiateProvider(factory, options, missingDependencies, dirname, debugLog, babelApi) {
+  const {
+    method,
+    methodName,
+    targets,
+    debug,
+    shouldInjectPolyfill,
+    providerOptions,
+    absoluteImports
+  } = resolveOptions(options, babelApi);
+
+  // eslint-disable-next-line prefer-const
+  let include, exclude;
+  let polyfillsSupport;
+  let polyfillsNames;
+  let filterPolyfills;
+  const getUtils = createUtilsGetter(new ImportsCachedInjector(moduleName => resolve(dirname, moduleName, absoluteImports), name => {
+    var _polyfillsNames$get, _polyfillsNames;
+    return (_polyfillsNames$get = (_polyfillsNames = polyfillsNames) == null ? void 0 : _polyfillsNames.get(name)) != null ? _polyfillsNames$get : Infinity;
+  }));
+  const depsCache = new Map();
+  const api = {
+    babel: babelApi,
+    getUtils,
+    method: options.method,
+    targets,
+    createMetaResolver,
+    shouldInjectPolyfill(name) {
+      if (polyfillsNames === undefined) {
+        throw new Error(`Internal error in the ${factory.name} provider: ` + `shouldInjectPolyfill() can't be called during initialization.`);
+      }
+      if (!polyfillsNames.has(name)) {
+        console.warn(`Internal error in the ${providerName} provider: ` + `unknown polyfill "${name}".`);
+      }
+      if (filterPolyfills && !filterPolyfills(name)) return false;
+      let shouldInject = isRequired(name, targets, {
+        compatData: polyfillsSupport,
+        includes: include,
+        excludes: exclude
+      });
+      if (shouldInjectPolyfill) {
+        shouldInject = shouldInjectPolyfill(name, shouldInject);
+        if (typeof shouldInject !== "boolean") {
+          throw new Error(`.shouldInjectPolyfill must return a boolean.`);
+        }
+      }
+      return shouldInject;
+    },
+    debug(name) {
+      var _debugLog, _debugLog$polyfillsSu;
+      debugLog().found = true;
+      if (!debug || !name) return;
+      if (debugLog().polyfills.has(providerName)) return;
+      debugLog().polyfills.add(name);
+      (_debugLog$polyfillsSu = (_debugLog = debugLog()).polyfillsSupport) != null ? _debugLog$polyfillsSu : _debugLog.polyfillsSupport = polyfillsSupport;
+    },
+    assertDependency(name, version = "*") {
+      if (missingDependencies === false) return;
+      if (absoluteImports) {
+        // If absoluteImports is not false, we will try resolving
+        // the dependency and throw if it's not possible. We can
+        // skip the check here.
+        return;
+      }
+      const dep = version === "*" ? name : `${name}@^${version}`;
+      const found = missingDependencies.all ? false : mapGetOr(depsCache, `${name} :: ${dirname}`, () => has());
+      if (!found) {
+        debugLog().missingDeps.add(dep);
+      }
+    }
+  };
+  const provider = factory(api, providerOptions, dirname);
+  const providerName = provider.name || factory.name;
+  if (typeof provider[methodName] !== "function") {
+    throw new Error(`The "${providerName}" provider doesn't support the "${method}" polyfilling method.`);
+  }
+  if (Array.isArray(provider.polyfills)) {
+    polyfillsNames = new Map(provider.polyfills.map((name, index) => [name, index]));
+    filterPolyfills = provider.filterPolyfills;
+  } else if (provider.polyfills) {
+    polyfillsNames = new Map(Object.keys(provider.polyfills).map((name, index) => [name, index]));
+    polyfillsSupport = provider.polyfills;
+    filterPolyfills = provider.filterPolyfills;
+  } else {
+    polyfillsNames = new Map();
+  }
+  ({
+    include,
+    exclude
+  } = validateIncludeExclude(providerName, polyfillsNames, providerOptions.include || [], providerOptions.exclude || []));
+  let callProvider;
+  if (methodName === "usageGlobal") {
+    callProvider = (payload, path) => {
+      var _ref;
+      const utils = getUtils(path);
+      return (_ref = provider[methodName](payload, utils, path)) != null ? _ref : false;
+    };
+  } else {
+    callProvider = (payload, path) => {
+      const utils = getUtils(path);
+      provider[methodName](payload, utils, path);
+      return false;
+    };
+  }
+  return {
+    debug,
+    method,
+    targets,
+    provider,
+    providerName,
+    callProvider
+  };
+}
+function definePolyfillProvider(factory) {
+  return declare((babelApi, options, dirname) => {
+    babelApi.assertVersion("^7.0.0 || ^8.0.0-alpha.0");
+    const {
+      traverse
+    } = babelApi;
+    let debugLog;
+    const missingDependencies = applyMissingDependenciesDefaults(options, babelApi);
+    const {
+      debug,
+      method,
+      targets,
+      provider,
+      providerName,
+      callProvider
+    } = instantiateProvider(factory, options, missingDependencies, dirname, () => debugLog, babelApi);
+    const createVisitor = method === "entry-global" ? entry : usage;
+    const visitor = provider.visitor ? traverse.visitors.merge([createVisitor(callProvider), provider.visitor]) : createVisitor(callProvider);
+    if (debug && debug !== presetEnvSilentDebugHeader) {
+      console.log(`${providerName}: \`DEBUG\` option`);
+      console.log(`\nUsing targets: ${stringifyTargetsMultiline(targets)}`);
+      console.log(`\nUsing polyfills with \`${method}\` method:`);
+    }
+    const {
+      runtimeName
+    } = provider;
+    return {
+      name: "inject-polyfills",
+      visitor,
+      pre(file) {
+        var _provider$pre;
+        if (runtimeName) {
+          if (file.get("runtimeHelpersModuleName") && file.get("runtimeHelpersModuleName") !== runtimeName) {
+            console.warn(`Two different polyfill providers` + ` (${file.get("runtimeHelpersModuleProvider")}` + ` and ${providerName}) are trying to define two` + ` conflicting @babel/runtime alternatives:` + ` ${file.get("runtimeHelpersModuleName")} and ${runtimeName}.` + ` The second one will be ignored.`);
+          } else {
+            file.set("runtimeHelpersModuleName", runtimeName);
+            file.set("runtimeHelpersModuleProvider", providerName);
+          }
+        }
+        debugLog = {
+          polyfills: new Set(),
+          polyfillsSupport: undefined,
+          found: false,
+          providers: new Set(),
+          missingDeps: new Set()
+        };
+        (_provider$pre = provider.pre) == null ? void 0 : _provider$pre.apply(this, arguments);
+      },
+      post() {
+        var _provider$post;
+        (_provider$post = provider.post) == null ? void 0 : _provider$post.apply(this, arguments);
+        if (missingDependencies !== false) {
+          if (missingDependencies.log === "per-file") {
+            logMissing(debugLog.missingDeps);
+          } else {
+            laterLogMissing(debugLog.missingDeps);
+          }
+        }
+        if (!debug) return;
+        if (this.filename) console.log(`\n[${this.filename}]`);
+        if (debugLog.polyfills.size === 0) {
+          console.log(method === "entry-global" ? debugLog.found ? `Based on your targets, the ${providerName} polyfill did not add any polyfill.` : `The entry point for the ${providerName} polyfill has not been found.` : `Based on your code and targets, the ${providerName} polyfill did not add any polyfill.`);
+          return;
+        }
+        if (method === "entry-global") {
+          console.log(`The ${providerName} polyfill entry has been replaced with ` + `the following polyfills:`);
+        } else {
+          console.log(`The ${providerName} polyfill added the following polyfills:`);
+        }
+        for (const name of debugLog.polyfills) {
+          var _debugLog$polyfillsSu2;
+          if ((_debugLog$polyfillsSu2 = debugLog.polyfillsSupport) != null && _debugLog$polyfillsSu2[name]) {
+            const filteredTargets = getInclusionReasons(name, targets, debugLog.polyfillsSupport);
+            const formattedTargets = JSON.stringify(filteredTargets).replace(/,/g, ", ").replace(/^\{"/, '{ "').replace(/"\}$/, '" }');
+            console.log(`  ${name} ${formattedTargets}`);
+          } else {
+            console.log(`  ${name}`);
+          }
+        }
+      }
+    };
+  });
+}
+function mapGetOr(map, key, getDefault) {
+  let val = map.get(key);
+  if (val === undefined) {
+    val = getDefault();
+    map.set(key, val);
+  }
+  return val;
+}
+function isEmpty(obj) {
+  return Object.keys(obj).length === 0;
+}
+
+export default definePolyfillProvider;
+//# sourceMappingURL=index.browser.mjs.map

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
node_modules/@babel/helper-define-polyfill-provider/esm/index.browser.mjs.map


+ 879 - 0
node_modules/@babel/helper-define-polyfill-provider/esm/index.node.mjs

@@ -0,0 +1,879 @@
+import { declare } from '@babel/helper-plugin-utils';
+import _getTargets, { prettifyTargets, getInclusionReasons, isRequired } from '@babel/helper-compilation-targets';
+import * as _babel from '@babel/core';
+import path from 'path';
+import debounce from 'lodash.debounce';
+import requireResolve from 'resolve';
+import { createRequire } from 'module';
+
+const {
+  types: t$1,
+  template: template
+} = _babel.default || _babel;
+function intersection(a, b) {
+  const result = new Set();
+  a.forEach(v => b.has(v) && result.add(v));
+  return result;
+}
+function has$1(object, key) {
+  return Object.prototype.hasOwnProperty.call(object, key);
+}
+function resolve$1(path, resolved = new Set()) {
+  if (resolved.has(path)) return;
+  resolved.add(path);
+  if (path.isVariableDeclarator()) {
+    if (path.get("id").isIdentifier()) {
+      return resolve$1(path.get("init"), resolved);
+    }
+  } else if (path.isReferencedIdentifier()) {
+    const binding = path.scope.getBinding(path.node.name);
+    if (!binding) return path;
+    if (!binding.constant) return;
+    return resolve$1(binding.path, resolved);
+  }
+  return path;
+}
+function resolveId(path) {
+  if (path.isIdentifier() && !path.scope.hasBinding(path.node.name, /* noGlobals */true)) {
+    return path.node.name;
+  }
+  const resolved = resolve$1(path);
+  if (resolved != null && resolved.isIdentifier()) {
+    return resolved.node.name;
+  }
+}
+function resolveKey(path, computed = false) {
+  const {
+    scope
+  } = path;
+  if (path.isStringLiteral()) return path.node.value;
+  const isIdentifier = path.isIdentifier();
+  if (isIdentifier && !(computed || path.parent.computed)) {
+    return path.node.name;
+  }
+  if (computed && path.isMemberExpression() && path.get("object").isIdentifier({
+    name: "Symbol"
+  }) && !scope.hasBinding("Symbol", /* noGlobals */true)) {
+    const sym = resolveKey(path.get("property"), path.node.computed);
+    if (sym) return "Symbol." + sym;
+  }
+  if (isIdentifier ? scope.hasBinding(path.node.name, /* noGlobals */true) : path.isPure()) {
+    const {
+      value
+    } = path.evaluate();
+    if (typeof value === "string") return value;
+  }
+}
+function resolveSource(obj) {
+  if (obj.isMemberExpression() && obj.get("property").isIdentifier({
+    name: "prototype"
+  })) {
+    const id = resolveId(obj.get("object"));
+    if (id) {
+      return {
+        id,
+        placement: "prototype"
+      };
+    }
+    return {
+      id: null,
+      placement: null
+    };
+  }
+  const id = resolveId(obj);
+  if (id) {
+    return {
+      id,
+      placement: "static"
+    };
+  }
+  const path = resolve$1(obj);
+  switch (path == null ? void 0 : path.type) {
+    case "RegExpLiteral":
+      return {
+        id: "RegExp",
+        placement: "prototype"
+      };
+    case "FunctionExpression":
+      return {
+        id: "Function",
+        placement: "prototype"
+      };
+    case "StringLiteral":
+      return {
+        id: "String",
+        placement: "prototype"
+      };
+    case "NumberLiteral":
+      return {
+        id: "Number",
+        placement: "prototype"
+      };
+    case "BooleanLiteral":
+      return {
+        id: "Boolean",
+        placement: "prototype"
+      };
+    case "ObjectExpression":
+      return {
+        id: "Object",
+        placement: "prototype"
+      };
+    case "ArrayExpression":
+      return {
+        id: "Array",
+        placement: "prototype"
+      };
+  }
+  return {
+    id: null,
+    placement: null
+  };
+}
+function getImportSource({
+  node
+}) {
+  if (node.specifiers.length === 0) return node.source.value;
+}
+function getRequireSource({
+  node
+}) {
+  if (!t$1.isExpressionStatement(node)) return;
+  const {
+    expression
+  } = node;
+  if (t$1.isCallExpression(expression) && t$1.isIdentifier(expression.callee) && expression.callee.name === "require" && expression.arguments.length === 1 && t$1.isStringLiteral(expression.arguments[0])) {
+    return expression.arguments[0].value;
+  }
+}
+function hoist(node) {
+  // @ts-expect-error
+  node._blockHoist = 3;
+  return node;
+}
+function createUtilsGetter(cache) {
+  return path => {
+    const prog = path.findParent(p => p.isProgram());
+    return {
+      injectGlobalImport(url, moduleName) {
+        cache.storeAnonymous(prog, url, moduleName, (isScript, source) => {
+          return isScript ? template.statement.ast`require(${source})` : t$1.importDeclaration([], source);
+        });
+      },
+      injectNamedImport(url, name, hint = name, moduleName) {
+        return cache.storeNamed(prog, url, name, moduleName, (isScript, source, name) => {
+          const id = prog.scope.generateUidIdentifier(hint);
+          return {
+            node: isScript ? hoist(template.statement.ast`
+                  var ${id} = require(${source}).${name}
+                `) : t$1.importDeclaration([t$1.importSpecifier(id, name)], source),
+            name: id.name
+          };
+        });
+      },
+      injectDefaultImport(url, hint = url, moduleName) {
+        return cache.storeNamed(prog, url, "default", moduleName, (isScript, source) => {
+          const id = prog.scope.generateUidIdentifier(hint);
+          return {
+            node: isScript ? hoist(template.statement.ast`var ${id} = require(${source})`) : t$1.importDeclaration([t$1.importDefaultSpecifier(id)], source),
+            name: id.name
+          };
+        });
+      }
+    };
+  };
+}
+
+const {
+  types: t
+} = _babel.default || _babel;
+class ImportsCachedInjector {
+  constructor(resolver, getPreferredIndex) {
+    this._imports = new WeakMap();
+    this._anonymousImports = new WeakMap();
+    this._lastImports = new WeakMap();
+    this._resolver = resolver;
+    this._getPreferredIndex = getPreferredIndex;
+  }
+  storeAnonymous(programPath, url, moduleName, getVal) {
+    const key = this._normalizeKey(programPath, url);
+    const imports = this._ensure(this._anonymousImports, programPath, Set);
+    if (imports.has(key)) return;
+    const node = getVal(programPath.node.sourceType === "script", t.stringLiteral(this._resolver(url)));
+    imports.add(key);
+    this._injectImport(programPath, node, moduleName);
+  }
+  storeNamed(programPath, url, name, moduleName, getVal) {
+    const key = this._normalizeKey(programPath, url, name);
+    const imports = this._ensure(this._imports, programPath, Map);
+    if (!imports.has(key)) {
+      const {
+        node,
+        name: id
+      } = getVal(programPath.node.sourceType === "script", t.stringLiteral(this._resolver(url)), t.identifier(name));
+      imports.set(key, id);
+      this._injectImport(programPath, node, moduleName);
+    }
+    return t.identifier(imports.get(key));
+  }
+  _injectImport(programPath, node, moduleName) {
+    var _this$_lastImports$ge;
+    const newIndex = this._getPreferredIndex(moduleName);
+    const lastImports = (_this$_lastImports$ge = this._lastImports.get(programPath)) != null ? _this$_lastImports$ge : [];
+    const isPathStillValid = path => path.node &&
+    // Sometimes the AST is modified and the "last import"
+    // we have has been replaced
+    path.parent === programPath.node && path.container === programPath.node.body;
+    let last;
+    if (newIndex === Infinity) {
+      // Fast path: we can always just insert at the end if newIndex is `Infinity`
+      if (lastImports.length > 0) {
+        last = lastImports[lastImports.length - 1].path;
+        if (!isPathStillValid(last)) last = undefined;
+      }
+    } else {
+      for (const [i, data] of lastImports.entries()) {
+        const {
+          path,
+          index
+        } = data;
+        if (isPathStillValid(path)) {
+          if (newIndex < index) {
+            const [newPath] = path.insertBefore(node);
+            lastImports.splice(i, 0, {
+              path: newPath,
+              index: newIndex
+            });
+            return;
+          }
+          last = path;
+        }
+      }
+    }
+    if (last) {
+      const [newPath] = last.insertAfter(node);
+      lastImports.push({
+        path: newPath,
+        index: newIndex
+      });
+    } else {
+      const [newPath] = programPath.unshiftContainer("body", node);
+      this._lastImports.set(programPath, [{
+        path: newPath,
+        index: newIndex
+      }]);
+    }
+  }
+  _ensure(map, programPath, Collection) {
+    let collection = map.get(programPath);
+    if (!collection) {
+      collection = new Collection();
+      map.set(programPath, collection);
+    }
+    return collection;
+  }
+  _normalizeKey(programPath, url, name = "") {
+    const {
+      sourceType
+    } = programPath.node;
+
+    // If we rely on the imported binding (the "name" parameter), we also need to cache
+    // based on the sourceType. This is because the module transforms change the names
+    // of the import variables.
+    return `${name && sourceType}::${url}::${name}`;
+  }
+}
+
+const presetEnvSilentDebugHeader = "#__secret_key__@babel/preset-env__don't_log_debug_header_and_resolved_targets";
+function stringifyTargetsMultiline(targets) {
+  return JSON.stringify(prettifyTargets(targets), null, 2);
+}
+
+function patternToRegExp(pattern) {
+  if (pattern instanceof RegExp) return pattern;
+  try {
+    return new RegExp(`^${pattern}$`);
+  } catch {
+    return null;
+  }
+}
+function buildUnusedError(label, unused) {
+  if (!unused.length) return "";
+  return `  - The following "${label}" patterns didn't match any polyfill:\n` + unused.map(original => `    ${String(original)}\n`).join("");
+}
+function buldDuplicatesError(duplicates) {
+  if (!duplicates.size) return "";
+  return `  - The following polyfills were matched both by "include" and "exclude" patterns:\n` + Array.from(duplicates, name => `    ${name}\n`).join("");
+}
+function validateIncludeExclude(provider, polyfills, includePatterns, excludePatterns) {
+  let current;
+  const filter = pattern => {
+    const regexp = patternToRegExp(pattern);
+    if (!regexp) return false;
+    let matched = false;
+    for (const polyfill of polyfills.keys()) {
+      if (regexp.test(polyfill)) {
+        matched = true;
+        current.add(polyfill);
+      }
+    }
+    return !matched;
+  };
+
+  // prettier-ignore
+  const include = current = new Set();
+  const unusedInclude = Array.from(includePatterns).filter(filter);
+
+  // prettier-ignore
+  const exclude = current = new Set();
+  const unusedExclude = Array.from(excludePatterns).filter(filter);
+  const duplicates = intersection(include, exclude);
+  if (duplicates.size > 0 || unusedInclude.length > 0 || unusedExclude.length > 0) {
+    throw new Error(`Error while validating the "${provider}" provider options:\n` + buildUnusedError("include", unusedInclude) + buildUnusedError("exclude", unusedExclude) + buldDuplicatesError(duplicates));
+  }
+  return {
+    include,
+    exclude
+  };
+}
+function applyMissingDependenciesDefaults(options, babelApi) {
+  const {
+    missingDependencies = {}
+  } = options;
+  if (missingDependencies === false) return false;
+  const caller = babelApi.caller(caller => caller == null ? void 0 : caller.name);
+  const {
+    log = "deferred",
+    inject = caller === "rollup-plugin-babel" ? "throw" : "import",
+    all = false
+  } = missingDependencies;
+  return {
+    log,
+    inject,
+    all
+  };
+}
+
+function isRemoved(path) {
+  if (path.removed) return true;
+  if (!path.parentPath) return false;
+  if (path.listKey) {
+    var _path$parentPath$node;
+    if (!((_path$parentPath$node = path.parentPath.node) != null && (_path$parentPath$node = _path$parentPath$node[path.listKey]) != null && _path$parentPath$node.includes(path.node))) return true;
+  } else {
+    if (path.parentPath.node[path.key] !== path.node) return true;
+  }
+  return isRemoved(path.parentPath);
+}
+var usage = (callProvider => {
+  function property(object, key, placement, path) {
+    return callProvider({
+      kind: "property",
+      object,
+      key,
+      placement
+    }, path);
+  }
+  function handleReferencedIdentifier(path) {
+    const {
+      node: {
+        name
+      },
+      scope
+    } = path;
+    if (scope.getBindingIdentifier(name)) return;
+    callProvider({
+      kind: "global",
+      name
+    }, path);
+  }
+  function analyzeMemberExpression(path) {
+    const key = resolveKey(path.get("property"), path.node.computed);
+    return {
+      key,
+      handleAsMemberExpression: !!key && key !== "prototype"
+    };
+  }
+  return {
+    // Symbol(), new Promise
+    ReferencedIdentifier(path) {
+      const {
+        parentPath
+      } = path;
+      if (parentPath.isMemberExpression({
+        object: path.node
+      }) && analyzeMemberExpression(parentPath).handleAsMemberExpression) {
+        return;
+      }
+      handleReferencedIdentifier(path);
+    },
+    "MemberExpression|OptionalMemberExpression"(path) {
+      const {
+        key,
+        handleAsMemberExpression
+      } = analyzeMemberExpression(path);
+      if (!handleAsMemberExpression) return;
+      const object = path.get("object");
+      let objectIsGlobalIdentifier = object.isIdentifier();
+      if (objectIsGlobalIdentifier) {
+        const binding = object.scope.getBinding(object.node.name);
+        if (binding) {
+          if (binding.path.isImportNamespaceSpecifier()) return;
+          objectIsGlobalIdentifier = false;
+        }
+      }
+      const source = resolveSource(object);
+      let skipObject = property(source.id, key, source.placement, path);
+      skipObject || (skipObject = !objectIsGlobalIdentifier || path.shouldSkip || object.shouldSkip || isRemoved(object));
+      if (!skipObject) handleReferencedIdentifier(object);
+    },
+    ObjectPattern(path) {
+      const {
+        parentPath,
+        parent
+      } = path;
+      let obj;
+
+      // const { keys, values } = Object
+      if (parentPath.isVariableDeclarator()) {
+        obj = parentPath.get("init");
+        // ({ keys, values } = Object)
+      } else if (parentPath.isAssignmentExpression()) {
+        obj = parentPath.get("right");
+        // !function ({ keys, values }) {...} (Object)
+        // resolution does not work after properties transform :-(
+      } else if (parentPath.isFunction()) {
+        const grand = parentPath.parentPath;
+        if (grand.isCallExpression() || grand.isNewExpression()) {
+          if (grand.node.callee === parent) {
+            obj = grand.get("arguments")[path.key];
+          }
+        }
+      }
+      let id = null;
+      let placement = null;
+      if (obj) ({
+        id,
+        placement
+      } = resolveSource(obj));
+      for (const prop of path.get("properties")) {
+        if (prop.isObjectProperty()) {
+          const key = resolveKey(prop.get("key"));
+          if (key) property(id, key, placement, prop);
+        }
+      }
+    },
+    BinaryExpression(path) {
+      if (path.node.operator !== "in") return;
+      const source = resolveSource(path.get("right"));
+      const key = resolveKey(path.get("left"), true);
+      if (!key) return;
+      callProvider({
+        kind: "in",
+        object: source.id,
+        key,
+        placement: source.placement
+      }, path);
+    }
+  };
+});
+
+var entry = (callProvider => ({
+  ImportDeclaration(path) {
+    const source = getImportSource(path);
+    if (!source) return;
+    callProvider({
+      kind: "import",
+      source
+    }, path);
+  },
+  Program(path) {
+    path.get("body").forEach(bodyPath => {
+      const source = getRequireSource(bodyPath);
+      if (!source) return;
+      callProvider({
+        kind: "import",
+        source
+      }, bodyPath);
+    });
+  }
+}));
+
+const nativeRequireResolve = parseFloat(process.versions.node) >= 8.9;
+const require = createRequire(import /*::(_)*/.meta.url); // eslint-disable-line
+
+function myResolve(name, basedir) {
+  if (nativeRequireResolve) {
+    return require.resolve(name, {
+      paths: [basedir]
+    }).replace(/\\/g, "/");
+  } else {
+    return requireResolve.sync(name, {
+      basedir
+    }).replace(/\\/g, "/");
+  }
+}
+function resolve(dirname, moduleName, absoluteImports) {
+  if (absoluteImports === false) return moduleName;
+  let basedir = dirname;
+  if (typeof absoluteImports === "string") {
+    basedir = path.resolve(basedir, absoluteImports);
+  }
+  try {
+    return myResolve(moduleName, basedir);
+  } catch (err) {
+    if (err.code !== "MODULE_NOT_FOUND") throw err;
+    throw Object.assign(new Error(`Failed to resolve "${moduleName}" relative to "${dirname}"`), {
+      code: "BABEL_POLYFILL_NOT_FOUND",
+      polyfill: moduleName,
+      dirname
+    });
+  }
+}
+function has(basedir, name) {
+  try {
+    myResolve(name, basedir);
+    return true;
+  } catch {
+    return false;
+  }
+}
+function logMissing(missingDeps) {
+  if (missingDeps.size === 0) return;
+  const deps = Array.from(missingDeps).sort().join(" ");
+  console.warn("\nSome polyfills have been added but are not present in your dependencies.\n" + "Please run one of the following commands:\n" + `\tnpm install --save ${deps}\n` + `\tyarn add ${deps}\n`);
+  process.exitCode = 1;
+}
+let allMissingDeps = new Set();
+const laterLogMissingDependencies = debounce(() => {
+  logMissing(allMissingDeps);
+  allMissingDeps = new Set();
+}, 100);
+function laterLogMissing(missingDeps) {
+  if (missingDeps.size === 0) return;
+  missingDeps.forEach(name => allMissingDeps.add(name));
+  laterLogMissingDependencies();
+}
+
+const PossibleGlobalObjects = new Set(["global", "globalThis", "self", "window"]);
+function createMetaResolver(polyfills) {
+  const {
+    static: staticP,
+    instance: instanceP,
+    global: globalP
+  } = polyfills;
+  return meta => {
+    if (meta.kind === "global" && globalP && has$1(globalP, meta.name)) {
+      return {
+        kind: "global",
+        desc: globalP[meta.name],
+        name: meta.name
+      };
+    }
+    if (meta.kind === "property" || meta.kind === "in") {
+      const {
+        placement,
+        object,
+        key
+      } = meta;
+      if (object && placement === "static") {
+        if (globalP && PossibleGlobalObjects.has(object) && has$1(globalP, key)) {
+          return {
+            kind: "global",
+            desc: globalP[key],
+            name: key
+          };
+        }
+        if (staticP && has$1(staticP, object) && has$1(staticP[object], key)) {
+          return {
+            kind: "static",
+            desc: staticP[object][key],
+            name: `${object}$${key}`
+          };
+        }
+      }
+      if (instanceP && has$1(instanceP, key)) {
+        return {
+          kind: "instance",
+          desc: instanceP[key],
+          name: `${key}`
+        };
+      }
+    }
+  };
+}
+
+const getTargets = _getTargets.default || _getTargets;
+function resolveOptions(options, babelApi) {
+  const {
+    method,
+    targets: targetsOption,
+    ignoreBrowserslistConfig,
+    configPath,
+    debug,
+    shouldInjectPolyfill,
+    absoluteImports,
+    ...providerOptions
+  } = options;
+  if (isEmpty(options)) {
+    throw new Error(`\
+This plugin requires options, for example:
+    {
+      "plugins": [
+        ["<plugin name>", { method: "usage-pure" }]
+      ]
+    }
+
+See more options at https://github.com/babel/babel-polyfills/blob/main/docs/usage.md`);
+  }
+  let methodName;
+  if (method === "usage-global") methodName = "usageGlobal";else if (method === "entry-global") methodName = "entryGlobal";else if (method === "usage-pure") methodName = "usagePure";else if (typeof method !== "string") {
+    throw new Error(".method must be a string");
+  } else {
+    throw new Error(`.method must be one of "entry-global", "usage-global"` + ` or "usage-pure" (received ${JSON.stringify(method)})`);
+  }
+  if (typeof shouldInjectPolyfill === "function") {
+    if (options.include || options.exclude) {
+      throw new Error(`.include and .exclude are not supported when using the` + ` .shouldInjectPolyfill function.`);
+    }
+  } else if (shouldInjectPolyfill != null) {
+    throw new Error(`.shouldInjectPolyfill must be a function, or undefined` + ` (received ${JSON.stringify(shouldInjectPolyfill)})`);
+  }
+  if (absoluteImports != null && typeof absoluteImports !== "boolean" && typeof absoluteImports !== "string") {
+    throw new Error(`.absoluteImports must be a boolean, a string, or undefined` + ` (received ${JSON.stringify(absoluteImports)})`);
+  }
+  let targets;
+  if (
+  // If any browserslist-related option is specified, fallback to the old
+  // behavior of not using the targets specified in the top-level options.
+  targetsOption || configPath || ignoreBrowserslistConfig) {
+    const targetsObj = typeof targetsOption === "string" || Array.isArray(targetsOption) ? {
+      browsers: targetsOption
+    } : targetsOption;
+    targets = getTargets(targetsObj, {
+      ignoreBrowserslistConfig,
+      configPath
+    });
+  } else {
+    targets = babelApi.targets();
+  }
+  return {
+    method,
+    methodName,
+    targets,
+    absoluteImports: absoluteImports != null ? absoluteImports : false,
+    shouldInjectPolyfill,
+    debug: !!debug,
+    providerOptions: providerOptions
+  };
+}
+function instantiateProvider(factory, options, missingDependencies, dirname, debugLog, babelApi) {
+  const {
+    method,
+    methodName,
+    targets,
+    debug,
+    shouldInjectPolyfill,
+    providerOptions,
+    absoluteImports
+  } = resolveOptions(options, babelApi);
+
+  // eslint-disable-next-line prefer-const
+  let include, exclude;
+  let polyfillsSupport;
+  let polyfillsNames;
+  let filterPolyfills;
+  const getUtils = createUtilsGetter(new ImportsCachedInjector(moduleName => resolve(dirname, moduleName, absoluteImports), name => {
+    var _polyfillsNames$get, _polyfillsNames;
+    return (_polyfillsNames$get = (_polyfillsNames = polyfillsNames) == null ? void 0 : _polyfillsNames.get(name)) != null ? _polyfillsNames$get : Infinity;
+  }));
+  const depsCache = new Map();
+  const api = {
+    babel: babelApi,
+    getUtils,
+    method: options.method,
+    targets,
+    createMetaResolver,
+    shouldInjectPolyfill(name) {
+      if (polyfillsNames === undefined) {
+        throw new Error(`Internal error in the ${factory.name} provider: ` + `shouldInjectPolyfill() can't be called during initialization.`);
+      }
+      if (!polyfillsNames.has(name)) {
+        console.warn(`Internal error in the ${providerName} provider: ` + `unknown polyfill "${name}".`);
+      }
+      if (filterPolyfills && !filterPolyfills(name)) return false;
+      let shouldInject = isRequired(name, targets, {
+        compatData: polyfillsSupport,
+        includes: include,
+        excludes: exclude
+      });
+      if (shouldInjectPolyfill) {
+        shouldInject = shouldInjectPolyfill(name, shouldInject);
+        if (typeof shouldInject !== "boolean") {
+          throw new Error(`.shouldInjectPolyfill must return a boolean.`);
+        }
+      }
+      return shouldInject;
+    },
+    debug(name) {
+      var _debugLog, _debugLog$polyfillsSu;
+      debugLog().found = true;
+      if (!debug || !name) return;
+      if (debugLog().polyfills.has(providerName)) return;
+      debugLog().polyfills.add(name);
+      (_debugLog$polyfillsSu = (_debugLog = debugLog()).polyfillsSupport) != null ? _debugLog$polyfillsSu : _debugLog.polyfillsSupport = polyfillsSupport;
+    },
+    assertDependency(name, version = "*") {
+      if (missingDependencies === false) return;
+      if (absoluteImports) {
+        // If absoluteImports is not false, we will try resolving
+        // the dependency and throw if it's not possible. We can
+        // skip the check here.
+        return;
+      }
+      const dep = version === "*" ? name : `${name}@^${version}`;
+      const found = missingDependencies.all ? false : mapGetOr(depsCache, `${name} :: ${dirname}`, () => has(dirname, name));
+      if (!found) {
+        debugLog().missingDeps.add(dep);
+      }
+    }
+  };
+  const provider = factory(api, providerOptions, dirname);
+  const providerName = provider.name || factory.name;
+  if (typeof provider[methodName] !== "function") {
+    throw new Error(`The "${providerName}" provider doesn't support the "${method}" polyfilling method.`);
+  }
+  if (Array.isArray(provider.polyfills)) {
+    polyfillsNames = new Map(provider.polyfills.map((name, index) => [name, index]));
+    filterPolyfills = provider.filterPolyfills;
+  } else if (provider.polyfills) {
+    polyfillsNames = new Map(Object.keys(provider.polyfills).map((name, index) => [name, index]));
+    polyfillsSupport = provider.polyfills;
+    filterPolyfills = provider.filterPolyfills;
+  } else {
+    polyfillsNames = new Map();
+  }
+  ({
+    include,
+    exclude
+  } = validateIncludeExclude(providerName, polyfillsNames, providerOptions.include || [], providerOptions.exclude || []));
+  let callProvider;
+  if (methodName === "usageGlobal") {
+    callProvider = (payload, path) => {
+      var _ref;
+      const utils = getUtils(path);
+      return (_ref = provider[methodName](payload, utils, path)) != null ? _ref : false;
+    };
+  } else {
+    callProvider = (payload, path) => {
+      const utils = getUtils(path);
+      provider[methodName](payload, utils, path);
+      return false;
+    };
+  }
+  return {
+    debug,
+    method,
+    targets,
+    provider,
+    providerName,
+    callProvider
+  };
+}
+function definePolyfillProvider(factory) {
+  return declare((babelApi, options, dirname) => {
+    babelApi.assertVersion("^7.0.0 || ^8.0.0-alpha.0");
+    const {
+      traverse
+    } = babelApi;
+    let debugLog;
+    const missingDependencies = applyMissingDependenciesDefaults(options, babelApi);
+    const {
+      debug,
+      method,
+      targets,
+      provider,
+      providerName,
+      callProvider
+    } = instantiateProvider(factory, options, missingDependencies, dirname, () => debugLog, babelApi);
+    const createVisitor = method === "entry-global" ? entry : usage;
+    const visitor = provider.visitor ? traverse.visitors.merge([createVisitor(callProvider), provider.visitor]) : createVisitor(callProvider);
+    if (debug && debug !== presetEnvSilentDebugHeader) {
+      console.log(`${providerName}: \`DEBUG\` option`);
+      console.log(`\nUsing targets: ${stringifyTargetsMultiline(targets)}`);
+      console.log(`\nUsing polyfills with \`${method}\` method:`);
+    }
+    const {
+      runtimeName
+    } = provider;
+    return {
+      name: "inject-polyfills",
+      visitor,
+      pre(file) {
+        var _provider$pre;
+        if (runtimeName) {
+          if (file.get("runtimeHelpersModuleName") && file.get("runtimeHelpersModuleName") !== runtimeName) {
+            console.warn(`Two different polyfill providers` + ` (${file.get("runtimeHelpersModuleProvider")}` + ` and ${providerName}) are trying to define two` + ` conflicting @babel/runtime alternatives:` + ` ${file.get("runtimeHelpersModuleName")} and ${runtimeName}.` + ` The second one will be ignored.`);
+          } else {
+            file.set("runtimeHelpersModuleName", runtimeName);
+            file.set("runtimeHelpersModuleProvider", providerName);
+          }
+        }
+        debugLog = {
+          polyfills: new Set(),
+          polyfillsSupport: undefined,
+          found: false,
+          providers: new Set(),
+          missingDeps: new Set()
+        };
+        (_provider$pre = provider.pre) == null ? void 0 : _provider$pre.apply(this, arguments);
+      },
+      post() {
+        var _provider$post;
+        (_provider$post = provider.post) == null ? void 0 : _provider$post.apply(this, arguments);
+        if (missingDependencies !== false) {
+          if (missingDependencies.log === "per-file") {
+            logMissing(debugLog.missingDeps);
+          } else {
+            laterLogMissing(debugLog.missingDeps);
+          }
+        }
+        if (!debug) return;
+        if (this.filename) console.log(`\n[${this.filename}]`);
+        if (debugLog.polyfills.size === 0) {
+          console.log(method === "entry-global" ? debugLog.found ? `Based on your targets, the ${providerName} polyfill did not add any polyfill.` : `The entry point for the ${providerName} polyfill has not been found.` : `Based on your code and targets, the ${providerName} polyfill did not add any polyfill.`);
+          return;
+        }
+        if (method === "entry-global") {
+          console.log(`The ${providerName} polyfill entry has been replaced with ` + `the following polyfills:`);
+        } else {
+          console.log(`The ${providerName} polyfill added the following polyfills:`);
+        }
+        for (const name of debugLog.polyfills) {
+          var _debugLog$polyfillsSu2;
+          if ((_debugLog$polyfillsSu2 = debugLog.polyfillsSupport) != null && _debugLog$polyfillsSu2[name]) {
+            const filteredTargets = getInclusionReasons(name, targets, debugLog.polyfillsSupport);
+            const formattedTargets = JSON.stringify(filteredTargets).replace(/,/g, ", ").replace(/^\{"/, '{ "').replace(/"\}$/, '" }');
+            console.log(`  ${name} ${formattedTargets}`);
+          } else {
+            console.log(`  ${name}`);
+          }
+        }
+      }
+    };
+  });
+}
+function mapGetOr(map, key, getDefault) {
+  let val = map.get(key);
+  if (val === undefined) {
+    val = getDefault();
+    map.set(key, val);
+  }
+  return val;
+}
+function isEmpty(obj) {
+  return Object.keys(obj).length === 0;
+}
+
+export default definePolyfillProvider;
+//# sourceMappingURL=index.node.mjs.map

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
node_modules/@babel/helper-define-polyfill-provider/esm/index.node.mjs.map


Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác