Index: frontend/node_modules/@babel/preset-env/CONTRIBUTING.md
===================================================================
--- frontend/node_modules/@babel/preset-env/CONTRIBUTING.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/CONTRIBUTING.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,95 @@
+# Contributing
+
+## Adding a new plugin or polyfill to support (when approved in the next ECMAScript version)
+
+### Update [`plugin-features.mjs`](../babel-compat-data/scripts/data/plugin-features.mjs)
+
+*Example:*
+
+If you were going to add `**` which is in ES2016:
+
+Find the relevant entries on [compat-table](https://compat-table.github.io/compat-table/es2016plus/#test-exponentiation_(**)_operator):
+
+`exponentiation (**) operator`
+
+Find the corresponding babel plugin:
+
+`@babel/plugin-transform-exponentiation-operator`
+
+And add them in this structure:
+
+```js
+// es2016
+"@babel/plugin-transform-exponentiation-operator": {
+  features: [
+    "exponentiation (**) operator",
+  ],
+},
+```
+
+### Update data for `core-js@2` polyfilling
+
+*Example:*
+
+In case you want to add `Object.values` which is in ES2017:
+
+Find the relevant feature and subfeature on [compat-table](https://kangax.github.io/compat-table/es2016plus/#test-Object_static_methods_Object.values)
+and split it with `/`:
+
+`Object static methods / Object.values`
+
+Find the corresponding module on [`core-js@2`](https://github.com/zloirock/core-js/tree/v2/modules):
+
+`es7.object.values.js`
+
+Find required ES version in [`corejs2-built-in-features.js`](https://github.com/babel/babel/blob/main/packages/babel-preset-env/data/corejs2-built-in-features.js) and add the new feature:
+
+```js
+const es = {
+  //...
+  "es7.object.values": "Object static methods / Object.values"
+}
+```
+
+If you want to transform a new built-in by `useBuiltIns: 'usage'`, add mapping to related `core-js` modules to [this file](https://github.com/babel/babel/blob/main/packages/babel-preset-env/polyfills/corejs2/built-in-definitions.js).
+
+### Update data for `core-js@3` polyfilling
+
+Just update the version of [`core-js-compat`](https://github.com/zloirock/core-js/tree/main/packages/core-js-compat) in dependencies.
+
+If you want to transform a new built-in by `useBuiltIns: 'usage'`, add mapping to related [`core-js`](https://github.com/zloirock/core-js/tree/main/packages/core-js/modules) modules to [this file](https://github.com/babel/babel/blob/main/packages/babel-preset-env/polyfills/corejs3/built-in-definitions.js).
+
+If you want to mark a new proposal as shipped, add it to [this list](https://github.com/babel/babel/blob/main/packages/babel-preset-env/polyfills/corejs3/shipped-proposals.js).
+
+### Update [`plugins.json`](../babel-compat-data/data/plugins.json)
+
+Until `compat-table` is a standalone npm module for data we are using the git commit in `packages/babel-compat-data/scripts/download-compat-table.sh`
+
+`COMPAT_TABLE_COMMIT=[latest-commit-hash]`,
+
+So we update and then run `npm run build-data`. If there are no changes, then `plugins.json` will be the same.
+
+## Tests
+
+### Running tests
+
+See general [CONTRIBUTING.md](../../CONTRIBUTING.md#running-lintingtests).
+
+### Writing tests
+
+#### General
+
+All the tests for `@babel/preset-env` exist in the `test/fixtures` folder. The
+test setup and conventions are exactly the same as testing a Babel plugin, so
+please read our [documentation on writing tests](../../CONTRIBUTING.md#babel-plugin-x).
+
+#### Testing the `debug` option
+
+Testing debug output to `stdout` is similar. Under the `test/debug-fixtures`,
+create a folder with a descriptive name of your test, and add the following:
+
+* Add a `options.json` file (just as the other tests, this is essentially a
+`.babelrc`) with the desired test configuration (required)
+* Add a `stdout.txt` file with the expected debug output. For added
+convenience, if there is no `stdout.txt` present, the test runner will
+generate one for you.
Index: frontend/node_modules/@babel/preset-env/LICENSE
===================================================================
--- frontend/node_modules/@babel/preset-env/LICENSE	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/LICENSE	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -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.
Index: frontend/node_modules/@babel/preset-env/README.md
===================================================================
--- frontend/node_modules/@babel/preset-env/README.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/README.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,19 @@
+# @babel/preset-env
+
+> A Babel preset for each environment.
+
+See our website [@babel/preset-env](https://babeljs.io/docs/babel-preset-env) for more information or the [issues](https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20preset-env%22+is%3Aopen) associated with this package.
+
+## Install
+
+Using npm:
+
+```sh
+npm install --save-dev @babel/preset-env
+```
+
+or using yarn:
+
+```sh
+yarn add @babel/preset-env --dev
+```
Index: frontend/node_modules/@babel/preset-env/data/built-in-modules.js
===================================================================
--- frontend/node_modules/@babel/preset-env/data/built-in-modules.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/data/built-in-modules.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,3 @@
+// TODO: Remove in Babel 8
+
+module.exports = require("@babel/compat-data/native-modules");
Index: frontend/node_modules/@babel/preset-env/data/built-in-modules.json.js
===================================================================
--- frontend/node_modules/@babel/preset-env/data/built-in-modules.json.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/data/built-in-modules.json.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,3 @@
+// TODO: Remove in Babel 8
+
+module.exports = require("@babel/compat-data/native-modules");
Index: frontend/node_modules/@babel/preset-env/data/built-ins.js
===================================================================
--- frontend/node_modules/@babel/preset-env/data/built-ins.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/data/built-ins.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,4 @@
+// TODO: Remove in Babel 8
+// https://github.com/vuejs/vue-cli/issues/3671
+
+module.exports = require("./corejs2-built-ins.json");
Index: frontend/node_modules/@babel/preset-env/data/built-ins.json.js
===================================================================
--- frontend/node_modules/@babel/preset-env/data/built-ins.json.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/data/built-ins.json.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,4 @@
+// TODO: Remove in Babel 8
+// https://github.com/vuejs/vue-cli/issues/3671
+
+module.exports = require("./corejs2-built-ins.json");
Index: frontend/node_modules/@babel/preset-env/data/core-js-compat.js
===================================================================
--- frontend/node_modules/@babel/preset-env/data/core-js-compat.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/data/core-js-compat.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,3 @@
+// TODO: Remove in Babel 8
+
+module.exports = require("core-js-compat/data.json");
Index: frontend/node_modules/@babel/preset-env/data/corejs2-built-ins.js
===================================================================
--- frontend/node_modules/@babel/preset-env/data/corejs2-built-ins.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/data/corejs2-built-ins.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,3 @@
+// TODO: Remove in Babel 8
+
+module.exports = require("@babel/compat-data/corejs2-built-ins");
Index: frontend/node_modules/@babel/preset-env/data/corejs2-built-ins.json.js
===================================================================
--- frontend/node_modules/@babel/preset-env/data/corejs2-built-ins.json.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/data/corejs2-built-ins.json.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,3 @@
+// TODO: Remove in Babel 8
+
+module.exports = require("@babel/compat-data/corejs2-built-ins");
Index: frontend/node_modules/@babel/preset-env/data/package.json
===================================================================
--- frontend/node_modules/@babel/preset-env/data/package.json	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/data/package.json	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+{ "type": "commonjs" }
Index: frontend/node_modules/@babel/preset-env/data/plugins.js
===================================================================
--- frontend/node_modules/@babel/preset-env/data/plugins.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/data/plugins.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,3 @@
+// TODO: Remove in Babel 8
+
+module.exports = require("@babel/compat-data/plugins");
Index: frontend/node_modules/@babel/preset-env/data/plugins.json.js
===================================================================
--- frontend/node_modules/@babel/preset-env/data/plugins.json.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/data/plugins.json.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,3 @@
+// TODO: Remove in Babel 8
+
+module.exports = require("@babel/compat-data/plugins");
Index: frontend/node_modules/@babel/preset-env/data/shipped-proposals.js
===================================================================
--- frontend/node_modules/@babel/preset-env/data/shipped-proposals.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/data/shipped-proposals.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,4 @@
+// TODO: Remove in Babel 8
+
+const { pluginSyntaxMap, proposalPlugins, proposalSyntaxPlugins } = require("../lib/shipped-proposals");
+module.exports = { pluginSyntaxMap, proposalPlugins, proposalSyntaxPlugins };
Index: frontend/node_modules/@babel/preset-env/data/unreleased-labels.js
===================================================================
--- frontend/node_modules/@babel/preset-env/data/unreleased-labels.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/data/unreleased-labels.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,3 @@
+// TODO: Remove in Babel 8
+
+module.exports = require("@babel/helper-compilation-targets").unreleasedLabels;
Index: frontend/node_modules/@babel/preset-env/lib/available-plugins.js
===================================================================
--- frontend/node_modules/@babel/preset-env/lib/available-plugins.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/lib/available-plugins.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,176 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.minVersions = exports.legacyBabel7SyntaxPlugins = exports.default = void 0;
+var _pluginSyntaxImportAssertions = require("@babel/plugin-syntax-import-assertions");
+var _pluginSyntaxImportAttributes = require("@babel/plugin-syntax-import-attributes");
+var _pluginTransformAsyncGeneratorFunctions = require("@babel/plugin-transform-async-generator-functions");
+var _pluginTransformAsyncToGenerator = require("@babel/plugin-transform-async-to-generator");
+var _pluginTransformArrowFunctions = require("@babel/plugin-transform-arrow-functions");
+var _pluginTransformBlockScopedFunctions = require("@babel/plugin-transform-block-scoped-functions");
+var _pluginTransformBlockScoping = require("@babel/plugin-transform-block-scoping");
+var _pluginTransformClasses = require("@babel/plugin-transform-classes");
+var _pluginTransformClassProperties = require("@babel/plugin-transform-class-properties");
+var _pluginTransformClassStaticBlock = require("@babel/plugin-transform-class-static-block");
+var _pluginTransformComputedProperties = require("@babel/plugin-transform-computed-properties");
+var _pluginTransformDestructuring = require("@babel/plugin-transform-destructuring");
+var _pluginTransformDotallRegex = require("@babel/plugin-transform-dotall-regex");
+var _pluginTransformDuplicateKeys = require("@babel/plugin-transform-duplicate-keys");
+var _pluginTransformDuplicateNamedCapturingGroupsRegex = require("@babel/plugin-transform-duplicate-named-capturing-groups-regex");
+var _pluginTransformDynamicImport = require("@babel/plugin-transform-dynamic-import");
+var _pluginTransformExplicitResourceManagement = require("@babel/plugin-transform-explicit-resource-management");
+var _pluginTransformExponentiationOperator = require("@babel/plugin-transform-exponentiation-operator");
+var _pluginTransformExportNamespaceFrom = require("@babel/plugin-transform-export-namespace-from");
+var _pluginTransformForOf = require("@babel/plugin-transform-for-of");
+var _pluginTransformFunctionName = require("@babel/plugin-transform-function-name");
+var _pluginTransformJsonStrings = require("@babel/plugin-transform-json-strings");
+var _pluginTransformLiterals = require("@babel/plugin-transform-literals");
+var _pluginTransformLogicalAssignmentOperators = require("@babel/plugin-transform-logical-assignment-operators");
+var _pluginTransformMemberExpressionLiterals = require("@babel/plugin-transform-member-expression-literals");
+var _pluginTransformModulesAmd = require("@babel/plugin-transform-modules-amd");
+var _pluginTransformModulesCommonjs = require("@babel/plugin-transform-modules-commonjs");
+var _pluginTransformModulesSystemjs = require("@babel/plugin-transform-modules-systemjs");
+var _pluginTransformModulesUmd = require("@babel/plugin-transform-modules-umd");
+var _pluginTransformNamedCapturingGroupsRegex = require("@babel/plugin-transform-named-capturing-groups-regex");
+var _pluginTransformNewTarget = require("@babel/plugin-transform-new-target");
+var _pluginTransformNullishCoalescingOperator = require("@babel/plugin-transform-nullish-coalescing-operator");
+var _pluginTransformNumericSeparator = require("@babel/plugin-transform-numeric-separator");
+var _pluginTransformObjectRestSpread = require("@babel/plugin-transform-object-rest-spread");
+var _pluginTransformObjectSuper = require("@babel/plugin-transform-object-super");
+var _pluginTransformOptionalCatchBinding = require("@babel/plugin-transform-optional-catch-binding");
+var _pluginTransformOptionalChaining = require("@babel/plugin-transform-optional-chaining");
+var _pluginTransformParameters = require("@babel/plugin-transform-parameters");
+var _pluginTransformPrivateMethods = require("@babel/plugin-transform-private-methods");
+var _pluginTransformPrivatePropertyInObject = require("@babel/plugin-transform-private-property-in-object");
+var _pluginTransformPropertyLiterals = require("@babel/plugin-transform-property-literals");
+var _pluginTransformRegenerator = require("@babel/plugin-transform-regenerator");
+var _pluginTransformRegexpModifiers = require("@babel/plugin-transform-regexp-modifiers");
+var _pluginTransformReservedWords = require("@babel/plugin-transform-reserved-words");
+var _pluginTransformShorthandProperties = require("@babel/plugin-transform-shorthand-properties");
+var _pluginTransformSpread = require("@babel/plugin-transform-spread");
+var _pluginTransformStickyRegex = require("@babel/plugin-transform-sticky-regex");
+var _pluginTransformTemplateLiterals = require("@babel/plugin-transform-template-literals");
+var _pluginTransformTypeofSymbol = require("@babel/plugin-transform-typeof-symbol");
+var _pluginTransformUnicodeEscapes = require("@babel/plugin-transform-unicode-escapes");
+var _pluginTransformUnicodePropertyRegex = require("@babel/plugin-transform-unicode-property-regex");
+var _pluginTransformUnicodeRegex = require("@babel/plugin-transform-unicode-regex");
+var _pluginTransformUnicodeSetsRegex = require("@babel/plugin-transform-unicode-sets-regex");
+var _index = require("@babel/preset-modules/lib/plugins/transform-async-arrows-in-class/index.js");
+var _index2 = require("@babel/preset-modules/lib/plugins/transform-edge-default-parameters/index.js");
+var _index3 = require("@babel/preset-modules/lib/plugins/transform-edge-function-name/index.js");
+var _pluginBugfixFirefoxClassInComputedClassKey = require("@babel/plugin-bugfix-firefox-class-in-computed-class-key");
+var _index4 = require("@babel/preset-modules/lib/plugins/transform-tagged-template-caching/index.js");
+var _index5 = require("@babel/preset-modules/lib/plugins/transform-safari-block-shadowing/index.js");
+var _index6 = require("@babel/preset-modules/lib/plugins/transform-safari-for-shadowing/index.js");
+var _pluginBugfixSafariIdDestructuringCollisionInFunctionExpression = require("@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression");
+var _pluginBugfixSafariRestDestructuringRhsArray = require("@babel/plugin-bugfix-safari-rest-destructuring-rhs-array");
+var _pluginBugfixSafariClassFieldInitializerScope = require("@babel/plugin-bugfix-safari-class-field-initializer-scope");
+var _pluginBugfixV8SpreadParametersInOptionalChaining = require("@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining");
+var _pluginBugfixV8StaticClassFieldsRedefineReadonly = require("@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly");
+const availablePlugins = exports.default = {
+  "bugfix/transform-async-arrows-in-class": () => _index,
+  "bugfix/transform-edge-default-parameters": () => _index2,
+  "bugfix/transform-edge-function-name": () => _index3,
+  "bugfix/transform-firefox-class-in-computed-class-key": () => _pluginBugfixFirefoxClassInComputedClassKey.default,
+  "bugfix/transform-safari-block-shadowing": () => _index5,
+  "bugfix/transform-safari-class-field-initializer-scope": () => _pluginBugfixSafariClassFieldInitializerScope.default,
+  "bugfix/transform-safari-for-shadowing": () => _index6,
+  "bugfix/transform-safari-id-destructuring-collision-in-function-expression": () => _pluginBugfixSafariIdDestructuringCollisionInFunctionExpression.default,
+  "bugfix/transform-safari-rest-destructuring-rhs-array": () => _pluginBugfixSafariRestDestructuringRhsArray.default,
+  "bugfix/transform-tagged-template-caching": () => _index4,
+  "bugfix/transform-v8-spread-parameters-in-optional-chaining": () => _pluginBugfixV8SpreadParametersInOptionalChaining.default,
+  "bugfix/transform-v8-static-class-fields-redefine-readonly": () => _pluginBugfixV8StaticClassFieldsRedefineReadonly.default,
+  "transform-arrow-functions": () => _pluginTransformArrowFunctions.default,
+  "transform-async-generator-functions": () => _pluginTransformAsyncGeneratorFunctions.default,
+  "transform-async-to-generator": () => _pluginTransformAsyncToGenerator.default,
+  "transform-block-scoped-functions": () => _pluginTransformBlockScopedFunctions.default,
+  "transform-block-scoping": () => _pluginTransformBlockScoping.default,
+  "transform-class-properties": () => _pluginTransformClassProperties.default,
+  "transform-class-static-block": () => _pluginTransformClassStaticBlock.default,
+  "transform-classes": () => _pluginTransformClasses.default,
+  "transform-computed-properties": () => _pluginTransformComputedProperties.default,
+  "transform-destructuring": () => _pluginTransformDestructuring.default,
+  "transform-dotall-regex": () => _pluginTransformDotallRegex.default,
+  "transform-duplicate-keys": () => _pluginTransformDuplicateKeys.default,
+  "transform-duplicate-named-capturing-groups-regex": () => _pluginTransformDuplicateNamedCapturingGroupsRegex.default,
+  "transform-dynamic-import": () => _pluginTransformDynamicImport.default,
+  "transform-explicit-resource-management": () => _pluginTransformExplicitResourceManagement.default,
+  "transform-exponentiation-operator": () => _pluginTransformExponentiationOperator.default,
+  "transform-export-namespace-from": () => _pluginTransformExportNamespaceFrom.default,
+  "transform-for-of": () => _pluginTransformForOf.default,
+  "transform-function-name": () => _pluginTransformFunctionName.default,
+  "transform-json-strings": () => _pluginTransformJsonStrings.default,
+  "transform-literals": () => _pluginTransformLiterals.default,
+  "transform-logical-assignment-operators": () => _pluginTransformLogicalAssignmentOperators.default,
+  "transform-member-expression-literals": () => _pluginTransformMemberExpressionLiterals.default,
+  "transform-modules-amd": () => _pluginTransformModulesAmd.default,
+  "transform-modules-commonjs": () => _pluginTransformModulesCommonjs.default,
+  "transform-modules-systemjs": () => _pluginTransformModulesSystemjs.default,
+  "transform-modules-umd": () => _pluginTransformModulesUmd.default,
+  "transform-named-capturing-groups-regex": () => _pluginTransformNamedCapturingGroupsRegex.default,
+  "transform-new-target": () => _pluginTransformNewTarget.default,
+  "transform-nullish-coalescing-operator": () => _pluginTransformNullishCoalescingOperator.default,
+  "transform-numeric-separator": () => _pluginTransformNumericSeparator.default,
+  "transform-object-rest-spread": () => _pluginTransformObjectRestSpread.default,
+  "transform-object-super": () => _pluginTransformObjectSuper.default,
+  "transform-optional-catch-binding": () => _pluginTransformOptionalCatchBinding.default,
+  "transform-optional-chaining": () => _pluginTransformOptionalChaining.default,
+  "transform-parameters": () => _pluginTransformParameters.default,
+  "transform-private-methods": () => _pluginTransformPrivateMethods.default,
+  "transform-private-property-in-object": () => _pluginTransformPrivatePropertyInObject.default,
+  "transform-property-literals": () => _pluginTransformPropertyLiterals.default,
+  "transform-regenerator": () => _pluginTransformRegenerator.default,
+  "transform-regexp-modifiers": () => _pluginTransformRegexpModifiers.default,
+  "transform-reserved-words": () => _pluginTransformReservedWords.default,
+  "transform-shorthand-properties": () => _pluginTransformShorthandProperties.default,
+  "transform-spread": () => _pluginTransformSpread.default,
+  "transform-sticky-regex": () => _pluginTransformStickyRegex.default,
+  "transform-template-literals": () => _pluginTransformTemplateLiterals.default,
+  "transform-typeof-symbol": () => _pluginTransformTypeofSymbol.default,
+  "transform-unicode-escapes": () => _pluginTransformUnicodeEscapes.default,
+  "transform-unicode-property-regex": () => _pluginTransformUnicodePropertyRegex.default,
+  "transform-unicode-regex": () => _pluginTransformUnicodeRegex.default,
+  "transform-unicode-sets-regex": () => _pluginTransformUnicodeSetsRegex.default
+};
+const minVersions = exports.minVersions = {};
+let legacyBabel7SyntaxPlugins = exports.legacyBabel7SyntaxPlugins = void 0;
+Object.assign(minVersions, {
+  "bugfix/transform-safari-id-destructuring-collision-in-function-expression": "7.16.0",
+  "bugfix/transform-v8-static-class-fields-redefine-readonly": "7.12.0",
+  "syntax-import-attributes": "7.22.0",
+  "transform-class-static-block": "7.12.0",
+  "transform-duplicate-named-capturing-groups-regex": "7.19.0",
+  "transform-explicit-resource-management": "7.23.9",
+  "transform-private-property-in-object": "7.10.0",
+  "transform-regexp-modifiers": "7.19.0"
+});
+const syntax = name => () => () => ({
+  manipulateOptions: (_, p) => p.plugins.push(name)
+});
+const legacyBabel7SyntaxPluginsLoaders = {
+  "syntax-async-generators": syntax("asyncGenerators"),
+  "syntax-class-properties": syntax("classProperties"),
+  "syntax-class-static-block": syntax("classStaticBlock"),
+  "syntax-dynamic-import": syntax("dynamicImport"),
+  "syntax-explicit-resource-management": syntax("explicitResourceManagement"),
+  "syntax-export-namespace-from": syntax("exportNamespaceFrom"),
+  "syntax-import-meta": syntax("importMeta"),
+  "syntax-json-strings": syntax("jsonStrings"),
+  "syntax-logical-assignment-operators": syntax("logicalAssignment"),
+  "syntax-nullish-coalescing-operator": syntax("nullishCoalescingOperator"),
+  "syntax-numeric-separator": syntax("numericSeparator"),
+  "syntax-object-rest-spread": syntax("objectRestSpread"),
+  "syntax-optional-catch-binding": syntax("optionalCatchBinding"),
+  "syntax-optional-chaining": syntax("optionalChaining"),
+  "syntax-private-property-in-object": syntax("privateIn"),
+  "syntax-top-level-await": syntax("topLevelAwait"),
+  "syntax-import-assertions": () => _pluginSyntaxImportAssertions.default,
+  "syntax-import-attributes": () => _pluginSyntaxImportAttributes.default,
+  "syntax-unicode-sets-regex": () => require("@babel/plugin-syntax-unicode-sets-regex")
+};
+Object.assign(availablePlugins, legacyBabel7SyntaxPluginsLoaders);
+exports.legacyBabel7SyntaxPlugins = legacyBabel7SyntaxPlugins = new Set(Object.keys(legacyBabel7SyntaxPluginsLoaders));
+
+//# sourceMappingURL=available-plugins.js.map
Index: frontend/node_modules/@babel/preset-env/lib/available-plugins.js.map
===================================================================
--- frontend/node_modules/@babel/preset-env/lib/available-plugins.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/lib/available-plugins.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+{"version":3,"names":["_pluginSyntaxImportAssertions","require","_pluginSyntaxImportAttributes","_pluginTransformAsyncGeneratorFunctions","_pluginTransformAsyncToGenerator","_pluginTransformArrowFunctions","_pluginTransformBlockScopedFunctions","_pluginTransformBlockScoping","_pluginTransformClasses","_pluginTransformClassProperties","_pluginTransformClassStaticBlock","_pluginTransformComputedProperties","_pluginTransformDestructuring","_pluginTransformDotallRegex","_pluginTransformDuplicateKeys","_pluginTransformDuplicateNamedCapturingGroupsRegex","_pluginTransformDynamicImport","_pluginTransformExplicitResourceManagement","_pluginTransformExponentiationOperator","_pluginTransformExportNamespaceFrom","_pluginTransformForOf","_pluginTransformFunctionName","_pluginTransformJsonStrings","_pluginTransformLiterals","_pluginTransformLogicalAssignmentOperators","_pluginTransformMemberExpressionLiterals","_pluginTransformModulesAmd","_pluginTransformModulesCommonjs","_pluginTransformModulesSystemjs","_pluginTransformModulesUmd","_pluginTransformNamedCapturingGroupsRegex","_pluginTransformNewTarget","_pluginTransformNullishCoalescingOperator","_pluginTransformNumericSeparator","_pluginTransformObjectRestSpread","_pluginTransformObjectSuper","_pluginTransformOptionalCatchBinding","_pluginTransformOptionalChaining","_pluginTransformParameters","_pluginTransformPrivateMethods","_pluginTransformPrivatePropertyInObject","_pluginTransformPropertyLiterals","_pluginTransformRegenerator","_pluginTransformRegexpModifiers","_pluginTransformReservedWords","_pluginTransformShorthandProperties","_pluginTransformSpread","_pluginTransformStickyRegex","_pluginTransformTemplateLiterals","_pluginTransformTypeofSymbol","_pluginTransformUnicodeEscapes","_pluginTransformUnicodePropertyRegex","_pluginTransformUnicodeRegex","_pluginTransformUnicodeSetsRegex","_index","_index2","_index3","_pluginBugfixFirefoxClassInComputedClassKey","_index4","_index5","_index6","_pluginBugfixSafariIdDestructuringCollisionInFunctionExpression","_pluginBugfixSafariRestDestructuringRhsArray","_pluginBugfixSafariClassFieldInitializerScope","_pluginBugfixV8SpreadParametersInOptionalChaining","_pluginBugfixV8StaticClassFieldsRedefineReadonly","availablePlugins","exports","default","bugfix/transform-async-arrows-in-class","bugfixAsyncArrowsInClass","bugfix/transform-edge-default-parameters","bugfixEdgeDefaultParameters","bugfix/transform-edge-function-name","bugfixEdgeFunctionName","bugfix/transform-firefox-class-in-computed-class-key","bugfixFirefoxClassInComputedKey","bugfix/transform-safari-block-shadowing","bugfixSafariBlockShadowing","bugfix/transform-safari-class-field-initializer-scope","bugfixSafariClassFieldInitializerScope","bugfix/transform-safari-for-shadowing","bugfixSafariForShadowing","bugfix/transform-safari-id-destructuring-collision-in-function-expression","bugfixSafariIdDestructuringCollisionInFunctionExpression","bugfix/transform-safari-rest-destructuring-rhs-array","bugfixSafariRestDestructuringRhsArray","bugfix/transform-tagged-template-caching","bugfixTaggedTemplateCaching","bugfix/transform-v8-spread-parameters-in-optional-chaining","bugfixV8SpreadParametersInOptionalChaining","bugfix/transform-v8-static-class-fields-redefine-readonly","bugfixV8StaticClassFieldsRedefineReadonly","transform-arrow-functions","transformArrowFunctions","transform-async-generator-functions","transformAsyncGeneratorFunctions","transform-async-to-generator","transformAsyncToGenerator","transform-block-scoped-functions","transformBlockScopedFunctions","transform-block-scoping","transformBlockScoping","transform-class-properties","transformClassProperties","transform-class-static-block","transformClassStaticBlock","transform-classes","transformClasses","transform-computed-properties","transformComputedProperties","transform-destructuring","transformDestructuring","transform-dotall-regex","transformDotallRegex","transform-duplicate-keys","transformDuplicateKeys","transform-duplicate-named-capturing-groups-regex","transformDuplicateNamedCapturingGroupsRegex","transform-dynamic-import","transformDynamicImport","transform-explicit-resource-management","transformExplicitResourceManagement","transform-exponentiation-operator","transformExponentialOperator","transform-export-namespace-from","transformExportNamespaceFrom","transform-for-of","transformForOf","transform-function-name","transformFunctionName","transform-json-strings","transformJsonStrings","transform-literals","transformLiterals","transform-logical-assignment-operators","transformLogicalAssignmentOperators","transform-member-expression-literals","transformMemberExpressionLiterals","transform-modules-amd","transformModulesAmd","transform-modules-commonjs","transformModulesCommonjs","transform-modules-systemjs","transformModulesSystemjs","transform-modules-umd","transformModulesUmd","transform-named-capturing-groups-regex","transformNamedCapturingGroupsRegex","transform-new-target","transformNewTarget","transform-nullish-coalescing-operator","transformNullishCoalescingOperator","transform-numeric-separator","transformNumericSeparator","transform-object-rest-spread","transformObjectRestSpread","transform-object-super","transformObjectSuper","transform-optional-catch-binding","transformOptionalCatchBinding","transform-optional-chaining","transformOptionalChaining","transform-parameters","transformParameters","transform-private-methods","transformPrivateMethods","transform-private-property-in-object","transformPrivatePropertyInObject","transform-property-literals","transformPropertyLiterals","transform-regenerator","transformRegenerator","transform-regexp-modifiers","transformRegExpModifiers","transform-reserved-words","transformReservedWords","transform-shorthand-properties","transformShorthandProperties","transform-spread","transformSpread","transform-sticky-regex","transformStickyRegex","transform-template-literals","transformTemplateLiterals","transform-typeof-symbol","transformTypeofSymbol","transform-unicode-escapes","transformUnicodeEscapes","transform-unicode-property-regex","transformUnicodePropertyRegex","transform-unicode-regex","transformUnicodeRegex","transform-unicode-sets-regex","transformUnicodeSetsRegex","minVersions","legacyBabel7SyntaxPlugins","Object","assign","syntax","name","manipulateOptions","_","p","plugins","push","legacyBabel7SyntaxPluginsLoaders","syntax-import-assertions","syntaxImportAssertions","syntax-import-attributes","syntaxImportAttributes","syntax-unicode-sets-regex","Set","keys"],"sources":["../src/available-plugins.ts"],"sourcesContent":["/* eslint sort-keys: \"error\" */\n\nimport syntaxImportAssertions from \"@babel/plugin-syntax-import-assertions\" with { if: \"!process.env.BABEL_8_BREAKING\" };\nimport syntaxImportAttributes from \"@babel/plugin-syntax-import-attributes\" with { if: \"!process.env.BABEL_8_BREAKING\" };\n\nimport transformAsyncGeneratorFunctions from \"@babel/plugin-transform-async-generator-functions\";\nimport transformAsyncToGenerator from \"@babel/plugin-transform-async-to-generator\";\nimport transformArrowFunctions from \"@babel/plugin-transform-arrow-functions\";\nimport transformBlockScopedFunctions from \"@babel/plugin-transform-block-scoped-functions\";\nimport transformBlockScoping from \"@babel/plugin-transform-block-scoping\";\nimport transformClasses from \"@babel/plugin-transform-classes\";\nimport transformClassProperties from \"@babel/plugin-transform-class-properties\";\nimport transformClassStaticBlock from \"@babel/plugin-transform-class-static-block\";\nimport transformComputedProperties from \"@babel/plugin-transform-computed-properties\";\nimport transformDestructuring from \"@babel/plugin-transform-destructuring\";\nimport transformDotallRegex from \"@babel/plugin-transform-dotall-regex\";\nimport transformDuplicateKeys from \"@babel/plugin-transform-duplicate-keys\";\nimport transformDuplicateNamedCapturingGroupsRegex from \"@babel/plugin-transform-duplicate-named-capturing-groups-regex\";\nimport transformDynamicImport from \"@babel/plugin-transform-dynamic-import\";\nimport transformExplicitResourceManagement from \"@babel/plugin-transform-explicit-resource-management\";\nimport transformExponentialOperator from \"@babel/plugin-transform-exponentiation-operator\";\nimport transformExportNamespaceFrom from \"@babel/plugin-transform-export-namespace-from\";\nimport transformForOf from \"@babel/plugin-transform-for-of\";\nimport transformFunctionName from \"@babel/plugin-transform-function-name\";\nimport transformJsonStrings from \"@babel/plugin-transform-json-strings\";\nimport transformLiterals from \"@babel/plugin-transform-literals\";\nimport transformLogicalAssignmentOperators from \"@babel/plugin-transform-logical-assignment-operators\";\nimport transformMemberExpressionLiterals from \"@babel/plugin-transform-member-expression-literals\";\nimport transformModulesAmd from \"@babel/plugin-transform-modules-amd\";\nimport transformModulesCommonjs from \"@babel/plugin-transform-modules-commonjs\";\nimport transformModulesSystemjs from \"@babel/plugin-transform-modules-systemjs\";\nimport transformModulesUmd from \"@babel/plugin-transform-modules-umd\";\nimport transformNamedCapturingGroupsRegex from \"@babel/plugin-transform-named-capturing-groups-regex\";\nimport transformNewTarget from \"@babel/plugin-transform-new-target\";\nimport transformNullishCoalescingOperator from \"@babel/plugin-transform-nullish-coalescing-operator\";\nimport transformNumericSeparator from \"@babel/plugin-transform-numeric-separator\";\nimport transformObjectRestSpread from \"@babel/plugin-transform-object-rest-spread\";\nimport transformObjectSuper from \"@babel/plugin-transform-object-super\";\nimport transformOptionalCatchBinding from \"@babel/plugin-transform-optional-catch-binding\";\nimport transformOptionalChaining from \"@babel/plugin-transform-optional-chaining\";\nimport transformParameters from \"@babel/plugin-transform-parameters\";\nimport transformPrivateMethods from \"@babel/plugin-transform-private-methods\";\nimport transformPrivatePropertyInObject from \"@babel/plugin-transform-private-property-in-object\";\nimport transformPropertyLiterals from \"@babel/plugin-transform-property-literals\";\nimport transformRegenerator from \"@babel/plugin-transform-regenerator\";\nimport transformRegExpModifiers from \"@babel/plugin-transform-regexp-modifiers\";\nimport transformReservedWords from \"@babel/plugin-transform-reserved-words\";\nimport transformShorthandProperties from \"@babel/plugin-transform-shorthand-properties\";\nimport transformSpread from \"@babel/plugin-transform-spread\";\nimport transformStickyRegex from \"@babel/plugin-transform-sticky-regex\";\nimport transformTemplateLiterals from \"@babel/plugin-transform-template-literals\";\nimport transformTypeofSymbol from \"@babel/plugin-transform-typeof-symbol\";\nimport transformUnicodeEscapes from \"@babel/plugin-transform-unicode-escapes\";\nimport transformUnicodePropertyRegex from \"@babel/plugin-transform-unicode-property-regex\";\nimport transformUnicodeRegex from \"@babel/plugin-transform-unicode-regex\";\nimport transformUnicodeSetsRegex from \"@babel/plugin-transform-unicode-sets-regex\";\n\nimport bugfixAsyncArrowsInClass from \"@babel/preset-modules/lib/plugins/transform-async-arrows-in-class/index.js\";\nimport bugfixEdgeDefaultParameters from \"@babel/preset-modules/lib/plugins/transform-edge-default-parameters/index.js\";\nimport bugfixEdgeFunctionName from \"@babel/preset-modules/lib/plugins/transform-edge-function-name/index.js\";\nimport bugfixFirefoxClassInComputedKey from \"@babel/plugin-bugfix-firefox-class-in-computed-class-key\";\nimport bugfixTaggedTemplateCaching from \"@babel/preset-modules/lib/plugins/transform-tagged-template-caching/index.js\";\nimport bugfixSafariBlockShadowing from \"@babel/preset-modules/lib/plugins/transform-safari-block-shadowing/index.js\";\nimport bugfixSafariForShadowing from \"@babel/preset-modules/lib/plugins/transform-safari-for-shadowing/index.js\";\nimport bugfixSafariIdDestructuringCollisionInFunctionExpression from \"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression\";\nimport bugfixSafariRestDestructuringRhsArray from \"@babel/plugin-bugfix-safari-rest-destructuring-rhs-array\";\nimport bugfixSafariClassFieldInitializerScope from \"@babel/plugin-bugfix-safari-class-field-initializer-scope\";\nimport bugfixV8SpreadParametersInOptionalChaining from \"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining\";\nimport bugfixV8StaticClassFieldsRedefineReadonly from \"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly\";\n\nexport { availablePlugins as default };\nconst availablePlugins = {\n  \"bugfix/transform-async-arrows-in-class\": () => bugfixAsyncArrowsInClass,\n  \"bugfix/transform-edge-default-parameters\": () => bugfixEdgeDefaultParameters,\n  \"bugfix/transform-edge-function-name\": () => bugfixEdgeFunctionName,\n  \"bugfix/transform-firefox-class-in-computed-class-key\": () =>\n    bugfixFirefoxClassInComputedKey,\n  \"bugfix/transform-safari-block-shadowing\": () => bugfixSafariBlockShadowing,\n  \"bugfix/transform-safari-class-field-initializer-scope\": () =>\n    bugfixSafariClassFieldInitializerScope,\n  \"bugfix/transform-safari-for-shadowing\": () => bugfixSafariForShadowing,\n  \"bugfix/transform-safari-id-destructuring-collision-in-function-expression\":\n    () => bugfixSafariIdDestructuringCollisionInFunctionExpression,\n  \"bugfix/transform-safari-rest-destructuring-rhs-array\": () =>\n    bugfixSafariRestDestructuringRhsArray,\n  \"bugfix/transform-tagged-template-caching\": () => bugfixTaggedTemplateCaching,\n  \"bugfix/transform-v8-spread-parameters-in-optional-chaining\": () =>\n    bugfixV8SpreadParametersInOptionalChaining,\n  \"bugfix/transform-v8-static-class-fields-redefine-readonly\": () =>\n    bugfixV8StaticClassFieldsRedefineReadonly,\n  \"transform-arrow-functions\": () => transformArrowFunctions,\n  \"transform-async-generator-functions\": () => transformAsyncGeneratorFunctions,\n  \"transform-async-to-generator\": () => transformAsyncToGenerator,\n  \"transform-block-scoped-functions\": () => transformBlockScopedFunctions,\n  \"transform-block-scoping\": () => transformBlockScoping,\n  \"transform-class-properties\": () => transformClassProperties,\n  \"transform-class-static-block\": () => transformClassStaticBlock,\n  \"transform-classes\": () => transformClasses,\n  \"transform-computed-properties\": () => transformComputedProperties,\n  \"transform-destructuring\": () => transformDestructuring,\n  \"transform-dotall-regex\": () => transformDotallRegex,\n  \"transform-duplicate-keys\": () => transformDuplicateKeys,\n  \"transform-duplicate-named-capturing-groups-regex\": () =>\n    transformDuplicateNamedCapturingGroupsRegex,\n  \"transform-dynamic-import\": () => transformDynamicImport,\n  \"transform-explicit-resource-management\": () =>\n    transformExplicitResourceManagement,\n  \"transform-exponentiation-operator\": () => transformExponentialOperator,\n  \"transform-export-namespace-from\": () => transformExportNamespaceFrom,\n  \"transform-for-of\": () => transformForOf,\n  \"transform-function-name\": () => transformFunctionName,\n  \"transform-json-strings\": () => transformJsonStrings,\n  \"transform-literals\": () => transformLiterals,\n  \"transform-logical-assignment-operators\": () =>\n    transformLogicalAssignmentOperators,\n  \"transform-member-expression-literals\": () =>\n    transformMemberExpressionLiterals,\n  \"transform-modules-amd\": () => transformModulesAmd,\n  \"transform-modules-commonjs\": () => transformModulesCommonjs,\n  \"transform-modules-systemjs\": () => transformModulesSystemjs,\n  \"transform-modules-umd\": () => transformModulesUmd,\n  \"transform-named-capturing-groups-regex\": () =>\n    transformNamedCapturingGroupsRegex,\n  \"transform-new-target\": () => transformNewTarget,\n  \"transform-nullish-coalescing-operator\": () =>\n    transformNullishCoalescingOperator,\n  \"transform-numeric-separator\": () => transformNumericSeparator,\n  \"transform-object-rest-spread\": () => transformObjectRestSpread,\n  \"transform-object-super\": () => transformObjectSuper,\n  \"transform-optional-catch-binding\": () => transformOptionalCatchBinding,\n  \"transform-optional-chaining\": () => transformOptionalChaining,\n  \"transform-parameters\": () => transformParameters,\n  \"transform-private-methods\": () => transformPrivateMethods,\n  \"transform-private-property-in-object\": () =>\n    transformPrivatePropertyInObject,\n  \"transform-property-literals\": () => transformPropertyLiterals,\n  \"transform-regenerator\": () => transformRegenerator,\n  \"transform-regexp-modifiers\": () => transformRegExpModifiers,\n  \"transform-reserved-words\": () => transformReservedWords,\n  \"transform-shorthand-properties\": () => transformShorthandProperties,\n  \"transform-spread\": () => transformSpread,\n  \"transform-sticky-regex\": () => transformStickyRegex,\n  \"transform-template-literals\": () => transformTemplateLiterals,\n  \"transform-typeof-symbol\": () => transformTypeofSymbol,\n  \"transform-unicode-escapes\": () => transformUnicodeEscapes,\n  \"transform-unicode-property-regex\": () => transformUnicodePropertyRegex,\n  \"transform-unicode-regex\": () => transformUnicodeRegex,\n  \"transform-unicode-sets-regex\": () => transformUnicodeSetsRegex,\n};\n\nexport const minVersions = {};\n// TODO(Babel 8): Remove this\nexport let legacyBabel7SyntaxPlugins: Set<string>;\n\nif (!process.env.BABEL_8_BREAKING) {\n  /* eslint-disable no-restricted-globals */\n\n  Object.assign(minVersions, {\n    \"bugfix/transform-safari-id-destructuring-collision-in-function-expression\":\n      \"7.16.0\",\n    \"bugfix/transform-v8-static-class-fields-redefine-readonly\": \"7.12.0\",\n    \"syntax-import-attributes\": \"7.22.0\",\n    \"transform-class-static-block\": \"7.12.0\",\n    \"transform-duplicate-named-capturing-groups-regex\": \"7.19.0\",\n    \"transform-explicit-resource-management\": \"7.23.9\",\n    \"transform-private-property-in-object\": \"7.10.0\",\n    \"transform-regexp-modifiers\": \"7.19.0\",\n  });\n\n  // This is a factory to create a plugin that enables a parser plugin\n  const syntax =\n    (name: ParserPlugin) => (): typeof transformJsonStrings => () => ({\n      manipulateOptions: (_, p) => p.plugins.push(name),\n    });\n  type ParserPlugin = Parameters<\n    ReturnType<typeof transformJsonStrings>[\"manipulateOptions\"]\n  >[1][\"plugins\"][number];\n\n  const legacyBabel7SyntaxPluginsLoaders = {\n    \"syntax-async-generators\": syntax(\"asyncGenerators\"),\n    \"syntax-class-properties\": syntax(\"classProperties\"),\n    \"syntax-class-static-block\": syntax(\"classStaticBlock\"),\n    \"syntax-dynamic-import\": syntax(\"dynamicImport\"),\n    \"syntax-explicit-resource-management\": syntax(\"explicitResourceManagement\"),\n    \"syntax-export-namespace-from\": syntax(\"exportNamespaceFrom\"),\n    \"syntax-import-meta\": syntax(\"importMeta\"),\n    \"syntax-json-strings\": syntax(\"jsonStrings\"),\n    \"syntax-logical-assignment-operators\": syntax(\"logicalAssignment\"),\n    \"syntax-nullish-coalescing-operator\": syntax(\"nullishCoalescingOperator\"),\n    \"syntax-numeric-separator\": syntax(\"numericSeparator\"),\n    \"syntax-object-rest-spread\": syntax(\"objectRestSpread\"),\n    \"syntax-optional-catch-binding\": syntax(\"optionalCatchBinding\"),\n    \"syntax-optional-chaining\": syntax(\"optionalChaining\"),\n    \"syntax-private-property-in-object\": syntax(\"privateIn\"),\n    \"syntax-top-level-await\": syntax(\"topLevelAwait\"),\n\n    // These plugins have more logic than just enabling/disabling a feature\n    // eslint-disable-next-line sort-keys\n    \"syntax-import-assertions\": () => syntaxImportAssertions,\n    \"syntax-import-attributes\": () => syntaxImportAttributes,\n\n    // These are CJS plugins that depend on a package from the monorepo, so it\n    // breaks using ESM. Given that ESM builds are new enough to have this\n    // syntax enabled by default, we can safely skip enabling it.\n\n    \"syntax-unicode-sets-regex\":\n      USE_ESM || IS_STANDALONE\n        ? () => () => ({})\n        : () => require(\"@babel/plugin-syntax-unicode-sets-regex\"),\n  };\n\n  Object.assign(availablePlugins, legacyBabel7SyntaxPluginsLoaders);\n\n  legacyBabel7SyntaxPlugins = new Set(\n    Object.keys(legacyBabel7SyntaxPluginsLoaders),\n  );\n}\n"],"mappings":"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","ignoreList":[]}
Index: frontend/node_modules/@babel/preset-env/lib/debug.js
===================================================================
--- frontend/node_modules/@babel/preset-env/lib/debug.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/lib/debug.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,35 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.logPlugin = void 0;
+var _helperCompilationTargets = require("@babel/helper-compilation-targets");
+const compatData = require("@babel/compat-data/plugins");
+const logPlugin = (item, targetVersions, list) => {
+  const filteredList = (0, _helperCompilationTargets.getInclusionReasons)(item, targetVersions, list);
+  const support = list[item];
+  if (item.startsWith("transform-")) {
+    const proposalName = `proposal-${item.slice(10)}`;
+    if (proposalName === "proposal-dynamic-import" || hasOwnProperty.call(compatData, proposalName)) {
+      item = proposalName;
+    }
+  }
+  if (!support) {
+    console.log(`  ${item}`);
+    return;
+  }
+  let formattedTargets = `{`;
+  let first = true;
+  for (const target of Object.keys(filteredList)) {
+    if (!first) formattedTargets += `,`;
+    first = false;
+    formattedTargets += ` ${target}`;
+    if (support[target]) formattedTargets += ` < ${support[target]}`;
+  }
+  formattedTargets += ` }`;
+  console.log(`  ${item} ${formattedTargets}`);
+};
+exports.logPlugin = logPlugin;
+
+//# sourceMappingURL=debug.js.map
Index: frontend/node_modules/@babel/preset-env/lib/debug.js.map
===================================================================
--- frontend/node_modules/@babel/preset-env/lib/debug.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/lib/debug.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+{"version":3,"names":["_helperCompilationTargets","require","compatData","logPlugin","item","targetVersions","list","filteredList","getInclusionReasons","support","startsWith","proposalName","slice","hasOwnProperty","call","console","log","formattedTargets","first","target","Object","keys","exports"],"sources":["../src/debug.ts"],"sourcesContent":["import {\n  getInclusionReasons,\n  type Targets,\n  type Target,\n} from \"@babel/helper-compilation-targets\";\nimport compatData from \"@babel/compat-data/plugins\" with { type: \"json\" };\n\n// Outputs a message that shows which target(s) caused an item to be included:\n// transform-foo { \"edge\":\"13\", \"firefox\":\"49\", \"ie\":\"10\" }\nexport const logPlugin = (\n  item: string,\n  targetVersions: Targets,\n  list: Record<string, Targets>,\n) => {\n  const filteredList = getInclusionReasons(item, targetVersions, list);\n\n  const support = list[item];\n\n  if (!process.env.BABEL_8_BREAKING) {\n    // It's needed to keep outputting proposal- in the debug log.\n    if (item.startsWith(\"transform-\")) {\n      const proposalName = `proposal-${item.slice(10)}`;\n      if (\n        proposalName === \"proposal-dynamic-import\" ||\n        Object.hasOwn(compatData, proposalName)\n      ) {\n        item = proposalName;\n      }\n    }\n  }\n\n  if (!support) {\n    console.log(`  ${item}`);\n    return;\n  }\n\n  let formattedTargets = `{`;\n  let first = true;\n  for (const target of Object.keys(filteredList) as Target[]) {\n    if (!first) formattedTargets += `,`;\n    first = false;\n    formattedTargets += ` ${target}`;\n    if (support[target]) formattedTargets += ` < ${support[target]}`;\n  }\n  formattedTargets += ` }`;\n\n  console.log(`  ${item} ${formattedTargets}`);\n};\n"],"mappings":";;;;;;AAAA,IAAAA,yBAAA,GAAAC,OAAA;AAI2C,MACpCC,UAAU,GAAAD,OAAA,CAAM,4BAA4B;AAI5C,MAAME,SAAS,GAAGA,CACvBC,IAAY,EACZC,cAAuB,EACvBC,IAA6B,KAC1B;EACH,MAAMC,YAAY,GAAG,IAAAC,6CAAmB,EAACJ,IAAI,EAAEC,cAAc,EAAEC,IAAI,CAAC;EAEpE,MAAMG,OAAO,GAAGH,IAAI,CAACF,IAAI,CAAC;EAIxB,IAAIA,IAAI,CAACM,UAAU,CAAC,YAAY,CAAC,EAAE;IACjC,MAAMC,YAAY,GAAG,YAAYP,IAAI,CAACQ,KAAK,CAAC,EAAE,CAAC,EAAE;IACjD,IACED,YAAY,KAAK,yBAAyB,IAC1CE,cAAA,CAAAC,IAAA,CAAcZ,UAAU,EAAES,YAAY,CAAC,EACvC;MACAP,IAAI,GAAGO,YAAY;IACrB;EACF;EAGF,IAAI,CAACF,OAAO,EAAE;IACZM,OAAO,CAACC,GAAG,CAAC,KAAKZ,IAAI,EAAE,CAAC;IACxB;EACF;EAEA,IAAIa,gBAAgB,GAAG,GAAG;EAC1B,IAAIC,KAAK,GAAG,IAAI;EAChB,KAAK,MAAMC,MAAM,IAAIC,MAAM,CAACC,IAAI,CAACd,YAAY,CAAC,EAAc;IAC1D,IAAI,CAACW,KAAK,EAAED,gBAAgB,IAAI,GAAG;IACnCC,KAAK,GAAG,KAAK;IACbD,gBAAgB,IAAI,IAAIE,MAAM,EAAE;IAChC,IAAIV,OAAO,CAACU,MAAM,CAAC,EAAEF,gBAAgB,IAAI,MAAMR,OAAO,CAACU,MAAM,CAAC,EAAE;EAClE;EACAF,gBAAgB,IAAI,IAAI;EAExBF,OAAO,CAACC,GAAG,CAAC,KAAKZ,IAAI,IAAIa,gBAAgB,EAAE,CAAC;AAC9C,CAAC;AAACK,OAAA,CAAAnB,SAAA,GAAAA,SAAA","ignoreList":[]}
Index: frontend/node_modules/@babel/preset-env/lib/filter-items.js
===================================================================
--- frontend/node_modules/@babel/preset-env/lib/filter-items.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/lib/filter-items.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,32 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.addProposalSyntaxPlugins = addProposalSyntaxPlugins;
+exports.removeUnnecessaryItems = removeUnnecessaryItems;
+exports.removeUnsupportedItems = removeUnsupportedItems;
+var _semver = require("semver");
+var _availablePlugins = require("./available-plugins.js");
+function addProposalSyntaxPlugins(items, proposalSyntaxPlugins) {
+  proposalSyntaxPlugins.forEach(plugin => {
+    items.add(plugin);
+  });
+}
+function removeUnnecessaryItems(items, overlapping) {
+  items.forEach(item => {
+    var _overlapping$item;
+    (_overlapping$item = overlapping[item]) == null || _overlapping$item.forEach(name => items.delete(name));
+  });
+}
+function removeUnsupportedItems(items, babelVersion) {
+  items.forEach(item => {
+    if (hasOwnProperty.call(_availablePlugins.minVersions, item) && _semver.lt(babelVersion, _availablePlugins.minVersions[item])) {
+      items.delete(item);
+    } else if (babelVersion.startsWith("8") && _availablePlugins.legacyBabel7SyntaxPlugins.has(item)) {
+      items.delete(item);
+    }
+  });
+}
+
+//# sourceMappingURL=filter-items.js.map
Index: frontend/node_modules/@babel/preset-env/lib/filter-items.js.map
===================================================================
--- frontend/node_modules/@babel/preset-env/lib/filter-items.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/lib/filter-items.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+{"version":3,"names":["_semver","require","_availablePlugins","addProposalSyntaxPlugins","items","proposalSyntaxPlugins","forEach","plugin","add","removeUnnecessaryItems","overlapping","item","_overlapping$item","name","delete","removeUnsupportedItems","babelVersion","hasOwnProperty","call","minVersions","semver","lt","startsWith","legacyBabel7SyntaxPlugins","has"],"sources":["../src/filter-items.ts"],"sourcesContent":["import semver from \"semver\";\nimport { minVersions, legacyBabel7SyntaxPlugins } from \"./available-plugins.ts\";\n\nexport function addProposalSyntaxPlugins(\n  items: Set<string>,\n  proposalSyntaxPlugins: readonly string[],\n) {\n  proposalSyntaxPlugins.forEach(plugin => {\n    items.add(plugin);\n  });\n}\nexport function removeUnnecessaryItems(\n  items: Set<string>,\n  overlapping: Record<string, string[]>,\n) {\n  items.forEach(item => {\n    overlapping[item]?.forEach(name => items.delete(name));\n  });\n}\nexport function removeUnsupportedItems(\n  items: Set<string>,\n  babelVersion: string,\n) {\n  items.forEach(item => {\n    if (\n      Object.hasOwn(minVersions, item) &&\n      semver.lt(\n        babelVersion,\n        // @ts-expect-error we have checked minVersions[item] in has call\n        minVersions[item],\n      )\n    ) {\n      items.delete(item);\n    } else if (\n      !process.env.BABEL_8_BREAKING &&\n      babelVersion.startsWith(\"8\") &&\n      legacyBabel7SyntaxPlugins.has(item)\n    ) {\n      items.delete(item);\n    }\n  });\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AAEO,SAASE,wBAAwBA,CACtCC,KAAkB,EAClBC,qBAAwC,EACxC;EACAA,qBAAqB,CAACC,OAAO,CAACC,MAAM,IAAI;IACtCH,KAAK,CAACI,GAAG,CAACD,MAAM,CAAC;EACnB,CAAC,CAAC;AACJ;AACO,SAASE,sBAAsBA,CACpCL,KAAkB,EAClBM,WAAqC,EACrC;EACAN,KAAK,CAACE,OAAO,CAACK,IAAI,IAAI;IAAA,IAAAC,iBAAA;IACpB,CAAAA,iBAAA,GAAAF,WAAW,CAACC,IAAI,CAAC,aAAjBC,iBAAA,CAAmBN,OAAO,CAACO,IAAI,IAAIT,KAAK,CAACU,MAAM,CAACD,IAAI,CAAC,CAAC;EACxD,CAAC,CAAC;AACJ;AACO,SAASE,sBAAsBA,CACpCX,KAAkB,EAClBY,YAAoB,EACpB;EACAZ,KAAK,CAACE,OAAO,CAACK,IAAI,IAAI;IACpB,IACEM,cAAA,CAAAC,IAAA,CAAcC,6BAAW,EAAER,IAAI,CAAC,IAChCS,OAAM,CAACC,EAAE,CACPL,YAAY,EAEZG,6BAAW,CAACR,IAAI,CAClB,CAAC,EACD;MACAP,KAAK,CAACU,MAAM,CAACH,IAAI,CAAC;IACpB,CAAC,MAAM,IAELK,YAAY,CAACM,UAAU,CAAC,GAAG,CAAC,IAC5BC,2CAAyB,CAACC,GAAG,CAACb,IAAI,CAAC,EACnC;MACAP,KAAK,CAACU,MAAM,CAACH,IAAI,CAAC;IACpB;EACF,CAAC,CAAC;AACJ","ignoreList":[]}
Index: frontend/node_modules/@babel/preset-env/lib/index.js
===================================================================
--- frontend/node_modules/@babel/preset-env/lib/index.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/lib/index.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,321 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = void 0;
+exports.isPluginRequired = isPluginRequired;
+exports.transformIncludesAndExcludes = void 0;
+var _semver = require("semver");
+var _debug = require("./debug.js");
+var _filterItems = require("./filter-items.js");
+var _moduleTransformations = require("./module-transformations.js");
+var _normalizeOptions = require("./normalize-options.js");
+var _shippedProposals = require("./shipped-proposals.js");
+var _pluginsCompatData = require("./plugins-compat-data.js");
+var _babelPluginPolyfillCorejs = require("babel-plugin-polyfill-corejs3");
+var _babel7Plugins = require("./polyfills/babel-7-plugins.cjs");
+var _helperCompilationTargets = require("@babel/helper-compilation-targets");
+var _availablePlugins = require("./available-plugins.js");
+var _helperPluginUtils = require("@babel/helper-plugin-utils");
+const pluginCoreJS3 = _babelPluginPolyfillCorejs.default || _babelPluginPolyfillCorejs;
+function isPluginRequired(targets, support) {
+  return (0, _helperCompilationTargets.isRequired)("fake-name", targets, {
+    compatData: {
+      "fake-name": support
+    }
+  });
+}
+function filterStageFromList(list, stageList) {
+  return Object.keys(list).reduce((result, item) => {
+    if (!stageList.has(item)) {
+      result[item] = list[item];
+    }
+    return result;
+  }, {});
+}
+const pluginsListWithProposals = Object.assign({}, _pluginsCompatData.plugins, _pluginsCompatData.pluginsBugfixes);
+const pluginsListWithoutProposals = filterStageFromList(pluginsListWithProposals, _shippedProposals.proposalPlugins);
+var pluginsListNoBugfixesWithProposals = _pluginsCompatData.plugins;
+var pluginsListNoBugfixesWithoutProposals = filterStageFromList(_pluginsCompatData.plugins, _shippedProposals.proposalPlugins);
+const getPlugin = pluginName => {
+  const plugin = _availablePlugins.default[pluginName]();
+  if (!plugin) {
+    throw new Error(`Could not find plugin "${pluginName}". Ensure there is an entry in ./available-plugins.js for it.`);
+  }
+  return plugin;
+};
+const transformIncludesAndExcludes = opts => {
+  return opts.reduce((result, opt) => {
+    const target = /^(?:es|es6|es7|esnext|web)\./.test(opt) ? "builtIns" : "plugins";
+    result[target].add(opt);
+    return result;
+  }, {
+    all: opts,
+    plugins: new Set(),
+    builtIns: new Set()
+  });
+};
+exports.transformIncludesAndExcludes = transformIncludesAndExcludes;
+function getSpecialModulesPluginNames(modules, shouldTransformDynamicImport, babelVersion) {
+  const modulesPluginNames = [];
+  if (modules) {
+    modulesPluginNames.push(_moduleTransformations.default[modules]);
+  }
+  if (shouldTransformDynamicImport) {
+    if (modules && modules !== "umd") {
+      modulesPluginNames.push("transform-dynamic-import");
+    } else {
+      console.warn("Dynamic import can only be transformed when transforming ES" + " modules to AMD, CommonJS or SystemJS.");
+    }
+  }
+  if (!babelVersion.startsWith("8")) {
+    if (!shouldTransformDynamicImport) {
+      modulesPluginNames.push("syntax-dynamic-import");
+    }
+    modulesPluginNames.push("syntax-top-level-await");
+    modulesPluginNames.push("syntax-import-meta");
+  }
+  return modulesPluginNames;
+}
+const getCoreJSOptions = ({
+  useBuiltIns,
+  corejs,
+  polyfillTargets,
+  include,
+  exclude,
+  proposals,
+  shippedProposals,
+  debug
+}) => ({
+  method: `${useBuiltIns}-global`,
+  version: corejs ? corejs.toString() : undefined,
+  targets: polyfillTargets,
+  include,
+  exclude,
+  proposals,
+  shippedProposals,
+  debug,
+  "#__secret_key__@babel/preset-env__compatibility": {
+    noRuntimeName: true
+  }
+});
+var getPolyfillPlugins = ({
+  useBuiltIns,
+  corejs,
+  polyfillTargets,
+  include,
+  exclude,
+  proposals,
+  shippedProposals,
+  regenerator,
+  debug
+}) => {
+  const polyfillPlugins = [];
+  if (useBuiltIns === "usage" || useBuiltIns === "entry") {
+    const pluginOptions = getCoreJSOptions({
+      useBuiltIns,
+      corejs,
+      polyfillTargets,
+      include,
+      exclude,
+      proposals,
+      shippedProposals,
+      debug
+    });
+    if (corejs) {
+      if (useBuiltIns === "usage") {
+        if (corejs.major === 2) {
+          polyfillPlugins.push([_babel7Plugins.pluginCoreJS2, pluginOptions], [_babel7Plugins.legacyBabelPolyfillPlugin, {
+            usage: true
+          }]);
+        } else {
+          polyfillPlugins.push([pluginCoreJS3, pluginOptions], [_babel7Plugins.legacyBabelPolyfillPlugin, {
+            usage: true,
+            deprecated: true
+          }]);
+        }
+        if (regenerator) {
+          polyfillPlugins.push([_babel7Plugins.pluginRegenerator, {
+            method: "usage-global",
+            debug
+          }]);
+        }
+      } else {
+        if (corejs.major === 2) {
+          polyfillPlugins.push([_babel7Plugins.legacyBabelPolyfillPlugin, {
+            regenerator
+          }], [_babel7Plugins.pluginCoreJS2, pluginOptions]);
+        } else {
+          polyfillPlugins.push([pluginCoreJS3, pluginOptions], [_babel7Plugins.legacyBabelPolyfillPlugin, {
+            deprecated: true
+          }]);
+          if (!regenerator) {
+            polyfillPlugins.push([_babel7Plugins.removeRegeneratorEntryPlugin, pluginOptions]);
+          }
+        }
+      }
+    }
+  }
+  return polyfillPlugins;
+};
+exports.getPolyfillPlugins = getPolyfillPlugins;
+function getLocalTargets(optionsTargets, ignoreBrowserslistConfig, configPath, browserslistEnv, api) {
+  if (optionsTargets != null && optionsTargets.esmodules && optionsTargets.browsers) {
+    console.warn(`
+@babel/preset-env: esmodules and browsers targets have been specified together.
+\`browsers\` target, \`${optionsTargets.browsers.toString()}\` will be ignored.
+`);
+  }
+  return (0, _helperCompilationTargets.default)(optionsTargets, {
+    ignoreBrowserslistConfig,
+    configPath,
+    browserslistEnv,
+    onBrowserslistConfigFound(config) {
+      api.addExternalDependency(config);
+    }
+  });
+}
+function supportsStaticESM(caller) {
+  return !!(caller != null && caller.supportsStaticESM);
+}
+function supportsDynamicImport(caller) {
+  return !!(caller != null && caller.supportsDynamicImport);
+}
+function supportsExportNamespaceFrom(caller) {
+  return !!(caller != null && caller.supportsExportNamespaceFrom);
+}
+var _default = exports.default = (0, _helperPluginUtils.declarePreset)((api, opts) => {
+  api.assertVersion(7);
+  const babelTargets = api.targets();
+  const {
+    configPath,
+    debug,
+    exclude: optionsExclude,
+    forceAllTransforms,
+    ignoreBrowserslistConfig,
+    include: optionsInclude,
+    modules: optionsModules,
+    shippedProposals,
+    targets: optionsTargets,
+    useBuiltIns,
+    corejs: {
+      version: corejs,
+      proposals
+    },
+    browserslistEnv
+  } = (0, _normalizeOptions.default)(opts);
+  var {
+    loose,
+    spec = false,
+    bugfixes = false
+  } = opts;
+  let targets = babelTargets;
+  if (_semver.lt(api.version, "7.13.0") || opts.targets || opts.configPath || opts.browserslistEnv || opts.ignoreBrowserslistConfig) {
+    var hasUglifyTarget = false;
+    if (optionsTargets != null && optionsTargets.uglify) {
+      hasUglifyTarget = true;
+      delete optionsTargets.uglify;
+      console.warn(`
+The uglify target has been deprecated. Set the top level
+option \`forceAllTransforms: true\` instead.
+`);
+    }
+    targets = getLocalTargets(optionsTargets, ignoreBrowserslistConfig, configPath, browserslistEnv, api);
+  }
+  const transformTargets = forceAllTransforms || hasUglifyTarget ? {} : targets;
+  const include = transformIncludesAndExcludes(optionsInclude);
+  const exclude = transformIncludesAndExcludes(optionsExclude);
+  const compatData = bugfixes ? shippedProposals ? pluginsListWithProposals : pluginsListWithoutProposals : shippedProposals ? pluginsListNoBugfixesWithProposals : pluginsListNoBugfixesWithoutProposals;
+  const modules = optionsModules === "auto" ? api.caller(supportsStaticESM) ? false : "commonjs" : optionsModules;
+  const shouldTransformDynamicImport = optionsModules === "auto" ? !api.caller(supportsDynamicImport) : !!modules;
+  if (!exclude.plugins.has("transform-export-namespace-from") && (optionsModules === "auto" ? !api.caller(supportsExportNamespaceFrom) : !!modules)) {
+    include.plugins.add("transform-export-namespace-from");
+  }
+  const pluginNames = (0, _helperCompilationTargets.filterItems)(compatData, include.plugins, exclude.plugins, transformTargets, getSpecialModulesPluginNames(modules, shouldTransformDynamicImport, api.version), !loose ? undefined : ["transform-typeof-symbol"], _shippedProposals.pluginSyntaxMap);
+  if (shippedProposals) {
+    (0, _filterItems.addProposalSyntaxPlugins)(pluginNames, _shippedProposals.proposalSyntaxPlugins);
+  }
+  (0, _filterItems.removeUnsupportedItems)(pluginNames, api.version);
+  (0, _filterItems.removeUnnecessaryItems)(pluginNames, _pluginsCompatData.overlappingPlugins);
+  const polyfillPlugins = getPolyfillPlugins({
+    useBuiltIns,
+    corejs,
+    polyfillTargets: targets,
+    include: include.builtIns,
+    exclude: exclude.builtIns,
+    proposals,
+    shippedProposals,
+    regenerator: pluginNames.has("transform-regenerator"),
+    debug
+  });
+  const pluginUseBuiltIns = useBuiltIns !== false;
+  const plugins = Array.from(pluginNames).map(pluginName => {
+    if (pluginName === "transform-class-properties" || pluginName === "transform-private-methods" || pluginName === "transform-private-property-in-object") {
+      return [getPlugin(pluginName), {
+        loose: loose ? "#__internal__@babel/preset-env__prefer-true-but-false-is-ok-if-it-prevents-an-error" : "#__internal__@babel/preset-env__prefer-false-but-true-is-ok-if-it-prevents-an-error"
+      }];
+    }
+    if (pluginName === "syntax-import-attributes") {
+      return [getPlugin(pluginName), {
+        deprecatedAssertSyntax: true
+      }];
+    }
+    return [getPlugin(pluginName), {
+      spec,
+      loose,
+      useBuiltIns: pluginUseBuiltIns
+    }];
+  }).concat(polyfillPlugins);
+  if (debug) {
+    console.log("@babel/preset-env: `DEBUG` option");
+    console.log("\nUsing targets:");
+    console.log(JSON.stringify((0, _helperCompilationTargets.prettifyTargets)(targets), null, 2));
+    console.log(`\nUsing modules transform: ${optionsModules.toString()}`);
+    console.log("\nUsing plugins:");
+    pluginNames.forEach(pluginName => {
+      (0, _debug.logPlugin)(pluginName, targets, compatData);
+    });
+    if (!useBuiltIns) {
+      console.log("\nUsing polyfills: No polyfills were added, since the `useBuiltIns` option was not set.");
+    }
+  }
+  return {
+    plugins
+  };
+});
+exports.getModulesPluginNames = ({
+  modules,
+  transformations,
+  shouldTransformESM,
+  shouldTransformDynamicImport,
+  shouldTransformExportNamespaceFrom
+}) => {
+  const modulesPluginNames = [];
+  if (modules !== false && transformations[modules]) {
+    if (shouldTransformESM) {
+      modulesPluginNames.push(transformations[modules]);
+    }
+    if (shouldTransformDynamicImport) {
+      if (shouldTransformESM && modules !== "umd") {
+        modulesPluginNames.push("transform-dynamic-import");
+      } else {
+        console.warn("Dynamic import can only be transformed when transforming ES" + " modules to AMD, CommonJS or SystemJS.");
+      }
+    }
+  }
+  if (shouldTransformExportNamespaceFrom) {
+    modulesPluginNames.push("transform-export-namespace-from");
+  }
+  if (!shouldTransformDynamicImport) {
+    modulesPluginNames.push("syntax-dynamic-import");
+  }
+  if (!shouldTransformExportNamespaceFrom) {
+    modulesPluginNames.push("syntax-export-namespace-from");
+  }
+  modulesPluginNames.push("syntax-top-level-await");
+  modulesPluginNames.push("syntax-import-meta");
+  return modulesPluginNames;
+};
+
+//# sourceMappingURL=index.js.map
Index: frontend/node_modules/@babel/preset-env/lib/index.js.map
===================================================================
--- frontend/node_modules/@babel/preset-env/lib/index.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/lib/index.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+{"version":3,"names":["_semver","require","_debug","_filterItems","_moduleTransformations","_normalizeOptions","_shippedProposals","_pluginsCompatData","_babelPluginPolyfillCorejs","_babel7Plugins","_helperCompilationTargets","_availablePlugins","_helperPluginUtils","pluginCoreJS3","_pluginCoreJS3","default","isPluginRequired","targets","support","isRequired","compatData","filterStageFromList","list","stageList","Object","keys","reduce","result","item","has","pluginsListWithProposals","assign","pluginsList","pluginsBugfixesList","pluginsListWithoutProposals","proposalPlugins","pluginsListNoBugfixesWithProposals","pluginsListNoBugfixesWithoutProposals","getPlugin","pluginName","plugin","availablePlugins","Error","transformIncludesAndExcludes","opts","opt","target","test","add","all","plugins","Set","builtIns","exports","getSpecialModulesPluginNames","modules","shouldTransformDynamicImport","babelVersion","modulesPluginNames","push","moduleTransformations","console","warn","startsWith","getCoreJSOptions","useBuiltIns","corejs","polyfillTargets","include","exclude","proposals","shippedProposals","debug","method","version","toString","undefined","noRuntimeName","getPolyfillPlugins","regenerator","polyfillPlugins","pluginOptions","major","babel7","pluginCoreJS2","legacyBabelPolyfillPlugin","usage","deprecated","pluginRegenerator","removeRegeneratorEntryPlugin","getLocalTargets","optionsTargets","ignoreBrowserslistConfig","configPath","browserslistEnv","api","esmodules","browsers","getTargets","onBrowserslistConfigFound","config","addExternalDependency","supportsStaticESM","caller","supportsDynamicImport","supportsExportNamespaceFrom","_default","declarePreset","assertVersion","babelTargets","optionsExclude","forceAllTransforms","optionsInclude","optionsModules","normalizeOptions","loose","spec","bugfixes","semver","lt","hasUglifyTarget","uglify","transformTargets","pluginNames","filterItems","pluginSyntaxMap","addProposalSyntaxPlugins","proposalSyntaxPlugins","removeUnsupportedItems","removeUnnecessaryItems","overlappingPlugins","pluginUseBuiltIns","Array","from","map","deprecatedAssertSyntax","concat","log","JSON","stringify","prettifyTargets","forEach","logPlugin","getModulesPluginNames","transformations","shouldTransformESM","shouldTransformExportNamespaceFrom"],"sources":["../src/index.ts"],"sourcesContent":["import semver, { type SemVer } from \"semver\";\nimport { logPlugin } from \"./debug.ts\";\nimport {\n  addProposalSyntaxPlugins,\n  removeUnnecessaryItems,\n  removeUnsupportedItems,\n} from \"./filter-items.ts\";\nimport moduleTransformations from \"./module-transformations.ts\";\nimport normalizeOptions from \"./normalize-options.ts\";\nimport {\n  pluginSyntaxMap,\n  proposalPlugins,\n  proposalSyntaxPlugins,\n} from \"./shipped-proposals.ts\";\nimport {\n  plugins as pluginsList,\n  pluginsBugfixes as pluginsBugfixesList,\n  overlappingPlugins,\n} from \"./plugins-compat-data.ts\";\n\nimport type { CallerMetadata, PluginItem, PresetAPI } from \"@babel/core\";\n\nimport _pluginCoreJS3 from \"babel-plugin-polyfill-corejs3\";\n// TODO(Babel 8): Just use the default import\nconst pluginCoreJS3 = (_pluginCoreJS3.default ||\n  _pluginCoreJS3) as typeof _pluginCoreJS3.default;\n\nimport babel7 from \"./polyfills/babel-7-plugins.cjs\" with { if: \"!process.env.BABEL_8_BREAKING\" };\n\nimport getTargets, {\n  prettifyTargets,\n  filterItems,\n  isRequired,\n} from \"@babel/helper-compilation-targets\";\nimport type { Targets, InputTargets } from \"@babel/helper-compilation-targets\";\nimport availablePlugins from \"./available-plugins.ts\";\nimport { declarePreset } from \"@babel/helper-plugin-utils\";\n\nimport type { BuiltInsOption, ModuleOption, Options } from \"./types.d.ts\";\nexport type { Options };\n\n// TODO: Remove in Babel 8\nexport function isPluginRequired(targets: Targets, support: Targets) {\n  return isRequired(\"fake-name\", targets, {\n    compatData: { \"fake-name\": support },\n  });\n}\n\nfunction filterStageFromList(\n  list: Record<string, Targets>,\n  stageList: Set<string>,\n) {\n  return Object.keys(list).reduce((result, item) => {\n    if (!stageList.has(item)) {\n      // @ts-expect-error todo: refine result types\n      result[item] = list[item];\n    }\n\n    return result;\n  }, {});\n}\n\nconst pluginsListWithProposals = Object.assign(\n  {},\n  pluginsList,\n  pluginsBugfixesList,\n);\nconst pluginsListWithoutProposals = filterStageFromList(\n  pluginsListWithProposals,\n  proposalPlugins,\n);\n\nif (!process.env.BABEL_8_BREAKING) {\n  // eslint-disable-next-line no-var\n  var pluginsListNoBugfixesWithProposals = pluginsList;\n  // eslint-disable-next-line no-var\n  var pluginsListNoBugfixesWithoutProposals = filterStageFromList(\n    pluginsList,\n    proposalPlugins,\n  );\n}\n\nconst getPlugin = (pluginName: string) => {\n  const plugin =\n    // @ts-expect-error plugin name is constructed from available plugin list\n    availablePlugins[pluginName]();\n\n  if (!plugin) {\n    throw new Error(\n      `Could not find plugin \"${pluginName}\". Ensure there is an entry in ./available-plugins.js for it.`,\n    );\n  }\n\n  return plugin;\n};\n\nexport const transformIncludesAndExcludes = (opts: string[]): any => {\n  return opts.reduce(\n    (result, opt) => {\n      const target = /^(?:es|es6|es7|esnext|web)\\./.test(opt)\n        ? \"builtIns\"\n        : \"plugins\";\n      result[target].add(opt);\n      return result;\n    },\n    {\n      all: opts,\n      plugins: new Set(),\n      builtIns: new Set(),\n    },\n  );\n};\n\nfunction getSpecialModulesPluginNames(\n  modules: Exclude<ModuleOption, \"auto\">,\n  shouldTransformDynamicImport: boolean,\n  babelVersion: string,\n) {\n  const modulesPluginNames = [];\n  if (modules) {\n    modulesPluginNames.push(moduleTransformations[modules]);\n  }\n\n  if (shouldTransformDynamicImport) {\n    if (modules && modules !== \"umd\") {\n      modulesPluginNames.push(\"transform-dynamic-import\");\n    } else {\n      console.warn(\n        \"Dynamic import can only be transformed when transforming ES\" +\n          \" modules to AMD, CommonJS or SystemJS.\",\n      );\n    }\n  }\n\n  if (!process.env.BABEL_8_BREAKING && !babelVersion.startsWith(\"8\")) {\n    // Enable module-related syntax plugins for older Babel versions\n    if (!shouldTransformDynamicImport) {\n      modulesPluginNames.push(\"syntax-dynamic-import\");\n    }\n    modulesPluginNames.push(\"syntax-top-level-await\");\n    modulesPluginNames.push(\"syntax-import-meta\");\n  }\n\n  return modulesPluginNames;\n}\n\nconst getCoreJSOptions = ({\n  useBuiltIns,\n  corejs,\n  polyfillTargets,\n  include,\n  exclude,\n  proposals,\n  shippedProposals,\n  debug,\n}: {\n  useBuiltIns: BuiltInsOption;\n  corejs: SemVer | null | false;\n  polyfillTargets: Targets;\n  include: Set<string>;\n  exclude: Set<string>;\n  proposals: boolean;\n  shippedProposals: boolean;\n  debug: boolean;\n}) => ({\n  method: `${useBuiltIns}-global`,\n  version: corejs ? corejs.toString() : undefined,\n  targets: polyfillTargets,\n  include,\n  exclude,\n  proposals,\n  shippedProposals,\n  debug,\n  \"#__secret_key__@babel/preset-env__compatibility\": {\n    noRuntimeName: true,\n  },\n});\n\nif (!process.env.BABEL_8_BREAKING) {\n  // eslint-disable-next-line no-var\n  var getPolyfillPlugins = ({\n    useBuiltIns,\n    corejs,\n    polyfillTargets,\n    include,\n    exclude,\n    proposals,\n    shippedProposals,\n    regenerator,\n    debug,\n  }: {\n    useBuiltIns: BuiltInsOption;\n    corejs: SemVer | null | false;\n    polyfillTargets: Targets;\n    include: Set<string>;\n    exclude: Set<string>;\n    proposals: boolean;\n    shippedProposals: boolean;\n    regenerator: boolean;\n    debug: boolean;\n  }) => {\n    const polyfillPlugins: PluginItem[] = [];\n    if (useBuiltIns === \"usage\" || useBuiltIns === \"entry\") {\n      const pluginOptions = getCoreJSOptions({\n        useBuiltIns,\n        corejs,\n        polyfillTargets,\n        include,\n        exclude,\n        proposals,\n        shippedProposals,\n        debug,\n      });\n\n      if (corejs) {\n        if (process.env.BABEL_8_BREAKING) {\n          polyfillPlugins.push([pluginCoreJS3, pluginOptions]);\n        } else {\n          if (useBuiltIns === \"usage\") {\n            if (corejs.major === 2) {\n              polyfillPlugins.push(\n                [babel7.pluginCoreJS2, pluginOptions],\n                [babel7.legacyBabelPolyfillPlugin, { usage: true }],\n              );\n            } else {\n              polyfillPlugins.push(\n                [pluginCoreJS3, pluginOptions],\n                [\n                  babel7.legacyBabelPolyfillPlugin,\n                  { usage: true, deprecated: true },\n                ],\n              );\n            }\n            if (regenerator) {\n              polyfillPlugins.push([\n                babel7.pluginRegenerator,\n                { method: \"usage-global\", debug },\n              ]);\n            }\n          } else {\n            if (corejs.major === 2) {\n              polyfillPlugins.push(\n                [babel7.legacyBabelPolyfillPlugin, { regenerator }],\n                [babel7.pluginCoreJS2, pluginOptions],\n              );\n            } else {\n              polyfillPlugins.push(\n                [pluginCoreJS3, pluginOptions],\n                [babel7.legacyBabelPolyfillPlugin, { deprecated: true }],\n              );\n              if (!regenerator) {\n                polyfillPlugins.push([\n                  babel7.removeRegeneratorEntryPlugin,\n                  pluginOptions,\n                ]);\n              }\n            }\n          }\n        }\n      }\n    }\n    return polyfillPlugins;\n  };\n\n  if (!USE_ESM) {\n    // eslint-disable-next-line no-restricted-globals\n    exports.getPolyfillPlugins = getPolyfillPlugins;\n  }\n}\n\nfunction getLocalTargets(\n  optionsTargets: Options[\"targets\"],\n  ignoreBrowserslistConfig: boolean,\n  configPath: string,\n  browserslistEnv: string,\n  api: PresetAPI,\n) {\n  if (optionsTargets?.esmodules && optionsTargets.browsers) {\n    console.warn(`\n@babel/preset-env: esmodules and browsers targets have been specified together.\n\\`browsers\\` target, \\`${optionsTargets.browsers.toString()}\\` will be ignored.\n`);\n  }\n\n  return getTargets(optionsTargets as InputTargets, {\n    ignoreBrowserslistConfig,\n    configPath,\n    browserslistEnv,\n    onBrowserslistConfigFound(config) {\n      api.addExternalDependency(config);\n    },\n  });\n}\n\nfunction supportsStaticESM(caller: CallerMetadata | undefined) {\n  // TODO(Babel 8): Fallback to true\n  return !!caller?.supportsStaticESM;\n}\n\nfunction supportsDynamicImport(caller: CallerMetadata | undefined) {\n  // TODO(Babel 8): Fallback to true\n  return !!caller?.supportsDynamicImport;\n}\n\nfunction supportsExportNamespaceFrom(caller: CallerMetadata | undefined) {\n  // TODO(Babel 8): Fallback to null\n  return !!caller?.supportsExportNamespaceFrom;\n}\n\nexport default declarePreset((api, opts: Options) => {\n  api.assertVersion(REQUIRED_VERSION(7));\n\n  const babelTargets = api.targets();\n\n  if (process.env.BABEL_8_BREAKING && (\"loose\" in opts || \"spec\" in opts)) {\n    throw new Error(\n      \"@babel/preset-env: The 'loose' and 'spec' options have been removed, \" +\n        \"and you should configure granular compiler assumptions instead. See \" +\n        \"https://babeljs.io/assumptions for more information.\",\n    );\n  }\n\n  const {\n    configPath,\n    debug,\n    exclude: optionsExclude,\n    forceAllTransforms,\n    ignoreBrowserslistConfig,\n    include: optionsInclude,\n    modules: optionsModules,\n    shippedProposals,\n    targets: optionsTargets,\n    useBuiltIns,\n    corejs: { version: corejs, proposals },\n    browserslistEnv,\n  } = normalizeOptions(opts);\n\n  if (!process.env.BABEL_8_BREAKING) {\n    // eslint-disable-next-line no-var\n    var { loose, spec = false, bugfixes = false } = opts;\n  }\n\n  let targets = babelTargets;\n\n  if (\n    // @babel/core < 7.13.0 doesn't load targets (api.targets() always\n    // returns {} thanks to @babel/helper-plugin-utils), so we always want\n    // to fallback to the old targets behavior in this case.\n    semver.lt(api.version, \"7.13.0\") ||\n    // If any browserslist-related option is specified, fallback to the old\n    // behavior of not using the targets specified in the top-level options.\n    opts.targets ||\n    opts.configPath ||\n    opts.browserslistEnv ||\n    opts.ignoreBrowserslistConfig\n  ) {\n    if (!process.env.BABEL_8_BREAKING) {\n      // eslint-disable-next-line no-var\n      var hasUglifyTarget = false;\n\n      if (optionsTargets?.uglify) {\n        hasUglifyTarget = true;\n        delete optionsTargets.uglify;\n\n        console.warn(`\nThe uglify target has been deprecated. Set the top level\noption \\`forceAllTransforms: true\\` instead.\n`);\n      }\n    }\n\n    targets = getLocalTargets(\n      optionsTargets,\n      ignoreBrowserslistConfig,\n      configPath,\n      browserslistEnv,\n      api,\n    );\n  }\n\n  const transformTargets = (\n    process.env.BABEL_8_BREAKING\n      ? forceAllTransforms\n      : forceAllTransforms || hasUglifyTarget\n  )\n    ? ({} as Targets)\n    : targets;\n\n  const include = transformIncludesAndExcludes(optionsInclude);\n  const exclude = transformIncludesAndExcludes(optionsExclude);\n\n  const compatData =\n    process.env.BABEL_8_BREAKING || bugfixes\n      ? shippedProposals\n        ? pluginsListWithProposals\n        : pluginsListWithoutProposals\n      : shippedProposals\n        ? pluginsListNoBugfixesWithProposals\n        : pluginsListNoBugfixesWithoutProposals;\n  const modules =\n    optionsModules === \"auto\"\n      ? api.caller(supportsStaticESM)\n        ? false\n        : \"commonjs\"\n      : optionsModules;\n  const shouldTransformDynamicImport =\n    optionsModules === \"auto\" ? !api.caller(supportsDynamicImport) : !!modules;\n\n  // If the caller does not support export-namespace-from, we forcefully add\n  // the plugin to `includes`.\n  // TODO(Babel 8): stop doing this, similarly to how we don't do this for any\n  // other plugin. We can consider adding bundlers as targets in the future,\n  // but we should not have a one-off special case for this plugin.\n  if (\n    !exclude.plugins.has(\"transform-export-namespace-from\") &&\n    (optionsModules === \"auto\"\n      ? !api.caller(supportsExportNamespaceFrom)\n      : !!modules)\n  ) {\n    include.plugins.add(\"transform-export-namespace-from\");\n  }\n\n  const pluginNames = filterItems(\n    compatData,\n    include.plugins,\n    exclude.plugins,\n    transformTargets,\n    getSpecialModulesPluginNames(\n      modules,\n      shouldTransformDynamicImport,\n      api.version,\n    ),\n    process.env.BABEL_8_BREAKING || !loose\n      ? undefined\n      : [\"transform-typeof-symbol\"],\n    pluginSyntaxMap,\n  );\n  if (shippedProposals) {\n    addProposalSyntaxPlugins(pluginNames, proposalSyntaxPlugins);\n  }\n  removeUnsupportedItems(pluginNames, api.version);\n  removeUnnecessaryItems(pluginNames, overlappingPlugins);\n\n  const polyfillPlugins: PluginItem[] = process.env.BABEL_8_BREAKING\n    ? useBuiltIns\n      ? [\n          [\n            pluginCoreJS3,\n            getCoreJSOptions({\n              useBuiltIns,\n              corejs,\n              polyfillTargets: targets,\n              include: include.builtIns,\n              exclude: exclude.builtIns,\n              proposals,\n              shippedProposals,\n              debug,\n            }),\n          ],\n        ]\n      : []\n    : getPolyfillPlugins({\n        useBuiltIns,\n        corejs,\n        polyfillTargets: targets,\n        include: include.builtIns,\n        exclude: exclude.builtIns,\n        proposals,\n        shippedProposals,\n        regenerator: pluginNames.has(\"transform-regenerator\"),\n        debug,\n      });\n\n  const pluginUseBuiltIns = useBuiltIns !== false;\n  const plugins = Array.from(pluginNames)\n    .map((pluginName): PluginItem => {\n      if (\n        !process.env.BABEL_8_BREAKING &&\n        (pluginName === \"transform-class-properties\" ||\n          pluginName === \"transform-private-methods\" ||\n          pluginName === \"transform-private-property-in-object\")\n      ) {\n        return [\n          getPlugin(pluginName),\n          {\n            loose: loose\n              ? \"#__internal__@babel/preset-env__prefer-true-but-false-is-ok-if-it-prevents-an-error\"\n              : \"#__internal__@babel/preset-env__prefer-false-but-true-is-ok-if-it-prevents-an-error\",\n          },\n        ];\n      }\n      if (\n        !process.env.BABEL_8_BREAKING &&\n        pluginName === \"syntax-import-attributes\"\n      ) {\n        // For backward compatibility with the import-assertions plugin, we\n        // allow the deprecated `assert` keyword.\n        return [getPlugin(pluginName), { deprecatedAssertSyntax: true }];\n      }\n      return [\n        getPlugin(pluginName),\n        process.env.BABEL_8_BREAKING\n          ? { useBuiltIns: pluginUseBuiltIns }\n          : { spec, loose, useBuiltIns: pluginUseBuiltIns },\n      ];\n    })\n    .concat(polyfillPlugins);\n\n  if (debug) {\n    console.log(\"@babel/preset-env: `DEBUG` option\");\n    console.log(\"\\nUsing targets:\");\n    console.log(JSON.stringify(prettifyTargets(targets), null, 2));\n    console.log(`\\nUsing modules transform: ${optionsModules.toString()}`);\n    console.log(\"\\nUsing plugins:\");\n    pluginNames.forEach(pluginName => {\n      logPlugin(pluginName, targets, compatData);\n    });\n\n    if (!useBuiltIns) {\n      console.log(\n        \"\\nUsing polyfills: No polyfills were added, since the `useBuiltIns` option was not set.\",\n      );\n    }\n  }\n\n  return { plugins };\n});\n\nif (!process.env.BABEL_8_BREAKING && !USE_ESM) {\n  // eslint-disable-next-line no-restricted-globals\n  exports.getModulesPluginNames = ({\n    modules,\n    transformations,\n    shouldTransformESM,\n    shouldTransformDynamicImport,\n    shouldTransformExportNamespaceFrom,\n  }: {\n    modules: ModuleOption;\n    transformations: typeof import(\"./module-transformations\").default;\n    shouldTransformESM: boolean;\n    shouldTransformDynamicImport: boolean;\n    shouldTransformExportNamespaceFrom: boolean;\n  }) => {\n    const modulesPluginNames = [];\n    if (modules !== false && transformations[modules]) {\n      if (shouldTransformESM) {\n        modulesPluginNames.push(transformations[modules]);\n      }\n\n      if (shouldTransformDynamicImport) {\n        if (shouldTransformESM && modules !== \"umd\") {\n          modulesPluginNames.push(\"transform-dynamic-import\");\n        } else {\n          console.warn(\n            \"Dynamic import can only be transformed when transforming ES\" +\n              \" modules to AMD, CommonJS or SystemJS.\",\n          );\n        }\n      }\n    }\n\n    if (shouldTransformExportNamespaceFrom) {\n      modulesPluginNames.push(\"transform-export-namespace-from\");\n    }\n    if (!shouldTransformDynamicImport) {\n      modulesPluginNames.push(\"syntax-dynamic-import\");\n    }\n    if (!shouldTransformExportNamespaceFrom) {\n      modulesPluginNames.push(\"syntax-export-namespace-from\");\n    }\n    modulesPluginNames.push(\"syntax-top-level-await\");\n    modulesPluginNames.push(\"syntax-import-meta\");\n\n    return modulesPluginNames;\n  };\n}\n"],"mappings":"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","ignoreList":[]}
Index: frontend/node_modules/@babel/preset-env/lib/module-transformations.js
===================================================================
--- frontend/node_modules/@babel/preset-env/lib/module-transformations.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/lib/module-transformations.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,15 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = void 0;
+var _default = exports.default = {
+  amd: "transform-modules-amd",
+  commonjs: "transform-modules-commonjs",
+  cjs: "transform-modules-commonjs",
+  systemjs: "transform-modules-systemjs",
+  umd: "transform-modules-umd"
+};
+
+//# sourceMappingURL=module-transformations.js.map
Index: frontend/node_modules/@babel/preset-env/lib/module-transformations.js.map
===================================================================
--- frontend/node_modules/@babel/preset-env/lib/module-transformations.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/lib/module-transformations.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+{"version":3,"names":["amd","commonjs","cjs","systemjs","umd"],"sources":["../src/module-transformations.ts"],"sourcesContent":["type AvailablePlugins = typeof import(\"./available-plugins\").default;\n\nexport default {\n  amd: \"transform-modules-amd\",\n  commonjs: \"transform-modules-commonjs\",\n  cjs: \"transform-modules-commonjs\",\n  systemjs: \"transform-modules-systemjs\",\n  umd: \"transform-modules-umd\",\n} as Record<string, keyof AvailablePlugins>;\n"],"mappings":";;;;;;iCAEe;EACbA,GAAG,EAAE,uBAAuB;EAC5BC,QAAQ,EAAE,4BAA4B;EACtCC,GAAG,EAAE,4BAA4B;EACjCC,QAAQ,EAAE,4BAA4B;EACtCC,GAAG,EAAE;AACP,CAAC","ignoreList":[]}
Index: frontend/node_modules/@babel/preset-env/lib/normalize-options.js
===================================================================
--- frontend/node_modules/@babel/preset-env/lib/normalize-options.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/lib/normalize-options.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,144 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.checkDuplicateIncludeExcludes = void 0;
+exports.default = normalizeOptions;
+exports.normalizeCoreJSOption = normalizeCoreJSOption;
+exports.validateUseBuiltInsOption = exports.validateModulesOption = exports.normalizePluginName = void 0;
+var _semver = require("semver");
+var _pluginsCompatData = require("./plugins-compat-data.js");
+var _moduleTransformations = require("./module-transformations.js");
+var _options = require("./options.js");
+var _helperValidatorOption = require("@babel/helper-validator-option");
+var _babel7Plugins = require("./polyfills/babel-7-plugins.cjs");
+const corejs3Polyfills = require("core-js-compat/data.json");
+const v = new _helperValidatorOption.OptionValidator("@babel/preset-env");
+const allPluginsList = [...Object.keys(_pluginsCompatData.plugins), ...Object.keys(_pluginsCompatData.pluginsBugfixes)];
+const modulePlugins = ["transform-dynamic-import", ...Object.keys(_moduleTransformations.default).map(m => _moduleTransformations.default[m])];
+const getValidIncludesAndExcludes = (type, corejs) => {
+  const set = new Set(allPluginsList);
+  if (type === "exclude") modulePlugins.map(set.add, set);
+  if (corejs) {
+    if (corejs === 2) {
+      Object.keys(_babel7Plugins.corejs2Polyfills).map(set.add, set);
+      set.add("web.timers").add("web.immediate").add("web.dom.iterable");
+    } else {
+      Object.keys(corejs3Polyfills).map(set.add, set);
+    }
+  }
+  return Array.from(set);
+};
+function flatMap(array, fn) {
+  return Array.prototype.concat.apply([], array.map(fn));
+}
+const normalizePluginName = plugin => plugin.replace(/^(?:@babel\/|babel-)(?:plugin-)?/, "");
+exports.normalizePluginName = normalizePluginName;
+const expandIncludesAndExcludes = (filterList = [], type, corejs) => {
+  if (filterList.length === 0) return [];
+  const filterableItems = getValidIncludesAndExcludes(type, corejs);
+  const invalidFilters = [];
+  const selectedPlugins = flatMap(filterList, filter => {
+    let re;
+    if (typeof filter === "string") {
+      try {
+        re = new RegExp(`^${normalizePluginName(filter)}$`);
+      } catch (_) {
+        invalidFilters.push(filter);
+        return [];
+      }
+    } else {
+      re = filter;
+    }
+    const items = filterableItems.filter(item => {
+      return re.test(item) || re.test(item.replace(/^transform-/, "proposal-"));
+    });
+    if (items.length === 0) invalidFilters.push(filter);
+    return items;
+  });
+  v.invariant(invalidFilters.length === 0, `The plugins/built-ins '${invalidFilters.join(", ")}' passed to the '${type}' option are not
+    valid. Please check data/[plugin-features|built-in-features].js in babel-preset-env`);
+  return selectedPlugins;
+};
+const checkDuplicateIncludeExcludes = (include = [], exclude = []) => {
+  const duplicates = include.filter(opt => exclude.includes(opt));
+  v.invariant(duplicates.length === 0, `The plugins/built-ins '${duplicates.join(", ")}' were found in both the "include" and
+    "exclude" options.`);
+};
+exports.checkDuplicateIncludeExcludes = checkDuplicateIncludeExcludes;
+const normalizeTargets = targets => {
+  if (typeof targets === "string" || Array.isArray(targets)) {
+    return {
+      browsers: targets
+    };
+  }
+  return Object.assign({}, targets);
+};
+const validateModulesOption = (modulesOpt = _options.ModulesOption.auto) => {
+  v.invariant(_options.ModulesOption[modulesOpt.toString()] || modulesOpt === _options.ModulesOption.false, `The 'modules' option must be one of \n` + ` - 'false' to indicate no module processing\n` + ` - a specific module type: 'commonjs', 'amd', 'umd', 'systemjs'` + ` - 'auto' (default) which will automatically select 'false' if the current\n` + `   process is known to support ES module syntax, or "commonjs" otherwise\n`);
+  return modulesOpt;
+};
+exports.validateModulesOption = validateModulesOption;
+const validateUseBuiltInsOption = (builtInsOpt = false) => {
+  v.invariant(_options.UseBuiltInsOption[builtInsOpt.toString()] || builtInsOpt === _options.UseBuiltInsOption.false, `The 'useBuiltIns' option must be either
+    'false' (default) to indicate no polyfill,
+    '"entry"' to indicate replacing the entry polyfill, or
+    '"usage"' to import only used polyfills per file`);
+  return builtInsOpt;
+};
+exports.validateUseBuiltInsOption = validateUseBuiltInsOption;
+function normalizeCoreJSOption(corejs, useBuiltIns) {
+  let proposals = false;
+  let rawVersion;
+  if (useBuiltIns && corejs === undefined) {
+    rawVersion = 2;
+    console.warn("\nWARNING (@babel/preset-env): We noticed you're using the `useBuiltIns` option without declaring a " + `core-js version. Currently, we assume version 2.x when no version ` + "is passed. Since this default version will likely change in future " + "versions of Babel, we recommend explicitly setting the core-js version " + "you are using via the `corejs` option.\n" + "\nYou should also be sure that the version you pass to the `corejs` " + "option matches the version specified in your `package.json`'s " + "`dependencies` section. If it doesn't, you need to run one of the " + "following commands:\n\n" + "  npm install --save core-js@2    npm install --save core-js@3\n" + "  yarn add core-js@2              yarn add core-js@3\n\n" + "More info about useBuiltIns: https://babeljs.io/docs/en/babel-preset-env#usebuiltins\n" + "More info about core-js: https://babeljs.io/docs/en/babel-preset-env#corejs");
+  } else if (typeof corejs === "object" && corejs !== null) {
+    rawVersion = corejs.version;
+    proposals = Boolean(corejs.proposals);
+  } else {
+    rawVersion = corejs;
+  }
+  const version = rawVersion ? _semver.coerce(String(rawVersion)) : false;
+  if (version) {
+    if (useBuiltIns) {
+      if (version.major < 2 || version.major > 3) {
+        throw new RangeError("Invalid Option: The version passed to `corejs` is invalid. Currently, " + "only core-js@2 and core-js@3 are supported.");
+      }
+    } else {
+      console.warn("\nWARNING (@babel/preset-env): The `corejs` option only has an effect when the `useBuiltIns` option is not `false`\n");
+    }
+  }
+  return {
+    version,
+    proposals
+  };
+}
+function normalizeOptions(opts) {
+  v.validateTopLevelOptions(opts, _options.TopLevelOptions);
+  const useBuiltIns = validateUseBuiltInsOption(opts.useBuiltIns);
+  const corejs = normalizeCoreJSOption(opts.corejs, useBuiltIns);
+  const include = expandIncludesAndExcludes(opts.include, _options.TopLevelOptions.include, !!corejs.version && corejs.version.major);
+  const exclude = expandIncludesAndExcludes(opts.exclude, _options.TopLevelOptions.exclude, !!corejs.version && corejs.version.major);
+  checkDuplicateIncludeExcludes(include, exclude);
+  v.validateBooleanOption("loose", opts.loose);
+  v.validateBooleanOption("spec", opts.spec);
+  v.validateBooleanOption("bugfixes", opts.bugfixes);
+  return {
+    configPath: v.validateStringOption(_options.TopLevelOptions.configPath, opts.configPath, process.cwd()),
+    corejs,
+    debug: v.validateBooleanOption(_options.TopLevelOptions.debug, opts.debug, false),
+    include,
+    exclude,
+    forceAllTransforms: v.validateBooleanOption(_options.TopLevelOptions.forceAllTransforms, opts.forceAllTransforms, false),
+    ignoreBrowserslistConfig: v.validateBooleanOption(_options.TopLevelOptions.ignoreBrowserslistConfig, opts.ignoreBrowserslistConfig, false),
+    modules: validateModulesOption(opts.modules),
+    shippedProposals: v.validateBooleanOption(_options.TopLevelOptions.shippedProposals, opts.shippedProposals, false),
+    targets: normalizeTargets(opts.targets),
+    useBuiltIns: useBuiltIns,
+    browserslistEnv: v.validateStringOption(_options.TopLevelOptions.browserslistEnv, opts.browserslistEnv)
+  };
+}
+
+//# sourceMappingURL=normalize-options.js.map
Index: frontend/node_modules/@babel/preset-env/lib/normalize-options.js.map
===================================================================
--- frontend/node_modules/@babel/preset-env/lib/normalize-options.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/lib/normalize-options.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+{"version":3,"names":["_semver","require","_pluginsCompatData","_moduleTransformations","_options","_helperValidatorOption","_babel7Plugins","corejs3Polyfills","v","OptionValidator","allPluginsList","Object","keys","pluginsList","bugfixPluginsList","modulePlugins","moduleTransformations","map","m","getValidIncludesAndExcludes","type","corejs","set","Set","add","babel7","corejs2Polyfills","Array","from","flatMap","array","fn","prototype","concat","apply","normalizePluginName","plugin","replace","exports","expandIncludesAndExcludes","filterList","length","filterableItems","invalidFilters","selectedPlugins","filter","re","RegExp","_","push","items","item","test","invariant","join","checkDuplicateIncludeExcludes","include","exclude","duplicates","opt","includes","normalizeTargets","targets","isArray","browsers","assign","validateModulesOption","modulesOpt","ModulesOption","auto","toString","false","validateUseBuiltInsOption","builtInsOpt","UseBuiltInsOption","normalizeCoreJSOption","useBuiltIns","proposals","rawVersion","undefined","console","warn","version","Boolean","semver","coerce","String","major","RangeError","normalizeOptions","opts","validateTopLevelOptions","TopLevelOptions","validateBooleanOption","loose","spec","bugfixes","configPath","validateStringOption","process","cwd","debug","forceAllTransforms","ignoreBrowserslistConfig","modules","shippedProposals","browserslistEnv"],"sources":["../src/normalize-options.ts"],"sourcesContent":["import semver, { type SemVer } from \"semver\";\nimport corejs3Polyfills from \"core-js-compat/data.json\" with { type: \"json\" };\nimport {\n  plugins as pluginsList,\n  pluginsBugfixes as bugfixPluginsList,\n} from \"./plugins-compat-data.ts\";\nimport moduleTransformations from \"./module-transformations.ts\";\nimport {\n  TopLevelOptions,\n  ModulesOption,\n  UseBuiltInsOption,\n} from \"./options.ts\";\nimport { OptionValidator } from \"@babel/helper-validator-option\";\n\nimport babel7 from \"./polyfills/babel-7-plugins.cjs\" with { if: \"!process.env.BABEL_8_BREAKING\" };\n\nimport type {\n  BuiltInsOption,\n  CorejsOption,\n  ModuleOption,\n  Options,\n  PluginListOption,\n} from \"./types.ts\";\n\nconst v = new OptionValidator(PACKAGE_JSON.name);\n\nconst allPluginsList = [\n  ...Object.keys(pluginsList),\n  ...Object.keys(bugfixPluginsList),\n];\n\n// NOTE: Since module plugins are handled separately compared to other plugins (via the \"modules\" option) it\n// should only be possible to exclude and not include module plugins, otherwise it's possible that preset-env\n// will add a module plugin twice.\nconst modulePlugins = [\n  \"transform-dynamic-import\",\n  ...Object.keys(moduleTransformations).map(m => moduleTransformations[m]),\n];\n\nconst getValidIncludesAndExcludes = (\n  type: \"include\" | \"exclude\",\n  corejs: number | false,\n) => {\n  const set = new Set(allPluginsList);\n  if (type === \"exclude\") modulePlugins.map(set.add, set);\n  if (corejs) {\n    if (!process.env.BABEL_8_BREAKING && corejs === 2) {\n      Object.keys(babel7.corejs2Polyfills).map(set.add, set);\n      set.add(\"web.timers\").add(\"web.immediate\").add(\"web.dom.iterable\");\n    } else {\n      Object.keys(corejs3Polyfills).map(set.add, set);\n    }\n  }\n  return Array.from(set);\n};\n\nfunction flatMap<T, U>(array: T[], fn: (item: T) => U[]): U[] {\n  return Array.prototype.concat.apply([], array.map(fn));\n}\n\nexport const normalizePluginName = (plugin: string) =>\n  plugin.replace(/^(?:@babel\\/|babel-)(?:plugin-)?/, \"\");\n\nconst expandIncludesAndExcludes = (\n  filterList: PluginListOption = [],\n  type: \"include\" | \"exclude\",\n  corejs: number | false,\n) => {\n  if (filterList.length === 0) return [];\n\n  const filterableItems = getValidIncludesAndExcludes(type, corejs);\n\n  const invalidFilters: PluginListOption = [];\n  const selectedPlugins = flatMap(filterList, filter => {\n    let re: RegExp;\n    if (typeof filter === \"string\") {\n      try {\n        re = new RegExp(`^${normalizePluginName(filter)}$`);\n      } catch (_) {\n        invalidFilters.push(filter);\n        return [];\n      }\n    } else {\n      re = filter;\n    }\n    const items = filterableItems.filter(item => {\n      return process.env.BABEL_8_BREAKING\n        ? re.test(item)\n        : re.test(item) ||\n            // For backwards compatibility, we also support matching against the\n            // proposal- name.\n            re.test(item.replace(/^transform-/, \"proposal-\"));\n    });\n    if (items.length === 0) invalidFilters.push(filter);\n    return items;\n  });\n\n  v.invariant(\n    invalidFilters.length === 0,\n    `The plugins/built-ins '${invalidFilters.join(\n      \", \",\n    )}' passed to the '${type}' option are not\n    valid. Please check data/[plugin-features|built-in-features].js in babel-preset-env`,\n  );\n\n  return selectedPlugins;\n};\n\nexport const checkDuplicateIncludeExcludes = (\n  include: string[] = [],\n  exclude: string[] = [],\n) => {\n  const duplicates = include.filter(opt => exclude.includes(opt));\n\n  v.invariant(\n    duplicates.length === 0,\n    `The plugins/built-ins '${duplicates.join(\n      \", \",\n    )}' were found in both the \"include\" and\n    \"exclude\" options.`,\n  );\n};\n\nconst normalizeTargets = (\n  targets: string | string[] | Options[\"targets\"],\n): Options[\"targets\"] => {\n  // TODO: Allow to use only query or strings as a targets from next breaking change.\n  if (typeof targets === \"string\" || Array.isArray(targets)) {\n    return { browsers: targets };\n  }\n  return { ...targets };\n};\n\nexport const validateModulesOption = (\n  modulesOpt: ModuleOption = ModulesOption.auto,\n) => {\n  v.invariant(\n    // @ts-expect-error we have provided fallback for undefined keys\n    ModulesOption[modulesOpt.toString()] || modulesOpt === ModulesOption.false,\n    `The 'modules' option must be one of \\n` +\n      ` - 'false' to indicate no module processing\\n` +\n      ` - a specific module type: 'commonjs', 'amd', 'umd', 'systemjs'` +\n      ` - 'auto' (default) which will automatically select 'false' if the current\\n` +\n      `   process is known to support ES module syntax, or \"commonjs\" otherwise\\n`,\n  );\n\n  return modulesOpt;\n};\n\nexport const validateUseBuiltInsOption = (\n  builtInsOpt: BuiltInsOption = false,\n) => {\n  v.invariant(\n    // @ts-expect-error we have provided fallback for undefined keys\n    UseBuiltInsOption[builtInsOpt.toString()] ||\n      builtInsOpt === UseBuiltInsOption.false,\n    `The 'useBuiltIns' option must be either\n    'false' (default) to indicate no polyfill,\n    '\"entry\"' to indicate replacing the entry polyfill, or\n    '\"usage\"' to import only used polyfills per file`,\n  );\n\n  return builtInsOpt;\n};\n\nexport type NormalizedCorejsOption = {\n  proposals: boolean;\n  version: SemVer | null | false;\n};\n\nexport function normalizeCoreJSOption(\n  corejs: CorejsOption | undefined | null,\n  useBuiltIns: BuiltInsOption,\n): NormalizedCorejsOption {\n  let proposals = false;\n  let rawVersion: false | string | number | undefined | null;\n\n  if (useBuiltIns && corejs === undefined) {\n    if (process.env.BABEL_8_BREAKING) {\n      throw new Error(\n        \"When using the `useBuiltIns` option you must specify\" +\n          ' the code-js version you are using, such as `\"corejs\": \"3.32.0\"`.',\n      );\n    } else {\n      rawVersion = 2;\n      console.warn(\n        \"\\nWARNING (@babel/preset-env): We noticed you're using the `useBuiltIns` option without declaring a \" +\n          `core-js version. Currently, we assume version 2.x when no version ` +\n          \"is passed. Since this default version will likely change in future \" +\n          \"versions of Babel, we recommend explicitly setting the core-js version \" +\n          \"you are using via the `corejs` option.\\n\" +\n          \"\\nYou should also be sure that the version you pass to the `corejs` \" +\n          \"option matches the version specified in your `package.json`'s \" +\n          \"`dependencies` section. If it doesn't, you need to run one of the \" +\n          \"following commands:\\n\\n\" +\n          \"  npm install --save core-js@2    npm install --save core-js@3\\n\" +\n          \"  yarn add core-js@2              yarn add core-js@3\\n\\n\" +\n          \"More info about useBuiltIns: https://babeljs.io/docs/en/babel-preset-env#usebuiltins\\n\" +\n          \"More info about core-js: https://babeljs.io/docs/en/babel-preset-env#corejs\",\n      );\n    }\n  } else if (typeof corejs === \"object\" && corejs !== null) {\n    rawVersion = corejs.version;\n    proposals = Boolean(corejs.proposals);\n  } else {\n    rawVersion = corejs as false | string | number | undefined | null;\n  }\n\n  const version = rawVersion ? semver.coerce(String(rawVersion)) : false;\n\n  if (version) {\n    if (useBuiltIns) {\n      if (process.env.BABEL_8_BREAKING) {\n        if (version.major !== 3) {\n          throw new RangeError(\n            \"Invalid Option: The version passed to `corejs` is invalid. Currently, \" +\n              \"only core-js@3 is supported.\",\n          );\n        }\n\n        if (\n          typeof rawVersion !== \"string\" ||\n          !String(rawVersion).includes(\".\")\n        ) {\n          throw new Error(\n            'Invalid Option: The version passed to `corejs` is invalid. Please use string and specify the minor version, such as `\"3.33\"`.',\n          );\n        }\n      } else {\n        if (version.major < 2 || version.major > 3) {\n          throw new RangeError(\n            \"Invalid Option: The version passed to `corejs` is invalid. Currently, \" +\n              \"only core-js@2 and core-js@3 are supported.\",\n          );\n        }\n      }\n    } else {\n      console.warn(\n        \"\\nWARNING (@babel/preset-env): The `corejs` option only has an effect when the `useBuiltIns` option is not `false`\\n\",\n      );\n    }\n  }\n\n  return { version, proposals };\n}\n\nexport default function normalizeOptions(opts: Options) {\n  if (process.env.BABEL_8_BREAKING) {\n    v.invariant(\n      !Object.hasOwn(opts, \"bugfixes\"),\n      \"The 'bugfixes' option has been removed, and now bugfix plugins are\" +\n        \" always enabled. Please remove it from your config.\",\n    );\n  }\n\n  v.validateTopLevelOptions(opts, TopLevelOptions);\n\n  const useBuiltIns = validateUseBuiltInsOption(opts.useBuiltIns);\n\n  const corejs = normalizeCoreJSOption(opts.corejs, useBuiltIns);\n\n  const include = expandIncludesAndExcludes(\n    opts.include,\n    TopLevelOptions.include,\n    !!corejs.version && corejs.version.major,\n  );\n\n  const exclude = expandIncludesAndExcludes(\n    opts.exclude,\n    TopLevelOptions.exclude,\n    !!corejs.version && corejs.version.major,\n  );\n\n  checkDuplicateIncludeExcludes(include, exclude);\n\n  if (!process.env.BABEL_8_BREAKING) {\n    v.validateBooleanOption(\"loose\", opts.loose);\n    v.validateBooleanOption(\"spec\", opts.spec);\n    v.validateBooleanOption(\"bugfixes\", opts.bugfixes);\n  }\n\n  return {\n    configPath: v.validateStringOption(\n      TopLevelOptions.configPath,\n      opts.configPath,\n      process.cwd(),\n    ),\n    corejs,\n    debug: v.validateBooleanOption(TopLevelOptions.debug, opts.debug, false),\n    include,\n    exclude,\n    forceAllTransforms: v.validateBooleanOption(\n      TopLevelOptions.forceAllTransforms,\n      opts.forceAllTransforms,\n      false,\n    ),\n    ignoreBrowserslistConfig: v.validateBooleanOption(\n      TopLevelOptions.ignoreBrowserslistConfig,\n      opts.ignoreBrowserslistConfig,\n      false,\n    ),\n    modules: validateModulesOption(opts.modules),\n    shippedProposals: v.validateBooleanOption(\n      TopLevelOptions.shippedProposals,\n      opts.shippedProposals,\n      false,\n    ),\n    targets: normalizeTargets(opts.targets),\n    useBuiltIns: useBuiltIns,\n    browserslistEnv: v.validateStringOption(\n      TopLevelOptions.browserslistEnv,\n      opts.browserslistEnv,\n    ),\n  };\n}\n"],"mappings":"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","ignoreList":[]}
Index: frontend/node_modules/@babel/preset-env/lib/options.js
===================================================================
--- frontend/node_modules/@babel/preset-env/lib/options.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/lib/options.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,41 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.UseBuiltInsOption = exports.TopLevelOptions = exports.ModulesOption = void 0;
+const TopLevelOptions = exports.TopLevelOptions = {
+  configPath: "configPath",
+  corejs: "corejs",
+  debug: "debug",
+  exclude: "exclude",
+  forceAllTransforms: "forceAllTransforms",
+  ignoreBrowserslistConfig: "ignoreBrowserslistConfig",
+  include: "include",
+  modules: "modules",
+  shippedProposals: "shippedProposals",
+  targets: "targets",
+  useBuiltIns: "useBuiltIns",
+  browserslistEnv: "browserslistEnv"
+};
+Object.assign(TopLevelOptions, {
+  bugfixes: "bugfixes",
+  loose: "loose",
+  spec: "spec"
+});
+const ModulesOption = exports.ModulesOption = {
+  false: false,
+  auto: "auto",
+  amd: "amd",
+  commonjs: "commonjs",
+  cjs: "cjs",
+  systemjs: "systemjs",
+  umd: "umd"
+};
+const UseBuiltInsOption = exports.UseBuiltInsOption = {
+  false: false,
+  entry: "entry",
+  usage: "usage"
+};
+
+//# sourceMappingURL=options.js.map
Index: frontend/node_modules/@babel/preset-env/lib/options.js.map
===================================================================
--- frontend/node_modules/@babel/preset-env/lib/options.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/lib/options.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+{"version":3,"names":["TopLevelOptions","exports","configPath","corejs","debug","exclude","forceAllTransforms","ignoreBrowserslistConfig","include","modules","shippedProposals","targets","useBuiltIns","browserslistEnv","Object","assign","bugfixes","loose","spec","ModulesOption","false","auto","amd","commonjs","cjs","systemjs","umd","UseBuiltInsOption","entry","usage"],"sources":["../src/options.ts"],"sourcesContent":["export const TopLevelOptions = {\n  configPath: \"configPath\",\n  corejs: \"corejs\",\n  debug: \"debug\",\n  exclude: \"exclude\",\n  forceAllTransforms: \"forceAllTransforms\",\n  ignoreBrowserslistConfig: \"ignoreBrowserslistConfig\",\n  include: \"include\",\n  modules: \"modules\",\n  shippedProposals: \"shippedProposals\",\n  targets: \"targets\",\n  useBuiltIns: \"useBuiltIns\",\n  browserslistEnv: \"browserslistEnv\",\n} as const;\n\nif (!process.env.BABEL_8_BREAKING) {\n  Object.assign(TopLevelOptions, {\n    bugfixes: \"bugfixes\",\n    loose: \"loose\",\n    spec: \"spec\",\n  });\n}\n\nexport const ModulesOption = {\n  false: false,\n  auto: \"auto\",\n  amd: \"amd\",\n  commonjs: \"commonjs\",\n  cjs: \"cjs\",\n  systemjs: \"systemjs\",\n  umd: \"umd\",\n} as const;\n\nexport const UseBuiltInsOption = {\n  false: false,\n  entry: \"entry\",\n  usage: \"usage\",\n} as const;\n"],"mappings":";;;;;;AAAO,MAAMA,eAAe,GAAAC,OAAA,CAAAD,eAAA,GAAG;EAC7BE,UAAU,EAAE,YAAY;EACxBC,MAAM,EAAE,QAAQ;EAChBC,KAAK,EAAE,OAAO;EACdC,OAAO,EAAE,SAAS;EAClBC,kBAAkB,EAAE,oBAAoB;EACxCC,wBAAwB,EAAE,0BAA0B;EACpDC,OAAO,EAAE,SAAS;EAClBC,OAAO,EAAE,SAAS;EAClBC,gBAAgB,EAAE,kBAAkB;EACpCC,OAAO,EAAE,SAAS;EAClBC,WAAW,EAAE,aAAa;EAC1BC,eAAe,EAAE;AACnB,CAAU;AAGRC,MAAM,CAACC,MAAM,CAACf,eAAe,EAAE;EAC7BgB,QAAQ,EAAE,UAAU;EACpBC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE;AACR,CAAC,CAAC;AAGG,MAAMC,aAAa,GAAAlB,OAAA,CAAAkB,aAAA,GAAG;EAC3BC,KAAK,EAAE,KAAK;EACZC,IAAI,EAAE,MAAM;EACZC,GAAG,EAAE,KAAK;EACVC,QAAQ,EAAE,UAAU;EACpBC,GAAG,EAAE,KAAK;EACVC,QAAQ,EAAE,UAAU;EACpBC,GAAG,EAAE;AACP,CAAU;AAEH,MAAMC,iBAAiB,GAAA1B,OAAA,CAAA0B,iBAAA,GAAG;EAC/BP,KAAK,EAAE,KAAK;EACZQ,KAAK,EAAE,OAAO;EACdC,KAAK,EAAE;AACT,CAAU","ignoreList":[]}
Index: frontend/node_modules/@babel/preset-env/lib/plugins-compat-data.js
===================================================================
--- frontend/node_modules/@babel/preset-env/lib/plugins-compat-data.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/lib/plugins-compat-data.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,26 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.pluginsBugfixes = exports.plugins = exports.overlappingPlugins = void 0;
+var _availablePlugins = require("./available-plugins.js");
+const originalPlugins = require("@babel/compat-data/plugins"),
+  originalPluginsBugfixes = require("@babel/compat-data/plugin-bugfixes"),
+  originalOverlappingPlugins = require("@babel/compat-data/overlapping-plugins");
+const keys = Object.keys;
+const plugins = exports.plugins = filterAvailable(originalPlugins);
+const pluginsBugfixes = exports.pluginsBugfixes = filterAvailable(originalPluginsBugfixes);
+const overlappingPlugins = exports.overlappingPlugins = filterAvailable(originalOverlappingPlugins);
+overlappingPlugins["syntax-import-attributes"] = ["syntax-import-assertions"];
+function filterAvailable(data) {
+  const result = {};
+  for (const plugin of keys(data)) {
+    if (hasOwnProperty.call(_availablePlugins.default, plugin)) {
+      result[plugin] = data[plugin];
+    }
+  }
+  return result;
+}
+
+//# sourceMappingURL=plugins-compat-data.js.map
Index: frontend/node_modules/@babel/preset-env/lib/plugins-compat-data.js.map
===================================================================
--- frontend/node_modules/@babel/preset-env/lib/plugins-compat-data.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/lib/plugins-compat-data.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+{"version":3,"names":["_availablePlugins","require","originalPlugins","originalPluginsBugfixes","originalOverlappingPlugins","keys","Object","plugins","exports","filterAvailable","pluginsBugfixes","overlappingPlugins","data","result","plugin","hasOwnProperty","call","availablePlugins"],"sources":["../src/plugins-compat-data.ts"],"sourcesContent":["import originalPlugins from \"@babel/compat-data/plugins\" with { type: \"json\" };\nimport originalPluginsBugfixes from \"@babel/compat-data/plugin-bugfixes\" with { type: \"json\" };\nimport originalOverlappingPlugins from \"@babel/compat-data/overlapping-plugins\" with { type: \"json\" };\nimport availablePlugins from \"./available-plugins.ts\";\n\nconst keys: <O extends object>(o: O) => (keyof O)[] = Object.keys;\n\nexport const plugins = filterAvailable(originalPlugins);\nexport const pluginsBugfixes = filterAvailable(originalPluginsBugfixes);\nexport const overlappingPlugins = filterAvailable(originalOverlappingPlugins);\n\nif (!process.env.BABEL_8_BREAKING) {\n  // @ts-expect-error: we extend this here, since it's a syntax plugin and thus\n  // doesn't make sense to store it in a compat-data package.\n  overlappingPlugins[\"syntax-import-attributes\"] = [\"syntax-import-assertions\"];\n}\n\nfunction filterAvailable<Data extends Record<string, unknown>>(\n  data: Data,\n): { [Name in keyof Data & keyof typeof availablePlugins]: Data[Name] } {\n  const result = {} as any;\n  for (const plugin of keys(data)) {\n    if (Object.hasOwn(availablePlugins, plugin)) {\n      result[plugin] = data[plugin];\n    }\n  }\n  return result;\n}\n"],"mappings":";;;;;;AAGA,IAAAA,iBAAA,GAAAC,OAAA;AAAsD,MAH/CC,eAAe,GAAAD,OAAA,CAAM,4BAA4B;EACjDE,uBAAuB,GAAAF,OAAA,CAAM,oCAAoC;EACjEG,0BAA0B,GAAAH,OAAA,CAAM,wCAAwC;AAG/E,MAAMI,IAA6C,GAAGC,MAAM,CAACD,IAAI;AAE1D,MAAME,OAAO,GAAAC,OAAA,CAAAD,OAAA,GAAGE,eAAe,CAACP,eAAe,CAAC;AAChD,MAAMQ,eAAe,GAAAF,OAAA,CAAAE,eAAA,GAAGD,eAAe,CAACN,uBAAuB,CAAC;AAChE,MAAMQ,kBAAkB,GAAAH,OAAA,CAAAG,kBAAA,GAAGF,eAAe,CAACL,0BAA0B,CAAC;AAK3EO,kBAAkB,CAAC,0BAA0B,CAAC,GAAG,CAAC,0BAA0B,CAAC;AAG/E,SAASF,eAAeA,CACtBG,IAAU,EAC4D;EACtE,MAAMC,MAAM,GAAG,CAAC,CAAQ;EACxB,KAAK,MAAMC,MAAM,IAAIT,IAAI,CAACO,IAAI,CAAC,EAAE;IAC/B,IAAIG,cAAA,CAAAC,IAAA,CAAcC,yBAAgB,EAAEH,MAAM,CAAC,EAAE;MAC3CD,MAAM,CAACC,MAAM,CAAC,GAAGF,IAAI,CAACE,MAAM,CAAC;IAC/B;EACF;EACA,OAAOD,MAAM;AACf","ignoreList":[]}
Index: frontend/node_modules/@babel/preset-env/lib/polyfills/babel-7-plugins.cjs
===================================================================
--- frontend/node_modules/@babel/preset-env/lib/polyfills/babel-7-plugins.cjs	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/lib/polyfills/babel-7-plugins.cjs	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,19 @@
+Object.defineProperties(exports, {
+  pluginCoreJS2: {
+    get: () => require("babel-plugin-polyfill-corejs2").default
+  },
+  pluginRegenerator: {
+    get: () => require("babel-plugin-polyfill-regenerator").default
+  },
+  legacyBabelPolyfillPlugin: {
+    get: () => require("./babel-polyfill.cjs")
+  },
+  removeRegeneratorEntryPlugin: {
+    get: () => require("./regenerator.cjs")
+  },
+  corejs2Polyfills: {
+    get: () => require("@babel/compat-data/corejs2-built-ins")
+  }
+});
+
+//# sourceMappingURL=babel-7-plugins.cjs.map
Index: frontend/node_modules/@babel/preset-env/lib/polyfills/babel-7-plugins.cjs.map
===================================================================
--- frontend/node_modules/@babel/preset-env/lib/polyfills/babel-7-plugins.cjs.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/lib/polyfills/babel-7-plugins.cjs.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+{"version":3,"names":["Object","defineProperties","exports","pluginCoreJS2","get","require","default","pluginRegenerator","legacyBabelPolyfillPlugin","removeRegeneratorEntryPlugin","corejs2Polyfills"],"sources":["../../src/polyfills/babel-7-plugins.cjs"],"sourcesContent":["// TODO(Babel 8): Remove this file\n\nif (!process.env.BABEL_8_BREAKING) {\n  Object.defineProperties(exports, {\n    pluginCoreJS2: {\n      get: () => require(\"babel-plugin-polyfill-corejs2\").default,\n    },\n    pluginRegenerator: {\n      get: () => require(\"babel-plugin-polyfill-regenerator\").default,\n    },\n    legacyBabelPolyfillPlugin: { get: () => require(\"./babel-polyfill.cjs\") },\n    removeRegeneratorEntryPlugin: { get: () => require(\"./regenerator.cjs\") },\n    corejs2Polyfills: {\n      get: () => require(\"@babel/compat-data/corejs2-built-ins\"),\n    },\n  });\n}\n"],"mappings":"AAGEA,MAAM,CAACC,gBAAgB,CAACC,OAAO,EAAE;EAC/BC,aAAa,EAAE;IACbC,GAAG,EAAEA,CAAA,KAAMC,OAAO,CAAC,+BAA+B,CAAC,CAACC;EACtD,CAAC;EACDC,iBAAiB,EAAE;IACjBH,GAAG,EAAEA,CAAA,KAAMC,OAAO,CAAC,mCAAmC,CAAC,CAACC;EAC1D,CAAC;EACDE,yBAAyB,EAAE;IAAEJ,GAAG,EAAEA,CAAA,KAAMC,OAAO,CAAC,sBAAsB;EAAE,CAAC;EACzEI,4BAA4B,EAAE;IAAEL,GAAG,EAAEA,CAAA,KAAMC,OAAO,CAAC,mBAAmB;EAAE,CAAC;EACzEK,gBAAgB,EAAE;IAChBN,GAAG,EAAEA,CAAA,KAAMC,OAAO,CAAC,sCAAsC;EAC3D;AACF,CAAC,CAAC","ignoreList":[]}
Index: frontend/node_modules/@babel/preset-env/lib/polyfills/babel-polyfill.cjs
===================================================================
--- frontend/node_modules/@babel/preset-env/lib/polyfills/babel-polyfill.cjs	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/lib/polyfills/babel-polyfill.cjs	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,68 @@
+const {
+  getImportSource,
+  getRequireSource,
+  isPolyfillSource
+} = require("./utils.cjs");
+const BABEL_POLYFILL_DEPRECATION = `
+  \`@babel/polyfill\` is deprecated. Please, use required parts of \`core-js\`
+  and \`regenerator-runtime/runtime\` separately`;
+const NO_DIRECT_POLYFILL_IMPORT = `
+  When setting \`useBuiltIns: 'usage'\`, polyfills are automatically imported when needed.
+  Please remove the direct import of \`SPECIFIER\` or use \`useBuiltIns: 'entry'\` instead.`;
+module.exports = function ({
+  template
+}, {
+  regenerator,
+  deprecated,
+  usage
+}) {
+  return {
+    name: "preset-env/replace-babel-polyfill",
+    visitor: {
+      ImportDeclaration(path) {
+        const src = getImportSource(path);
+        if (usage && isPolyfillSource(src)) {
+          console.warn(NO_DIRECT_POLYFILL_IMPORT.replace("SPECIFIER", src));
+          if (!deprecated) path.remove();
+        } else if (src === "@babel/polyfill") {
+          if (deprecated) {
+            console.warn(BABEL_POLYFILL_DEPRECATION);
+          } else if (regenerator) {
+            path.replaceWithMultiple(template.ast`
+              import "core-js";
+              import "regenerator-runtime/runtime.js";
+            `);
+          } else {
+            path.replaceWith(template.ast`
+              import "core-js";
+            `);
+          }
+        }
+      },
+      Program(path) {
+        path.get("body").forEach(bodyPath => {
+          const src = getRequireSource(bodyPath);
+          if (usage && isPolyfillSource(src)) {
+            console.warn(NO_DIRECT_POLYFILL_IMPORT.replace("SPECIFIER", src));
+            if (!deprecated) bodyPath.remove();
+          } else if (src === "@babel/polyfill") {
+            if (deprecated) {
+              console.warn(BABEL_POLYFILL_DEPRECATION);
+            } else if (regenerator) {
+              bodyPath.replaceWithMultiple(template.ast`
+                require("core-js");
+                require("regenerator-runtime/runtime.js");
+              `);
+            } else {
+              bodyPath.replaceWith(template.ast`
+                require("core-js");
+              `);
+            }
+          }
+        });
+      }
+    }
+  };
+};
+
+//# sourceMappingURL=babel-polyfill.cjs.map
Index: frontend/node_modules/@babel/preset-env/lib/polyfills/babel-polyfill.cjs.map
===================================================================
--- frontend/node_modules/@babel/preset-env/lib/polyfills/babel-polyfill.cjs.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/lib/polyfills/babel-polyfill.cjs.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+{"version":3,"names":["getImportSource","getRequireSource","isPolyfillSource","require","BABEL_POLYFILL_DEPRECATION","NO_DIRECT_POLYFILL_IMPORT","module","exports","template","regenerator","deprecated","usage","name","visitor","ImportDeclaration","path","src","console","warn","replace","remove","replaceWithMultiple","ast","replaceWith","Program","get","forEach","bodyPath"],"sources":["../../src/polyfills/babel-polyfill.cjs"],"sourcesContent":["// TODO(Babel 8) Remove this file\nif (process.env.BABEL_8_BREAKING) {\n  throw new Error(\n    \"Internal Babel error: This file should only be loaded in Babel 7\",\n  );\n}\n\nconst {\n  getImportSource,\n  getRequireSource,\n  isPolyfillSource,\n} = require(\"./utils.cjs\");\n\nconst BABEL_POLYFILL_DEPRECATION = `\n  \\`@babel/polyfill\\` is deprecated. Please, use required parts of \\`core-js\\`\n  and \\`regenerator-runtime/runtime\\` separately`;\n\nconst NO_DIRECT_POLYFILL_IMPORT = `\n  When setting \\`useBuiltIns: 'usage'\\`, polyfills are automatically imported when needed.\n  Please remove the direct import of \\`SPECIFIER\\` or use \\`useBuiltIns: 'entry'\\` instead.`;\n\nmodule.exports = function ({ template }, { regenerator, deprecated, usage }) {\n  return {\n    name: \"preset-env/replace-babel-polyfill\",\n    visitor: {\n      ImportDeclaration(path) {\n        const src = getImportSource(path);\n        if (usage && isPolyfillSource(src)) {\n          console.warn(NO_DIRECT_POLYFILL_IMPORT.replace(\"SPECIFIER\", src));\n          if (!deprecated) path.remove();\n        } else if (src === \"@babel/polyfill\") {\n          if (deprecated) {\n            console.warn(BABEL_POLYFILL_DEPRECATION);\n          } else if (regenerator) {\n            path.replaceWithMultiple(template.ast`\n              import \"core-js\";\n              import \"regenerator-runtime/runtime.js\";\n            `);\n          } else {\n            path.replaceWith(template.ast`\n              import \"core-js\";\n            `);\n          }\n        }\n      },\n      Program(path) {\n        path.get(\"body\").forEach(bodyPath => {\n          const src = getRequireSource(bodyPath);\n          if (usage && isPolyfillSource(src)) {\n            console.warn(NO_DIRECT_POLYFILL_IMPORT.replace(\"SPECIFIER\", src));\n            if (!deprecated) bodyPath.remove();\n          } else if (src === \"@babel/polyfill\") {\n            if (deprecated) {\n              console.warn(BABEL_POLYFILL_DEPRECATION);\n            } else if (regenerator) {\n              bodyPath.replaceWithMultiple(template.ast`\n                require(\"core-js\");\n                require(\"regenerator-runtime/runtime.js\");\n              `);\n            } else {\n              bodyPath.replaceWith(template.ast`\n                require(\"core-js\");\n              `);\n            }\n          }\n        });\n      },\n    },\n  };\n};\n"],"mappings":"AAOA,MAAM;EACJA,eAAe;EACfC,gBAAgB;EAChBC;AACF,CAAC,GAAGC,OAAO,CAAC,aAAa,CAAC;AAE1B,MAAMC,0BAA0B,GAAG;AACnC;AACA,iDAAiD;AAEjD,MAAMC,yBAAyB,GAAG;AAClC;AACA,4FAA4F;AAE5FC,MAAM,CAACC,OAAO,GAAG,UAAU;EAAEC;AAAS,CAAC,EAAE;EAAEC,WAAW;EAAEC,UAAU;EAAEC;AAAM,CAAC,EAAE;EAC3E,OAAO;IACLC,IAAI,EAAE,mCAAmC;IACzCC,OAAO,EAAE;MACPC,iBAAiBA,CAACC,IAAI,EAAE;QACtB,MAAMC,GAAG,GAAGhB,eAAe,CAACe,IAAI,CAAC;QACjC,IAAIJ,KAAK,IAAIT,gBAAgB,CAACc,GAAG,CAAC,EAAE;UAClCC,OAAO,CAACC,IAAI,CAACb,yBAAyB,CAACc,OAAO,CAAC,WAAW,EAAEH,GAAG,CAAC,CAAC;UACjE,IAAI,CAACN,UAAU,EAAEK,IAAI,CAACK,MAAM,CAAC,CAAC;QAChC,CAAC,MAAM,IAAIJ,GAAG,KAAK,iBAAiB,EAAE;UACpC,IAAIN,UAAU,EAAE;YACdO,OAAO,CAACC,IAAI,CAACd,0BAA0B,CAAC;UAC1C,CAAC,MAAM,IAAIK,WAAW,EAAE;YACtBM,IAAI,CAACM,mBAAmB,CAACb,QAAQ,CAACc,GAAG;AACjD;AACA;AACA,aAAa,CAAC;UACJ,CAAC,MAAM;YACLP,IAAI,CAACQ,WAAW,CAACf,QAAQ,CAACc,GAAG;AACzC;AACA,aAAa,CAAC;UACJ;QACF;MACF,CAAC;MACDE,OAAOA,CAACT,IAAI,EAAE;QACZA,IAAI,CAACU,GAAG,CAAC,MAAM,CAAC,CAACC,OAAO,CAACC,QAAQ,IAAI;UACnC,MAAMX,GAAG,GAAGf,gBAAgB,CAAC0B,QAAQ,CAAC;UACtC,IAAIhB,KAAK,IAAIT,gBAAgB,CAACc,GAAG,CAAC,EAAE;YAClCC,OAAO,CAACC,IAAI,CAACb,yBAAyB,CAACc,OAAO,CAAC,WAAW,EAAEH,GAAG,CAAC,CAAC;YACjE,IAAI,CAACN,UAAU,EAAEiB,QAAQ,CAACP,MAAM,CAAC,CAAC;UACpC,CAAC,MAAM,IAAIJ,GAAG,KAAK,iBAAiB,EAAE;YACpC,IAAIN,UAAU,EAAE;cACdO,OAAO,CAACC,IAAI,CAACd,0BAA0B,CAAC;YAC1C,CAAC,MAAM,IAAIK,WAAW,EAAE;cACtBkB,QAAQ,CAACN,mBAAmB,CAACb,QAAQ,CAACc,GAAG;AACvD;AACA;AACA,eAAe,CAAC;YACJ,CAAC,MAAM;cACLK,QAAQ,CAACJ,WAAW,CAACf,QAAQ,CAACc,GAAG;AAC/C;AACA,eAAe,CAAC;YACJ;UACF;QACF,CAAC,CAAC;MACJ;IACF;EACF,CAAC;AACH,CAAC","ignoreList":[]}
Index: frontend/node_modules/@babel/preset-env/lib/polyfills/regenerator.cjs
===================================================================
--- frontend/node_modules/@babel/preset-env/lib/polyfills/regenerator.cjs	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/lib/polyfills/regenerator.cjs	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,43 @@
+const {
+  getImportSource,
+  getRequireSource
+} = require("./utils.cjs");
+function isRegeneratorSource(source) {
+  return source === "regenerator-runtime/runtime" || source === "regenerator-runtime/runtime.js";
+}
+module.exports = function () {
+  const visitor = {
+    ImportDeclaration(path) {
+      if (isRegeneratorSource(getImportSource(path))) {
+        this.regeneratorImportExcluded = true;
+        path.remove();
+      }
+    },
+    Program(path) {
+      path.get("body").forEach(bodyPath => {
+        if (isRegeneratorSource(getRequireSource(bodyPath))) {
+          this.regeneratorImportExcluded = true;
+          bodyPath.remove();
+        }
+      });
+    }
+  };
+  return {
+    name: "preset-env/remove-regenerator",
+    visitor,
+    pre() {
+      this.regeneratorImportExcluded = false;
+    },
+    post() {
+      if (this.opts.debug && this.regeneratorImportExcluded) {
+        let filename = this.file.opts.filename;
+        if (process.env.BABEL_ENV === "test") {
+          filename = filename.replace(/\\/g, "/");
+        }
+        console.log(`\n[${filename}] Based on your targets, regenerator-runtime import excluded.`);
+      }
+    }
+  };
+};
+
+//# sourceMappingURL=regenerator.cjs.map
Index: frontend/node_modules/@babel/preset-env/lib/polyfills/regenerator.cjs.map
===================================================================
--- frontend/node_modules/@babel/preset-env/lib/polyfills/regenerator.cjs.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/lib/polyfills/regenerator.cjs.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+{"version":3,"names":["getImportSource","getRequireSource","require","isRegeneratorSource","source","module","exports","visitor","ImportDeclaration","path","regeneratorImportExcluded","remove","Program","get","forEach","bodyPath","name","pre","post","opts","debug","filename","file","process","env","BABEL_ENV","replace","console","log"],"sources":["../../src/polyfills/regenerator.cjs"],"sourcesContent":["// TODO(Babel 8) Remove this file\nif (process.env.BABEL_8_BREAKING) {\n  throw new Error(\n    \"Internal Babel error: This file should only be loaded in Babel 7\",\n  );\n}\n\nconst { getImportSource, getRequireSource } = require(\"./utils.cjs\");\n\nfunction isRegeneratorSource(source) {\n  return (\n    source === \"regenerator-runtime/runtime\" ||\n    source === \"regenerator-runtime/runtime.js\"\n  );\n}\n\nmodule.exports = function () {\n  const visitor = {\n    ImportDeclaration(path) {\n      if (isRegeneratorSource(getImportSource(path))) {\n        this.regeneratorImportExcluded = true;\n        path.remove();\n      }\n    },\n    Program(path) {\n      path.get(\"body\").forEach(bodyPath => {\n        if (isRegeneratorSource(getRequireSource(bodyPath))) {\n          this.regeneratorImportExcluded = true;\n          bodyPath.remove();\n        }\n      });\n    },\n  };\n\n  return {\n    name: \"preset-env/remove-regenerator\",\n    visitor,\n    pre() {\n      this.regeneratorImportExcluded = false;\n    },\n    post() {\n      if (this.opts.debug && this.regeneratorImportExcluded) {\n        let filename = this.file.opts.filename;\n        // normalize filename to generate consistent preset-env test fixtures\n        if (process.env.BABEL_ENV === \"test\") {\n          filename = filename.replace(/\\\\/g, \"/\");\n        }\n        console.log(\n          `\\n[${filename}] Based on your targets, regenerator-runtime import excluded.`,\n        );\n      }\n    },\n  };\n};\n"],"mappings":"AAOA,MAAM;EAAEA,eAAe;EAAEC;AAAiB,CAAC,GAAGC,OAAO,CAAC,aAAa,CAAC;AAEpE,SAASC,mBAAmBA,CAACC,MAAM,EAAE;EACnC,OACEA,MAAM,KAAK,6BAA6B,IACxCA,MAAM,KAAK,gCAAgC;AAE/C;AAEAC,MAAM,CAACC,OAAO,GAAG,YAAY;EAC3B,MAAMC,OAAO,GAAG;IACdC,iBAAiBA,CAACC,IAAI,EAAE;MACtB,IAAIN,mBAAmB,CAACH,eAAe,CAACS,IAAI,CAAC,CAAC,EAAE;QAC9C,IAAI,CAACC,yBAAyB,GAAG,IAAI;QACrCD,IAAI,CAACE,MAAM,CAAC,CAAC;MACf;IACF,CAAC;IACDC,OAAOA,CAACH,IAAI,EAAE;MACZA,IAAI,CAACI,GAAG,CAAC,MAAM,CAAC,CAACC,OAAO,CAACC,QAAQ,IAAI;QACnC,IAAIZ,mBAAmB,CAACF,gBAAgB,CAACc,QAAQ,CAAC,CAAC,EAAE;UACnD,IAAI,CAACL,yBAAyB,GAAG,IAAI;UACrCK,QAAQ,CAACJ,MAAM,CAAC,CAAC;QACnB;MACF,CAAC,CAAC;IACJ;EACF,CAAC;EAED,OAAO;IACLK,IAAI,EAAE,+BAA+B;IACrCT,OAAO;IACPU,GAAGA,CAAA,EAAG;MACJ,IAAI,CAACP,yBAAyB,GAAG,KAAK;IACxC,CAAC;IACDQ,IAAIA,CAAA,EAAG;MACL,IAAI,IAAI,CAACC,IAAI,CAACC,KAAK,IAAI,IAAI,CAACV,yBAAyB,EAAE;QACrD,IAAIW,QAAQ,GAAG,IAAI,CAACC,IAAI,CAACH,IAAI,CAACE,QAAQ;QAEtC,IAAIE,OAAO,CAACC,GAAG,CAACC,SAAS,KAAK,MAAM,EAAE;UACpCJ,QAAQ,GAAGA,QAAQ,CAACK,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;QACzC;QACAC,OAAO,CAACC,GAAG,CACT,MAAMP,QAAQ,+DAChB,CAAC;MACH;IACF;EACF,CAAC;AACH,CAAC","ignoreList":[]}
Index: frontend/node_modules/@babel/preset-env/lib/polyfills/utils.cjs
===================================================================
--- frontend/node_modules/@babel/preset-env/lib/polyfills/utils.cjs	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/lib/polyfills/utils.cjs	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,21 @@
+exports.getImportSource = function ({
+  node
+}) {
+  if (node.specifiers.length === 0) return node.source.value;
+};
+exports.getRequireSource = function ({
+  node
+}) {
+  if (node.type !== "ExpressionStatement") return;
+  const {
+    expression
+  } = node;
+  if (expression.type === "CallExpression" && expression.callee.type === "Identifier" && expression.callee.name === "require" && expression.arguments.length === 1 && expression.arguments[0].type === "StringLiteral") {
+    return expression.arguments[0].value;
+  }
+};
+exports.isPolyfillSource = function (source) {
+  return source === "@babel/polyfill" || source === "core-js";
+};
+
+//# sourceMappingURL=utils.cjs.map
Index: frontend/node_modules/@babel/preset-env/lib/polyfills/utils.cjs.map
===================================================================
--- frontend/node_modules/@babel/preset-env/lib/polyfills/utils.cjs.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/lib/polyfills/utils.cjs.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+{"version":3,"names":["exports","getImportSource","node","specifiers","length","source","value","getRequireSource","type","expression","callee","name","arguments","isPolyfillSource"],"sources":["../../src/polyfills/utils.cjs"],"sourcesContent":["// TODO(Babel 8) Remove this file\nif (process.env.BABEL_8_BREAKING) {\n  throw new Error(\n    \"Internal Babel error: This file should only be loaded in Babel 7\",\n  );\n}\n\nexports.getImportSource = function ({ node }) {\n  if (node.specifiers.length === 0) return node.source.value;\n};\n\nexports.getRequireSource = function ({ node }) {\n  if (node.type !== \"ExpressionStatement\") return;\n  const { expression } = node;\n  if (\n    expression.type === \"CallExpression\" &&\n    expression.callee.type === \"Identifier\" &&\n    expression.callee.name === \"require\" &&\n    expression.arguments.length === 1 &&\n    expression.arguments[0].type === \"StringLiteral\"\n  ) {\n    return expression.arguments[0].value;\n  }\n};\n\nexports.isPolyfillSource = function (source) {\n  return source === \"@babel/polyfill\" || source === \"core-js\";\n};\n"],"mappings":"AAOAA,OAAO,CAACC,eAAe,GAAG,UAAU;EAAEC;AAAK,CAAC,EAAE;EAC5C,IAAIA,IAAI,CAACC,UAAU,CAACC,MAAM,KAAK,CAAC,EAAE,OAAOF,IAAI,CAACG,MAAM,CAACC,KAAK;AAC5D,CAAC;AAEDN,OAAO,CAACO,gBAAgB,GAAG,UAAU;EAAEL;AAAK,CAAC,EAAE;EAC7C,IAAIA,IAAI,CAACM,IAAI,KAAK,qBAAqB,EAAE;EACzC,MAAM;IAAEC;EAAW,CAAC,GAAGP,IAAI;EAC3B,IACEO,UAAU,CAACD,IAAI,KAAK,gBAAgB,IACpCC,UAAU,CAACC,MAAM,CAACF,IAAI,KAAK,YAAY,IACvCC,UAAU,CAACC,MAAM,CAACC,IAAI,KAAK,SAAS,IACpCF,UAAU,CAACG,SAAS,CAACR,MAAM,KAAK,CAAC,IACjCK,UAAU,CAACG,SAAS,CAAC,CAAC,CAAC,CAACJ,IAAI,KAAK,eAAe,EAChD;IACA,OAAOC,UAAU,CAACG,SAAS,CAAC,CAAC,CAAC,CAACN,KAAK;EACtC;AACF,CAAC;AAEDN,OAAO,CAACa,gBAAgB,GAAG,UAAUR,MAAM,EAAE;EAC3C,OAAOA,MAAM,KAAK,iBAAiB,IAAIA,MAAM,KAAK,SAAS;AAC7D,CAAC","ignoreList":[]}
Index: frontend/node_modules/@babel/preset-env/lib/shipped-proposals.js
===================================================================
--- frontend/node_modules/@babel/preset-env/lib/shipped-proposals.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/lib/shipped-proposals.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,29 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.proposalSyntaxPlugins = exports.proposalPlugins = exports.pluginSyntaxMap = void 0;
+const proposalPlugins = exports.proposalPlugins = new Set([]);
+const proposalSyntaxPlugins = exports.proposalSyntaxPlugins = ["syntax-import-assertions", "syntax-import-attributes"];
+const pluginSyntaxObject = {
+  "transform-async-generator-functions": "syntax-async-generators",
+  "transform-class-properties": "syntax-class-properties",
+  "transform-class-static-block": "syntax-class-static-block",
+  "transform-export-namespace-from": "syntax-export-namespace-from",
+  "transform-json-strings": "syntax-json-strings",
+  "transform-nullish-coalescing-operator": "syntax-nullish-coalescing-operator",
+  "transform-numeric-separator": "syntax-numeric-separator",
+  "transform-object-rest-spread": "syntax-object-rest-spread",
+  "transform-optional-catch-binding": "syntax-optional-catch-binding",
+  "transform-optional-chaining": "syntax-optional-chaining",
+  "transform-private-methods": "syntax-class-properties",
+  "transform-private-property-in-object": "syntax-private-property-in-object",
+  "transform-unicode-property-regex": null
+};
+const pluginSyntaxEntries = Object.keys(pluginSyntaxObject).map(function (key) {
+  return [key, pluginSyntaxObject[key]];
+});
+const pluginSyntaxMap = exports.pluginSyntaxMap = new Map(pluginSyntaxEntries);
+
+//# sourceMappingURL=shipped-proposals.js.map
Index: frontend/node_modules/@babel/preset-env/lib/shipped-proposals.js.map
===================================================================
--- frontend/node_modules/@babel/preset-env/lib/shipped-proposals.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/lib/shipped-proposals.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+{"version":3,"names":["proposalPlugins","exports","Set","proposalSyntaxPlugins","pluginSyntaxObject","pluginSyntaxEntries","Object","keys","map","key","pluginSyntaxMap","Map"],"sources":["../src/shipped-proposals.ts"],"sourcesContent":["// TODO(Babel 8): Remove this file\n/* eslint sort-keys: \"error\" */\n// These mappings represent the transform plugins that have been\n// shipped by browsers, and are enabled by the `shippedProposals` option.\n\nconst proposalPlugins = new Set<string>([]);\n\n// proposal syntax plugins enabled by the `shippedProposals` option.\n// Unlike proposalPlugins above, they are independent of compiler targets.\nconst proposalSyntaxPlugins = process.env.BABEL_8_BREAKING\n  ? ([] as const)\n  : ([\"syntax-import-assertions\", \"syntax-import-attributes\"] as const);\n\n// use intermediary object to enforce alphabetical key order\nconst pluginSyntaxObject = process.env.BABEL_8_BREAKING\n  ? {}\n  : ({\n      \"transform-async-generator-functions\": \"syntax-async-generators\",\n      \"transform-class-properties\": \"syntax-class-properties\",\n      \"transform-class-static-block\": \"syntax-class-static-block\",\n      \"transform-export-namespace-from\": \"syntax-export-namespace-from\",\n      \"transform-json-strings\": \"syntax-json-strings\",\n      \"transform-nullish-coalescing-operator\":\n        \"syntax-nullish-coalescing-operator\",\n      \"transform-numeric-separator\": \"syntax-numeric-separator\",\n      \"transform-object-rest-spread\": \"syntax-object-rest-spread\",\n      \"transform-optional-catch-binding\": \"syntax-optional-catch-binding\",\n      \"transform-optional-chaining\": \"syntax-optional-chaining\",\n      // note: we don't have syntax-private-methods\n      \"transform-private-methods\": \"syntax-class-properties\",\n      \"transform-private-property-in-object\":\n        \"syntax-private-property-in-object\",\n      // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n      \"transform-unicode-property-regex\": null as null,\n    } as const);\n\ntype PluginSyntaxObjectKeys = keyof typeof pluginSyntaxObject;\n\nconst pluginSyntaxEntries = Object.keys(pluginSyntaxObject).map<\n  [PluginSyntaxObjectKeys, string | null]\n>(function (key: PluginSyntaxObjectKeys) {\n  return [key, pluginSyntaxObject[key]];\n});\n\nconst pluginSyntaxMap = new Map(pluginSyntaxEntries);\n\nexport { proposalPlugins, proposalSyntaxPlugins, pluginSyntaxMap };\n"],"mappings":";;;;;;AAKA,MAAMA,eAAe,GAAAC,OAAA,CAAAD,eAAA,GAAG,IAAIE,GAAG,CAAS,EAAE,CAAC;AAI3C,MAAMC,qBAAqB,GAAAF,OAAA,CAAAE,qBAAA,GAEtB,CAAC,0BAA0B,EAAE,0BAA0B,CAAW;AAGvE,MAAMC,kBAAkB,GAEnB;EACC,qCAAqC,EAAE,yBAAyB;EAChE,4BAA4B,EAAE,yBAAyB;EACvD,8BAA8B,EAAE,2BAA2B;EAC3D,iCAAiC,EAAE,8BAA8B;EACjE,wBAAwB,EAAE,qBAAqB;EAC/C,uCAAuC,EACrC,oCAAoC;EACtC,6BAA6B,EAAE,0BAA0B;EACzD,8BAA8B,EAAE,2BAA2B;EAC3D,kCAAkC,EAAE,+BAA+B;EACnE,6BAA6B,EAAE,0BAA0B;EAEzD,2BAA2B,EAAE,yBAAyB;EACtD,sCAAsC,EACpC,mCAAmC;EAErC,kCAAkC,EAAE;AACtC,CAAW;AAIf,MAAMC,mBAAmB,GAAGC,MAAM,CAACC,IAAI,CAACH,kBAAkB,CAAC,CAACI,GAAG,CAE7D,UAAUC,GAA2B,EAAE;EACvC,OAAO,CAACA,GAAG,EAAEL,kBAAkB,CAACK,GAAG,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF,MAAMC,eAAe,GAAAT,OAAA,CAAAS,eAAA,GAAG,IAAIC,GAAG,CAACN,mBAAmB,CAAC","ignoreList":[]}
Index: frontend/node_modules/@babel/preset-env/lib/targets-parser.js
===================================================================
--- frontend/node_modules/@babel/preset-env/lib/targets-parser.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/lib/targets-parser.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,20 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+Object.defineProperty(exports, "default", {
+  enumerable: true,
+  get: function () {
+    return _helperCompilationTargets.default;
+  }
+});
+Object.defineProperty(exports, "isBrowsersQueryValid", {
+  enumerable: true,
+  get: function () {
+    return _helperCompilationTargets.isBrowsersQueryValid;
+  }
+});
+var _helperCompilationTargets = require("@babel/helper-compilation-targets");
+
+//# sourceMappingURL=targets-parser.js.map
Index: frontend/node_modules/@babel/preset-env/lib/targets-parser.js.map
===================================================================
--- frontend/node_modules/@babel/preset-env/lib/targets-parser.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/lib/targets-parser.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+{"version":3,"names":["_helperCompilationTargets","require"],"sources":["../src/targets-parser.ts"],"sourcesContent":["// TODO: Remove in Babel 8\n\nexport {\n  default,\n  isBrowsersQueryValid,\n} from \"@babel/helper-compilation-targets\";\n"],"mappings":";;;;;;;;;;;;;;;;;AAEA,IAAAA,yBAAA,GAAAC,OAAA","ignoreList":[]}
Index: frontend/node_modules/@babel/preset-env/node_modules/.bin/semver
===================================================================
--- frontend/node_modules/@babel/preset-env/node_modules/.bin/semver	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/node_modules/.bin/semver	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -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
Index: frontend/node_modules/@babel/preset-env/node_modules/.bin/semver.cmd
===================================================================
--- frontend/node_modules/@babel/preset-env/node_modules/.bin/semver.cmd	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/node_modules/.bin/semver.cmd	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -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" %*
Index: frontend/node_modules/@babel/preset-env/node_modules/.bin/semver.ps1
===================================================================
--- frontend/node_modules/@babel/preset-env/node_modules/.bin/semver.ps1	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/node_modules/.bin/semver.ps1	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -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
Index: frontend/node_modules/@babel/preset-env/node_modules/semver/LICENSE
===================================================================
--- frontend/node_modules/@babel/preset-env/node_modules/semver/LICENSE	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/node_modules/semver/LICENSE	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -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.
Index: frontend/node_modules/@babel/preset-env/node_modules/semver/README.md
===================================================================
--- frontend/node_modules/@babel/preset-env/node_modules/semver/README.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/node_modules/semver/README.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -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`
Index: frontend/node_modules/@babel/preset-env/node_modules/semver/bin/semver.js
===================================================================
--- frontend/node_modules/@babel/preset-env/node_modules/semver/bin/semver.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/node_modules/semver/bin/semver.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -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'))
+}
Index: frontend/node_modules/@babel/preset-env/node_modules/semver/package.json
===================================================================
--- frontend/node_modules/@babel/preset-env/node_modules/semver/package.json	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/node_modules/semver/package.json	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -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"
+  }
+}
Index: frontend/node_modules/@babel/preset-env/node_modules/semver/range.bnf
===================================================================
--- frontend/node_modules/@babel/preset-env/node_modules/semver/range.bnf	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/node_modules/semver/range.bnf	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -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]+
Index: frontend/node_modules/@babel/preset-env/node_modules/semver/semver.js
===================================================================
--- frontend/node_modules/@babel/preset-env/node_modules/semver/semver.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/node_modules/semver/semver.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -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)
+}
Index: frontend/node_modules/@babel/preset-env/package.json
===================================================================
--- frontend/node_modules/@babel/preset-env/package.json	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@babel/preset-env/package.json	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,104 @@
+{
+  "name": "@babel/preset-env",
+  "version": "7.29.5",
+  "description": "A Babel preset for each environment.",
+  "author": "The Babel Team (https://babel.dev/team)",
+  "homepage": "https://babel.dev/docs/en/next/babel-preset-env",
+  "bugs": "https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20preset-env%22+is%3Aopen",
+  "license": "MIT",
+  "publishConfig": {
+    "access": "public"
+  },
+  "repository": {
+    "type": "git",
+    "url": "https://github.com/babel/babel.git",
+    "directory": "packages/babel-preset-env"
+  },
+  "main": "./lib/index.js",
+  "dependencies": {
+    "@babel/compat-data": "^7.29.3",
+    "@babel/helper-compilation-targets": "^7.28.6",
+    "@babel/helper-plugin-utils": "^7.28.6",
+    "@babel/helper-validator-option": "^7.27.1",
+    "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5",
+    "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1",
+    "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1",
+    "@babel/plugin-bugfix-safari-rest-destructuring-rhs-array": "^7.29.3",
+    "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1",
+    "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.6",
+    "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
+    "@babel/plugin-syntax-import-assertions": "^7.28.6",
+    "@babel/plugin-syntax-import-attributes": "^7.28.6",
+    "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6",
+    "@babel/plugin-transform-arrow-functions": "^7.27.1",
+    "@babel/plugin-transform-async-generator-functions": "^7.29.0",
+    "@babel/plugin-transform-async-to-generator": "^7.28.6",
+    "@babel/plugin-transform-block-scoped-functions": "^7.27.1",
+    "@babel/plugin-transform-block-scoping": "^7.28.6",
+    "@babel/plugin-transform-class-properties": "^7.28.6",
+    "@babel/plugin-transform-class-static-block": "^7.28.6",
+    "@babel/plugin-transform-classes": "^7.28.6",
+    "@babel/plugin-transform-computed-properties": "^7.28.6",
+    "@babel/plugin-transform-destructuring": "^7.28.5",
+    "@babel/plugin-transform-dotall-regex": "^7.28.6",
+    "@babel/plugin-transform-duplicate-keys": "^7.27.1",
+    "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.29.0",
+    "@babel/plugin-transform-dynamic-import": "^7.27.1",
+    "@babel/plugin-transform-explicit-resource-management": "^7.28.6",
+    "@babel/plugin-transform-exponentiation-operator": "^7.28.6",
+    "@babel/plugin-transform-export-namespace-from": "^7.27.1",
+    "@babel/plugin-transform-for-of": "^7.27.1",
+    "@babel/plugin-transform-function-name": "^7.27.1",
+    "@babel/plugin-transform-json-strings": "^7.28.6",
+    "@babel/plugin-transform-literals": "^7.27.1",
+    "@babel/plugin-transform-logical-assignment-operators": "^7.28.6",
+    "@babel/plugin-transform-member-expression-literals": "^7.27.1",
+    "@babel/plugin-transform-modules-amd": "^7.27.1",
+    "@babel/plugin-transform-modules-commonjs": "^7.28.6",
+    "@babel/plugin-transform-modules-systemjs": "^7.29.4",
+    "@babel/plugin-transform-modules-umd": "^7.27.1",
+    "@babel/plugin-transform-named-capturing-groups-regex": "^7.29.0",
+    "@babel/plugin-transform-new-target": "^7.27.1",
+    "@babel/plugin-transform-nullish-coalescing-operator": "^7.28.6",
+    "@babel/plugin-transform-numeric-separator": "^7.28.6",
+    "@babel/plugin-transform-object-rest-spread": "^7.28.6",
+    "@babel/plugin-transform-object-super": "^7.27.1",
+    "@babel/plugin-transform-optional-catch-binding": "^7.28.6",
+    "@babel/plugin-transform-optional-chaining": "^7.28.6",
+    "@babel/plugin-transform-parameters": "^7.27.7",
+    "@babel/plugin-transform-private-methods": "^7.28.6",
+    "@babel/plugin-transform-private-property-in-object": "^7.28.6",
+    "@babel/plugin-transform-property-literals": "^7.27.1",
+    "@babel/plugin-transform-regenerator": "^7.29.0",
+    "@babel/plugin-transform-regexp-modifiers": "^7.28.6",
+    "@babel/plugin-transform-reserved-words": "^7.27.1",
+    "@babel/plugin-transform-shorthand-properties": "^7.27.1",
+    "@babel/plugin-transform-spread": "^7.28.6",
+    "@babel/plugin-transform-sticky-regex": "^7.27.1",
+    "@babel/plugin-transform-template-literals": "^7.27.1",
+    "@babel/plugin-transform-typeof-symbol": "^7.27.1",
+    "@babel/plugin-transform-unicode-escapes": "^7.27.1",
+    "@babel/plugin-transform-unicode-property-regex": "^7.28.6",
+    "@babel/plugin-transform-unicode-regex": "^7.27.1",
+    "@babel/plugin-transform-unicode-sets-regex": "^7.28.6",
+    "@babel/preset-modules": "0.1.6-no-external-plugins",
+    "babel-plugin-polyfill-corejs2": "^0.4.15",
+    "babel-plugin-polyfill-corejs3": "^0.14.0",
+    "babel-plugin-polyfill-regenerator": "^0.6.6",
+    "core-js-compat": "^3.48.0",
+    "semver": "^6.3.1"
+  },
+  "peerDependencies": {
+    "@babel/core": "^7.0.0-0"
+  },
+  "devDependencies": {
+    "@babel/core": "^7.29.0",
+    "@babel/core-7.12": "npm:@babel/core@7.12.9",
+    "@babel/helper-plugin-test-runner": "^7.27.1",
+    "@babel/traverse": "^7.29.0"
+  },
+  "engines": {
+    "node": ">=6.9.0"
+  },
+  "type": "commonjs"
+}
